From fdb46ca912c05557947a324a736e33afcfe16b5a Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Mon, 15 Jul 2013 18:46:24 +0300 Subject: [PATCH] Fix LP#1183226 by exposing the search sort via ctx and using that when no search parameter is available. Signed-off-by: Pasi Kallinen --- .../perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm | 19 +++++++++++-------- Open-ILS/src/templates/opac/results.tt2 | 7 ++++++- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm index 5e3654142f..f92b4272b0 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm @@ -115,15 +115,18 @@ sub _prepare_biblio_search { return () unless $query; # sort is treated specially, even though it's actually a filter - if ($cgi->param('sort')) { - $query =~ s/sort\([^\)]*\)//g; # override existing sort(). no stacking. - my ($axis, $desc) = split /\./, $cgi->param('sort'); + if ($cgi->param('sort') || $query =~ / ?sort\(\S+\)/) { + my $sortq = $cgi->param('sort'); + if (!$sortq) { + ($sortq) = $query =~ / ?sort\((\S+)\)/; + $sortq .= '.descending' if ($query =~ /\#descending/); + } + my ($axis, $desc) = split /\./, $sortq; + $query =~ s/ ?sort\([^\)]*\)//g; # override existing sort(). no stacking. + $query =~ s/\#descending//g; $query .= " sort($axis)"; - if ($desc and not $query =~ /\#descending/) { - $query .= '#descending'; - } elsif (not $desc) { - $query =~ s/\#descending//; - } + $query .= '#descending' if ($desc); + $ctx->{search_sort} = $sortq; } my (@naive_query_re, $site); diff --git a/Open-ILS/src/templates/opac/results.tt2 b/Open-ILS/src/templates/opac/results.tt2 index d199ce91f2..0a8523c001 100644 --- a/Open-ILS/src/templates/opac/results.tt2 +++ b/Open-ILS/src/templates/opac/results.tt2 @@ -40,7 +40,12 @@ [% END %]
-- 2.11.0