@@ -, +, @@ --- .../opac-tmpl/bootstrap/en/modules/opac-shelves.tt | 110 ++++++++++++--------- opac/opac-shelves.pl | 9 +- 2 files changed, 72 insertions(+), 47 deletions(-) --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt @@ -207,52 +207,68 @@ - - - [% IF sortfield == 'author' %] - - [% ELSE %] - - [% END %] - - [% IF sortfield == 'title' %] - - [% ELSE %] - - [% END %] - - [% IF sortfield == 'itemcallnumber' %] - - [% ELSE %] - - [% END %] - - [% IF sortfield == 'copyrightdate' %] - - [% ELSE %] - - [% END %] - - [% IF sortfield == "dateadded" %] - - [% ELSE %] - - [% END %] - - - @@ -977,6 +993,10 @@ $(function() { stickyClass: "floating" }); + $("#sortfield").on("change", function(){ + $('#sorting-form').submit(); + }); + }); // document.ready function AdjustRemark() { --- a/opac/opac-shelves.pl +++ a/opac/opac-shelves.pl @@ -234,9 +234,14 @@ if ( $op eq 'view' ) { if ( $shelf ) { if ( $shelf->can_be_viewed( $loggedinuser ) ) { $category = $shelf->category; - my $sortfield = $query->param('sortfield') || $shelf->sortfield; # Passed in sorting overrides default sorting + my( $sortfield, $direction ); + if( defined( $query->param('sortfield') ) ){ # Passed in sorting overrides default sorting + ( $sortfield, $direction ) = split /:/, $query->param('sortfield'); + } else { + $sortfield = $shelf->sortfield; + $direction = 'asc'; + } $sortfield = 'title' unless grep $_ eq $sortfield, qw( title author copyrightdate itemcallnumber dateadded ); - my $direction = $query->param('direction') || 'asc'; $direction = 'asc' if $direction ne 'asc' and $direction ne 'desc'; my ( $page, $rows ); unless ( $query->param('print') or $query->param('rss') ) { --