Bug 5645: improve converting simple search to Z39.50 search
authorGalen Charlton <gmc@esilibrary.com>
Sat, 7 Sep 2013 18:42:32 +0000 (18:42 +0000)
committerGalen Charlton <gmc@esilibrary.com>
Wed, 2 Oct 2013 14:58:54 +0000 (14:58 +0000)
This patch builds on the patch for bug 10742 by ensuring
that when a search initiated from the staff interface simple
search returns results, if you click on the Z39.50 search
button, the search form is populated with the search string
without "kw,wrdl".

To test:

[1] Perform a search in the staff interface that will return
    results.
[2] Click the Z39.50 search button.
[3] Observe that the search string appears in the title
    field in the Z39.50 search form, but with a prefix of
    "kw,wrdl".
[4] Apply the patch.
[5] Repeat steps 1-2.  This time, the search string appears
    without the index prefix.  This will make the Z39.50 search
    much more likely to work.
[6] Repeat steps 1-2, but with a search that does *not* return
    any hits in the Koha database.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
catalogue/search.pl

index 9e81a81..892ff15 100755 (executable)
@@ -563,6 +563,9 @@ for (my $i=0;$i<@servers;$i++) {
             exit;
         }
 
+        # set up parameters if user wishes to re-run the search
+        # as a Z39.50 search
+        $template->param (z3950_search_params => C4::Search::z3950_search_args($z3950par || $query_desc));
 
         if ($hits) {
             $template->param(total => $hits);
@@ -575,7 +578,6 @@ for (my $i=0;$i<@servers;$i++) {
             $template->param(limit_desc => $limit_desc);
             $template->param(offset     => $offset);
             $template->param(DisplayMultiPlaceHold => $DisplayMultiPlaceHold);
-            $template->param (z3950_search_params => C4::Search::z3950_search_args($query_desc));
             if ($query_desc || $limit_desc) {
                 $template->param(searchdesc => 1);
             }
@@ -650,7 +652,6 @@ for (my $i=0;$i<@servers;$i++) {
         # no hits
         else {
             $template->param(searchdesc => 1,query_desc => $query_desc,limit_desc => $limit_desc);
-            $template->param (z3950_search_params => C4::Search::z3950_search_args($z3950par || $query_desc));
         }
 
     } # end of the if local