From 86e845d449d401d82ec5a2c7eccc0f73d5c13300 Mon Sep 17 00:00:00 2001 From: Chris Fitzpatrick Date: Fri, 9 Nov 2018 14:01:58 +0100 Subject: [PATCH 1/2] LIBITD-993 Make reports index table sortable This allows sorting on the reports index table. https://issues.umd.edu/browse/LIBITD-993 --- app/models/report.rb | 1 + app/views/reports/index.html.erb | 12 ++++++------ test/system/report_index_view_test.rb | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 test/system/report_index_view_test.rb diff --git a/app/models/report.rb b/app/models/report.rb index be204ba..a68c14d 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -8,6 +8,7 @@ class Report < ApplicationRecord # Provides a short human-readable description for this record, for GUI prompts alias_attribute :description, :name + default_scope { includes(%i[user]) } enum status: { pending: 0, diff --git a/app/views/reports/index.html.erb b/app/views/reports/index.html.erb index 335aa55..122957b 100644 --- a/app/views/reports/index.html.erb +++ b/app/views/reports/index.html.erb @@ -13,11 +13,11 @@ - - - - - + + + + + @@ -40,4 +40,4 @@ - \ No newline at end of file + diff --git a/test/system/report_index_view_test.rb b/test/system/report_index_view_test.rb new file mode 100644 index 0000000..3083ce3 --- /dev/null +++ b/test/system/report_index_view_test.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'application_system_test_case' + +class ReportIndexViewTest < ApplicationSystemTestCase + def setup + login_admin + end + + test 'should keep page and sort when deleting' do + click_link 'admin' + click_link 'Reports' + + headers = all('th') + headers.each do |header| + header.find('a').click + end + end +end From 1675d59545164355624456323db933f108c4b638 Mon Sep 17 00:00:00 2001 From: Chris Fitzpatrick Date: Tue, 13 Nov 2018 21:08:50 +0100 Subject: [PATCH 2/2] LIBITD-993 Add table name to ensure created_at sorts on join This adds the table name to the created_at since joins can cause problems with the sorting. https://issues.umd.edu/browse/LIBITD-993 --- app/views/reports/index.html.erb | 5 ++++- app/views/shared/_requests_table.html.erb | 3 ++- test/system/report_index_view_test.rb | 10 +++++----- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/views/reports/index.html.erb b/app/views/reports/index.html.erb index 122957b..6aa5325 100644 --- a/app/views/reports/index.html.erb +++ b/app/views/reports/index.html.erb @@ -16,9 +16,12 @@ - + + diff --git a/app/views/shared/_requests_table.html.erb b/app/views/shared/_requests_table.html.erb index 89608d0..4cbca54 100644 --- a/app/views/shared/_requests_table.html.erb +++ b/app/views/shared/_requests_table.html.erb @@ -14,7 +14,8 @@ <% end %> + + <%- @requests.each do |record| %> diff --git a/test/system/report_index_view_test.rb b/test/system/report_index_view_test.rb index 3083ce3..8d76e3c 100644 --- a/test/system/report_index_view_test.rb +++ b/test/system/report_index_view_test.rb @@ -10,10 +10,10 @@ def setup test 'should keep page and sort when deleting' do click_link 'admin' click_link 'Reports' - - headers = all('th') - headers.each do |header| - header.find('a').click - end + click_link 'Name' + click_link 'Format' + click_link 'Creator' + click_link 'Created At' + assert :success end end
NameFormatCreatorCreated AtStatus<%= multi_sort_link( 'reports.name', 'Name', :desc) %><%= multi_sort_link( :format, 'Format', :desc) %><%= multi_sort_link( 'users.name', 'Creator', :desc) %><%= multi_sort_link( :created_at, 'Created At', :desc) %><%= multi_sort_link( :status, 'Status', :desc) %> Output
<%= multi_sort_link( 'reports.name', 'Name', :desc) %> <%= multi_sort_link( :format, 'Format', :desc) %> <%= multi_sort_link( 'users.name', 'Creator', :desc) %><%= multi_sort_link( :created_at, 'Created At', :desc) %><%= multi_sort_link( 'reports.created_at', 'Created At', :desc) %> <%= multi_sort_link( :status, 'Status', :desc) %> Output + <%= link_to(t('reset_sorting'), { controller: 'reports' }, class: 'btn btn-link') if sorted? %> +
<%= reset_sorts_link %> -