Fix z39.50 import isbn and issn searches on local catalog.
authorJason Stephenson <jstephenson@mvlc.org>
Fri, 16 Sep 2011 12:52:44 +0000 (08:52 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Fri, 16 Sep 2011 13:11:57 +0000 (09:11 -0400)
Make cat_search_z_style_wrapper do identifier searches for isbn and
issn.

Modify the_quest_for_knowledge to accept identifier searches for isbn
and issn.

Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Search/Biblio.pm

index 2bc7062..143eea4 100644 (file)
@@ -942,14 +942,14 @@ sub cat_search_z_style_wrapper {
        my $result = { service => 'native-evergreen-catalog', records => [] };
        my $searchhash = { limit => $$args{limit}, offset => $$args{offset}, org_unit => $ou->id };
 
-       $$searchhash{searches}{title}{term}   = $$args{search}{title}   if $$args{search}{title};
-       $$searchhash{searches}{author}{term}  = $$args{search}{author}  if $$args{search}{author};
-       $$searchhash{searches}{subject}{term} = $$args{search}{subject} if $$args{search}{subject};
-       $$searchhash{searches}{keyword}{term} = $$args{search}{keyword} if $$args{search}{keyword};
+       $$searchhash{searches}{title}{term}   = $$args{search}{title}          if $$args{search}{title};
+       $$searchhash{searches}{author}{term}  = $$args{search}{author}         if $$args{search}{author};
+       $$searchhash{searches}{subject}{term} = $$args{search}{subject}        if $$args{search}{subject};
+       $$searchhash{searches}{keyword}{term} = $$args{search}{keyword}        if $$args{search}{keyword};
+       $$searchhash{searches}{'identifier|isbn'}{term} = $$args{search}{isbn} if $$args{search}{isbn};
+       $$searchhash{searches}{'identifier|issn'}{term} = $$args{search}{issn} if $$args{search}{issn};
 
        $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{tcn}       if $$args{search}{tcn};
-       $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{isbn}      if $$args{search}{isbn};
-       $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{issn}      if $$args{search}{issn};
        $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{publisher} if $$args{search}{publisher};
        $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{pubdate}   if $$args{search}{pubdate};
        $$searchhash{searches}{keyword}{term} .= join ' ', $$searchhash{searches}{keyword}{term}, $$args{search}{item_type} if $$args{search}{item_type};
@@ -1078,7 +1078,7 @@ sub the_quest_for_knowledge {
 
        # do some simple sanity checking
        if(!$searchhash->{searches} or
-               ( !grep { /^(?:title|author|subject|series|keyword)/ } keys %{$searchhash->{searches}} ) ) {
+               ( !grep { /^(?:title|author|subject|series|keyword|identifier\|is[bs]n)/ } keys %{$searchhash->{searches}} ) ) {
                return { count => 0 };
        }