Arie/serveme

View on GitHub
app/views/map_uploads/admin_index.html.haml

Summary

Maintainability
Test Coverage
%h2
  Maps
  = link_to upload_map_path, class: "btn btn-sm btn-primary" do
    %i.fa.fa-upload
    Upload

%table.table.table-condensed.table-hover
  %thead
    %tr
      %td
        %strong
          = link_to('Map name', maps_sorted_path(sort_by: "name"))
      %td
        %strong
          = link_to('Times played', maps_sorted_path(sort_by: "times-played"))
      %td
        %strong
          = link_to('First played', maps_sorted_path(sort_by: "first-played"))
      %td
        %strong
          = link_to('Last played', maps_sorted_path(sort_by: "last-played"))
      %td
        %strong
          = link_to('Download', maps_sorted_path(sort_by: "size"))
  = turbo_stream_from 'admin-maps-list'
  = render("admin_list", bucket_objects: @bucket_objects, map_statistics: @map_statistics)

:javascript
  let scrollTop = 0

  addEventListener("turbo:click", ({ target }) => {
    if (target.hasAttribute("data-turbo-preserve-scroll")) {
      scrollTop = document.scrollingElement.scrollTop
    }
  })

  addEventListener("turbo:load", () => {
    if (scrollTop) {
      document.scrollingElement.scrollTo(0, scrollTop)
    }

    scrollTop = 0
  })