Add a new "starts with" search option to the advanced search page. user/kmlussier/1031775
authorKathy Lussier <klussier@masslnc.org>
Wed, 1 Aug 2012 13:31:24 +0000 (09:31 -0400)
committerKathy Lussier <klussier@masslnc.org>
Wed, 1 Aug 2012 14:32:06 +0000 (10:32 -0400)
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm
Open-ILS/src/templates/opac/parts/advanced/global_row.tt2

index 5d40319..94be90f 100644 (file)
@@ -44,8 +44,13 @@ sub _prepare_biblio_search_basics {
         } elsif ($contains eq 'exact') {
             $query =~ s/[\^\$]//g;
             $query = '^' . $query . '$';
-        }
-        $query = "$qtype:$query" unless $qtype eq 'keyword' and $i == 0;
+        } elsif ($contains eq 'starts') {
+           $query =~ s/"//g;
+           $query =~ s/[\^\$]//g;
+           $query = '^' . $query;
+           $query = ('"' . $query . '"') if index $query, ' ';
+       }
+       $query = "$qtype:$query" unless $qtype eq 'keyword' and $i == 0;
 
         # Hack for journal title - completed!
         if ($q eq 'jtitle') {
index 3647fe7..1b71d34 100644 (file)
@@ -3,7 +3,8 @@
         {value => 'contains', label => l('Contains')},
         {value => 'nocontains', label => l('Does not contain')},
         {value => 'phrase', label => l('Contains phrase')},
-        {value => 'exact', label => l('Matches exactly')}
+        {value => 'exact', label => l('Matches exactly')},
+       {value => 'starts', label => l('Starts with')}
     ];
     contains = CGI.param('contains');
     queries = CGI.param('query');