"format" aka item_type (?) search working, I think
authorsenator <lebbeous@esilibrary.com>
Tue, 15 Feb 2011 17:19:11 +0000 (12:19 -0500)
committersenator <lebbeous@esilibrary.com>
Tue, 15 Feb 2011 17:19:11 +0000 (12:19 -0500)
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm
Open-ILS/web/templates/default/opac/parts/format_selector.tt2
Open-ILS/web/templates/default/opac/parts/header.tt2
Open-ILS/web/templates/default/opac/parts/marc_misc.tt2
Open-ILS/web/templates/default/opac/parts/searchbar.tt2

index 4f78497..ad9526a 100644 (file)
@@ -20,6 +20,7 @@ sub load_rresults {
 
     $ctx->{page} = 'rresult';
     my $page = $cgi->param('page') || 0;
+    my $item_type = $cgi->param('item_type');
     my $facet = $cgi->param('facet');
     my $query = $cgi->param('query');
     my $limit = $cgi->param('limit') || 10; # TODO user settings
@@ -28,7 +29,10 @@ sub load_rresults {
     my $depth = defined $cgi->param('depth') ? 
         $cgi->param('depth') : $ctx->{find_aou}->($loc)->ou_type->depth;
 
-    my $args = {limit => $limit, offset => $page * $limit, org_unit => $loc, depth => $depth}; 
+    my $args = {
+        limit => $limit, offset => $page * $limit,
+        org_unit => $loc, depth => $depth, $item_type ? (item_type => [$item_type]) : ()
+    };
 
     $query = "$query $facet" if $facet; # TODO
     my $results;
index 5c3904c..7ebd072 100644 (file)
@@ -1,35 +1,10 @@
-<!-- ****************** format_selector.xml ***************************** -->
-<select id='format_selector'>
+[%  name = name || "item_type";
+    id = id || "format_selector" %]
+<select id='[% id %]' name='[% name %]'>
     <option value=''>[% l("All Formats") %]</option>
-    <option value='a'>Book</option>
-    <option value='i'>Book on cassette</option>
-    <option value='n'>Book on CD</option>
-    <option value='x'>Download music</option>
-    <option value='y'>Download video</option>
-    <option value='h'>DVD</option>
-    <option value='w'>eBook - Audio</option>
-    <option value='v'>eBook - Text</option>
-    <option value='e'>Equipment</option>
-    <option value='f'>Films</option>
-    <option value='o'>Kit</option>
-    <option value='q'>Large print</option>
-    <option value='b'>Magazine</option>
-    <option value='d'>Microform</option>
-    <option value='k'>Music cassette</option>
-    <option value='j'>Music CD</option>
-    <option value='l'>Music LP</option>
-    <option value='p'>Newspaper</option>
-    <option value='t'>Online</option>
-    <option value='u'>Player</option>
-    <option value='c'>Printed music</option>
-    <option value='2'>Read along with cassette</option>
-    <option value='5'>Read along with CD</option>      
-    <option value='c'>Scores</option>  
-    <option value='m'>Software</option>
-    <option value='g'>Video</option>
-    <option value='r'>3-D Object</option>
-    <option value='z'>Map</option>
-    <option value='s'>Slide set</option>       
+[% FOR o IN item_types %]
+    <option value='[% o.code %]'[% value == o.code ? ' selected="selected"' : ''%]>[% o.name %]</option>
+[%- END %]
 <!--
        <option value='at'>[% l("Books") %]</option>
        <option value='at-d'>[% l("Large Print Books") %]</option>
@@ -39,4 +14,3 @@
        <option value='m'>[% l("Electronic Resources") %]</option>
 -->
 </select>
-<!-- ****************** end: format_selector.xml ***************************** -->
index 4f72639..f887c44 100644 (file)
@@ -3,4 +3,42 @@
     USE CGI; 
     USE EGI18N;
     SET DATE_FORMAT = '%m/%d/%Y';
+
+    item_types = [  # XXX KCLS-specific
+        {'code' => 'a', 'name' => 'Book', 'image' => 'media_book.jpg'},
+        {'code' => 'i', 'name' => 'Book on cassette', 'image' => 'media_bookoncasset.jpg'},
+        {'code' => 'n', 'name' => 'Book on CD', 'image' => 'media_bookoncd.jpg'},
+        {'code' => 'x', 'name' => 'Download music', 'image' => 'media_downloadmusic.jpg'},
+        {'code' => 'y', 'name' => 'Download video', 'image' => 'media_downloadvideo.jpg'},
+        {'code' => 'h', 'name' => 'DVD', 'image' => 'media_dvd.jpg'},
+        {'code' => 'w', 'name' => 'eBook - Audio', 'image' => 'media_eaudio.jpg'},
+        {'code' => 'v', 'name' => 'eBook - Text', 'image' => 'media_ebooktext.jpg'},
+        {'code' => 'e', 'name' => 'Equipment', 'image' => 'media_equipment.jpg'},
+        {'code' => 'f', 'name' => 'Films', 'image' => 'media_films.jpg'},
+        {'code' => 'o', 'name' => 'Kit', 'image' => 'media_kit.jpg'},
+        {'code' => 'q', 'name' => 'Large print', 'image' => 'media_largeprint.jpg'},
+        {'code' => 'b', 'name' => 'Magazine', 'image' => 'media_magazines.jpg'},
+        {'code' => 'd', 'name' => 'Microform', 'image' => 'media_microform.jpg'},
+        {'code' => 'k', 'name' => 'Music cassette', 'image' => 'media_musiccassette.jpg'},
+        {'code' => 'j', 'name' => 'Music CD', 'image' => 'media_musiccd.jpg'},
+        {'code' => 'l', 'name' => 'Music LP', 'image' => 'media_musicrecord.jpg'},
+        {'code' => 'p', 'name' => 'Newspaper', 'image' => 'media_newspaper.jpg'},
+        {'code' => 't', 'name' => 'Online', 'image' => 'media_online.jpg'},
+        {'code' => 'u', 'name' => 'Player', 'image' => 'media_eaudio.jpg'},
+        {'code' => 'c', 'name' => 'Printed music / scores', 'image' => 'media_printedmusic.jpg'},
+        {'code' => '2', 'name' => 'Read along with cassette', 'image' => 'media_cassettewithbook.jpg'},
+        {'code' => '5', 'name' => 'Read along with CD', 'image' => 'media_cdwithbook.jpg'},
+        {'code' => 'm', 'name' => 'Software', 'image' => 'media_software.jpg'},
+        {'code' => 'g', 'name' => 'Video', 'image' => ''},
+        {'code' => 'r', 'name' => '3-D Object', 'image' => 'media_3dobject.jpg'},
+        {'code' => 'z', 'name' => 'Map', 'image' => 'media_map.jpg'},
+        {'code' => 's', 'name' => 'Slide set', 'image' => 'media_slide.jpg'}
+    ];
+
+    icon_by_mattype = {};
+    FOR o IN item_types;
+        code = o.code;
+        icon_by_mattype.$code = o.image;
+    END;
+
 -%]
index f919ed8..8f56196 100644 (file)
@@ -1,35 +1,4 @@
 [% 
-    icon_by_mattype = {     # XXX KCLS-specific
-        "a" => "media_book.jpg",
-        "b" => "media_magazines.jpg",
-        "c" => "media_printedmusic.jpg",
-        "d" => "media_microform.jpg",
-        "e" => "media_equipment.jpg",
-        "f" => "media_films.jpg",
-        "g" => "",
-        "h" => "media_dvd.jpg",
-        "i" => "media_bookoncassette.jpg",
-        "j" => "media_musiccd.jpg",
-        "k" => "media_musiccassette.jpg",
-        "l" => "media_musicrecord.jpg",
-        "m" => "media_software.jpg",
-        "n" => "media_bookoncd.jpg",
-        "o" => "media_kit.jpg",
-        "p" => "media_newspaper.jpg",
-        "q" => "media_largeprint.jpg",
-        "r" => "media_3dobject.jpg",
-        "s" => "media_slide.jpg",
-        "t" => "media_online.jpg",
-        "u" => "media_eaudio.jpg",
-        "v" => "media_ebooktext.jpg",
-        "w" => "media_eaudio.jpg",
-        "x" => "media_downloadmusic.jpg",
-        "y" => "media_downloadvideo.jpg",
-        "z" => "media_map.jpg",
-        "2" => "media_cassettewithbook.jpg",
-        "5" => "media_cdwithbook.jpg"
-    };
-
     # Extract MARC fields from XML
     #   get_marc_attrs( { marc_xml => doc } )
     BLOCK get_marc_attrs;
@@ -60,7 +29,5 @@
         mattype = attrs.mattype;
         args.format = ctx.find_citm(mattype).value;
         args.format_icon = icon_by_mattype.$mattype;
-
     END;
-
 %]
index 7156e55..24e56eb 100644 (file)
@@ -39,7 +39,7 @@
         </tr>
         <tr>
             <td>
-                [% INCLUDE "default/opac/parts/format_selector.tt2" %]
+                [% INCLUDE "default/opac/parts/format_selector.tt2" value=CGI.param("item_type") %]
             </td>
             <td>
                 <span id='depth_selector_span'>