fix issues with managing multiple query (and other) CGI params
authorGalen Charlton <gmc@equinoxintiative.org>
Mon, 13 Aug 2018 19:10:21 +0000 (15:10 -0400)
committerGalen Charlton <gmc@equinoxintiative.org>
Mon, 13 Aug 2018 19:10:21 +0000 (15:10 -0400)
Signed-off-by: Galen Charlton <gmc@equinoxintiative.org>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
Open-ILS/src/templates/opac/parts/header.tt2

index 5bc2f56..e76c2d1 100644 (file)
@@ -934,7 +934,8 @@ sub handle_hold_update {
         $url = $self->ctx->{proto} . '://' . $self->ctx->{hostname} . $self->ctx->{opac_root} . '/myopac/holds';
         foreach my $param (('loc', 'qtype', 'query')) {
             if ($self->cgi->param($param)) {
-                $url .= ";$param=" . uri_escape_utf8($self->cgi->param($param));
+                my @vals = $self->cgi->param($param);
+                $url .= ";$param=" . uri_escape_utf8($_) foreach @vals;
             }
         }
     }
@@ -2400,7 +2401,8 @@ sub load_myopac_bookbags {
 
                     foreach my $param (('loc', 'qtype', 'query', 'sort', 'offset', 'limit')) {
                         if ($self->cgi->param($param)) {
-                            $url .= ";$param=" . uri_escape_utf8($self->cgi->param($param));
+                            my @vals = $self->cgi->param($param);
+                            $url .= ";$param=" . uri_escape_utf8($_) foreach @vals;
                         }
                     }
 
@@ -2514,7 +2516,8 @@ sub load_myopac_bookbag_update {
 
     foreach my $param (('loc', 'qtype', 'query', 'sort')) {
         if ($cgi->param($param)) {
-            $url .= "$param=" . uri_escape_utf8($cgi->param($param)) . ";";
+            my @vals = $cgi->param($param);
+            $url .= ";$param=" . uri_escape_utf8($_) foreach @vals;
         }
     }
 
@@ -2577,7 +2580,8 @@ sub load_myopac_bookbag_update {
         $url .= ';hold_target=' . $_ for @hold_recs;
         foreach my $param (('loc', 'qtype', 'query')) {
             if ($cgi->param($param)) {
-                $url .= ";$param=" . uri_escape_utf8($cgi->param($param));
+                my @vals = $cgi->param($param);
+                $url .= ";$param=" . uri_escape_utf8($_) foreach @vals;
             }
         }
         return $self->generic_redirect($url);
index 1d3550d..76b2314 100644 (file)
@@ -9,7 +9,7 @@
     # Don't wrap in l() here; do that where this format string is actually used.
     SET HUMAN_NAME_FORMAT = '[_1] [_2] [_3] [_4] [_5]';
 
-    is_advanced = CGI.param("_adv").size;
+    is_advanced = CGI.param("_adv").size || CGI.param("query").size;
     is_special = CGI.param("_special").size;
 
     # Check if we want to show the detail record view.  Doing this