Bug 23122: When searching callnumber in simple search, search option is not retained
authorOwen Leonard <oleonard@myacpl.org>
Fri, 14 Jun 2019 14:59:34 +0000 (14:59 +0000)
committerMartin Renvoize <martin.renvoize@ptfs-europe.com>
Wed, 19 Jun 2019 12:13:14 +0000 (13:13 +0100)
This patch copies some code and markup from the staff client where call
number phrase searches are correctly handled. A check for
'ms_callnumcommaphr' is copied from search_indexes.inc. Handling of
commas and dashes is copied from search.pl.

To test, apply the patch and make sure the
OpacAddMastheadLibraryPulldown system preference is enabled.

 - From the OPAC main page, select "Call number" from the search pull
   down at the top of the page.
 - Perform any search (it need not return results).
 - Verify that the search option retains the "Call number" selection.
 - Repeat the test with and without the OPACNumbersPreferPhrase system
   preference enabled.

Signed-off-by: Maryse Simard <maryse.simard@inlibro.com>
Signed-off-by: Nadine Pierre <nadine.pierre@inLibro.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

koha-tmpl/opac-tmpl/bootstrap/en/includes/masthead.inc
opac/opac-search.pl

index 91f908e..184a605 100644 (file)
                                     <option value="se">Series</option>
                                 [% END # /ms_se %]
                                 [% IF ( Koha.Preference('OPACNumbersPreferPhrase') ) %]
-                                    [% IF ( ms_callnum ) %]
-                                            <option selected="selected" value="callnum,phr">Call number</option>
+                                    [% IF ( ms_callnumcommaphr ) %]
+                                        <option selected="selected" value="callnum,phr">Call number</option>
                                     [% ELSE %]
                                         <option value="callnum,phr">Call number</option>
-                                    [% END #/ms_callnum %]
+                                    [% END #/ms_callnumcommaphr %]
                                 [% ELSE %]
                                     [% IF ( ms_callnum ) %]
                                         <option selected="selected" value="callnum">Call number</option>
index 309776f..c39ad59 100755 (executable)
@@ -457,7 +457,10 @@ my @indexes = $cgi->multi_param('idx');
 
 # if a simple index (only one)  display the index used in the top search box
 if ($indexes[0] && !$indexes[1]) {
-    $template->param("ms_".$indexes[0] => 1);
+    my $idx = "ms_".$indexes[0];
+    $idx =~ s/\,/comma/g;  # template toolkit doesn't like variables with a , in it
+    $idx =~ s/-/dash/g;  # template toolkit doesn't like variables with a dash in it
+    $template->param($idx => 1);
 }
 # an operand can be a single term, a phrase, or a complete ccl query
 my @operands = $cgi->multi_param('q');