sul-dlss/argo

View on GitHub
app/views/report/_document_list.html.erb

Summary

Maintainability
Test Coverage
<div class="mt-3"
     data-controller="object-reporter"
     data-object-reporter-data-url-value='<%= report_data_url %>'
     data-object-reporter-data-url-params-value='<%= params.to_unsafe_h.except(:controller, :action).merge(format: 'json', sort: 'id asc').to_json.html_safe %>'
     data-object-reporter-download-url-value='<%= report_download_url %>'
     data-object-reporter-column-model-value='<%= Report::COLUMN_MODEL.to_json.html_safe %>'>

  <div class="mt-1 mb-1">
    <button class="btn btn-outline-primary" data-action="click->object-reporter#openColumnSelectorModal">Columns</button>
    <a class="btn btn-outline-primary" href="" target="_blank" data-action="click->object-reporter#downloadCSV">Download CSV</a>
  </div>

  <div id="objectsTable"></div>

  <div class="modal fade" data-object-reporter-target="columnSelector" tabindex="-1" role="dialog" aria-labelledby="columnSelectorModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h1 class="modal-title fs-5" id="columnSelectorModalLabel">Select Columns to Display and Download</h1>
          <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
        </div>
        <div class="modal-body">
          <div class="container">
            <div class="row">
              <% Report::REPORT_FIELDS.each_slice((Report::REPORT_FIELDS.size / Report::COLUMN_SELECTOR_COLUMN_SIZE.to_f).ceil) do |field_group| %>
                <div class="col">
                  <% field_group.each do |field| %>
                    <div class="form-check">
                      <label for="<%= field[:field] %>" class="form-check-label"><%= field[:label] %>
                        <%= check_box_tag field[:field], field[:label], field[:default], { class: 'form-check-input', data: { action: 'change->object-reporter#toggleColumn' } } %>
                      </label>
                    </div>
                  <% end %>
                </div>
              <% end %>
            </div>
          </div>
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-outline-primary" data-bs-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
</div>