From c76fbbe191782cee691ef405f638048b6d39a2fb Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Wed, 25 Mar 2015 11:33:48 -0400 Subject: [PATCH] Bug 13908 - Checkouts table sorting is not honoring default sort preferences The checkouts table no longer honors the system preferences todaysIssuesDefaultSortOrder and previousIssuesDefaultSortOrder. This causes much frustration for librarians who prefer a different sort order. In particular, many librarians prefer to see the oldest previous issues at the top of the list so those overdue items are visible "above the fold". Test Plan: 1) Apply this patch 2) Find a patron with many previous checkouts due on different days 3) Try all 4 combinations of todaysIssuesDefaultSortOrder and previousIssuesDefaultSortOrder 4) Note they all sort correctly Signed-off-by: Sean McGarvey Signed-off-by: Katrin Fischer Signed-off-by: Tomas Cohen Arazi --- koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js | 8 ++------ svc/checkouts | 10 +++++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js b/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js index a7f86d02be..78d2cb74a2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js @@ -174,11 +174,7 @@ $(document).ready(function() { "aoColumns": [ { "mDataProp": function( oObj ) { - if ( oObj.issued_today ) { - return "1" + oObj.timestamp; - } else { - return "0" + oObj.date_due; - } + return oObj.sort_order; } }, { @@ -423,7 +419,7 @@ $(document).ready(function() { { iGroupingColumnIndex: 1, iGroupingOrderByColumnIndex: 0, - sGroupingColumnSortDirection: "desc" + sGroupingColumnSortDirection: "asc" } ); diff --git a/svc/checkouts b/svc/checkouts index cfd42dc366..af373aa14d 100755 --- a/svc/checkouts +++ b/svc/checkouts @@ -207,13 +207,21 @@ while ( my $c = $sth->fetchrow_hashref() ) { } } + +@checkouts_today = sort { $a->{timstamp} cmp $b->{timestamp} } @checkouts_today; @checkouts_today = reverse(@checkouts_today) - if ( C4::Context->preference('todaysIssuesDefaultSortOrder') eq 'desc' ); + unless ( C4::Context->preference('todaysIssuesDefaultSortOrder') eq 'desc' ); + +@checkouts_previous = sort { $a->{date_due} cmp $b->{date_due} } @checkouts_previous; @checkouts_previous = reverse(@checkouts_previous) if ( C4::Context->preference('previousIssuesDefaultSortOrder') eq 'desc' ); my @checkouts = ( @checkouts_today, @checkouts_previous ); +my $i = 1; +map { $_->{sort_order} = $i++ } @checkouts; + + my $data; $data->{'iTotalRecords'} = scalar @checkouts; $data->{'iTotalDisplayRecords'} = scalar @checkouts; -- 2.20.1