From 6409470c5ed211c0ba463727f57f4a6342960d52 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 --- koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js | 9 +++------ svc/checkouts | 10 +++++++++- 2 files changed, 12 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 e8f6f44..b514089 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/checkouts.js @@ -174,11 +174,8 @@ $(document).ready(function() { "aoColumns": [ { "mDataProp": function( oObj ) { - if ( oObj.issued_today ) { - return "1" + oObj.timestamp; - } else { - return "0" + oObj.date_due; - } + console.log(oObj.sort_order); + return oObj.sort_order; } }, { @@ -414,7 +411,7 @@ $(document).ready(function() { { iGroupingColumnIndex: 1, iGroupingOrderByColumnIndex: 0, - sGroupingColumnSortDirection: "desc" + sGroupingColumnSortDirection: "asc" } ); diff --git a/svc/checkouts b/svc/checkouts index 51fd861..66965c2 100755 --- a/svc/checkouts +++ b/svc/checkouts @@ -204,13 +204,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; -- 1.7.2.5