SumOfUs/Champaign

View on GitHub
app/views/pages/actions.html.slim

Summary

Maintainability
Test Coverage
- content_for(:title, "Actions | #{@page.title}")

= render "sidebar", action: :actions, id: @page.id
- keys = @headers.keys

.edit-block
  h1.edit-block__title= "Actions - #{@page.title}"

  .edit-block__constrained-width
    table.table.actions-editor data-page-id="#{@page.id}"
      thead
        th
          | Publish status
        - keys.each do |key|
          th = @headers[key]

      tbody
        - @hashes.each do |row|
          tr
            td
              .action-publisher.btn-group-vertical data-id="#{row[:id]}"
                = toggle_switch 'default', row[:publish_status], 'Page default'
                = toggle_switch 'published', row[:publish_status], 'Published'
                = toggle_switch 'hidden', row[:publish_status], 'Hidden'

            - keys.each do |key|
              td
                = row[key]


  - range = 'actions ' + record_range(@paginator.current_page, @paginator.size)
  - range = "last #{@paginator.size} actions" if @paginator.last_page?
  .pagination
    .pagination--left
      - if @paginator.total_pages > 1
        = "Showing #{range}"
    .pagination--right
      = paginate @paginator, param_name: :page_number
  br
  - show_paged_csv = @paginator.total_pages > 1 || @page.action_count > 10_000
  - show_all_csv = @page.action_count <= 10_000
  - if show_paged_csv
    = link_to "Download #{range} in CSV", actions_page_path(@page, page_number: @paginator.current_page, format: :csv)
  - if show_paged_csv && show_all_csv
    = ' | '
  - if show_all_csv
    = link_to "Download all actions in CSV", actions_page_path(@page, format: :csv)

javascript:
  $(function () {
    window.ee.emit('actions:edit');
  });