LP#1053397 MR TPAC filters; editing
authorBill Erickson <berick@esilibrary.com>
Tue, 4 Feb 2014 18:32:00 +0000 (13:32 -0500)
committerBill Erickson <berick@esilibrary.com>
Tue, 4 Feb 2014 18:32:00 +0000 (13:32 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Search.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGWeb.pm
Open-ILS/src/templates/opac/css/style.css.tt2
Open-ILS/src/templates/opac/parts/advanced/search.tt2
Open-ILS/src/templates/opac/parts/metarecord_hold_filters.tt2

index c4431f7..5b0a0a2 100644 (file)
@@ -1157,15 +1157,21 @@ sub compile_holdable_formats {
     my @selected_langs = $cgi->param("metarecord_langs_$mr_id");
 
     # map the selected attrs into the JSON holdable_formats structure
-    @selected_formats = map {
-        {_attr => $format_attr, _val => $_} } @selected_formats;
-    @selected_langs = map {
-        {_attr => 'item_lang', _val => $_} } @selected_langs;
-
-    return OpenSRF::Utils::JSON->perl2JSON({
-        0 => \@selected_formats,
-        1 => \@selected_langs
-    });
+    my $blob = {};
+    if (@selected_formats) {
+        $blob->{0} = [
+            map { {_attr => $format_attr, _val => $_} } 
+            @selected_formats
+        ];
+    }
+    if (@selected_langs) {
+        $blob->{1} = [
+            map { {_attr => 'item_lang', _val => $_} } 
+            @selected_langs
+        ];
+    }
+
+    return OpenSRF::Utils::JSON->perl2JSON($blob);
 }
 
 sub fetch_user_circs {
index b02b596..0fb53ac 100644 (file)
@@ -324,9 +324,7 @@ sub load_rresults {
         return $bbag_err;
     }
 
-    if (!$internal) {
-        $ctx->{page} = $is_meta ? 'mresult' : 'rresult';
-    }
+    $ctx->{page} = 'rresult' unless $internal;
     $ctx->{ids} = [];
     $ctx->{records} = [];
     $ctx->{search_facets} = {};
index 57cb02b..8b72e53 100644 (file)
@@ -186,7 +186,10 @@ sub load_context {
         parse_accept_lang($r->headers_in->get('Accept-Language'));
 
     # set the editor default locale for each page load
-    OpenSRF::AppSession->default_locale(parse_eg_locale($ctx->{locale}));
+    my $ses_locale = parse_eg_locale($ctx->{locale});
+    OpenSRF::AppSession->default_locale($ses_locale);
+    # give templates access to the en-US style locale
+    $ctx->{eg_locale} = $ses_locale;
 
     my $mprefix = $ctx->{media_prefix};
     if($mprefix and $mprefix !~ /^http/ and $mprefix !~ /^\//) {
index 1076338..bc16306 100644 (file)
@@ -960,6 +960,7 @@ table.acct_notes th {
 div.adv_search_available {
     margin-top: 1em;
 }
+
 #myopac_loading {
     width:100%;
     text-align:center;
index 1fbd037..bf6c9e9 100644 (file)
                     %]
 
                     <!-- applies metarecord search -->
+                    <br/><!-- <br> may seem redundant, but it allows the
+                        <input> (below) to drop down inline w/ its label -->
                     <div class="adv_search_available">
                         <input type='checkbox' name="modifier" value="metabib"
                           [%- CGI.param('modifier').grep('metabib').size ? 
index 9615ca8..452feed 100644 (file)
@@ -56,6 +56,9 @@ limiting the set of desired records for a given metarecord.
       [% END %]
     </select>
   </div>
+  [% IF hold_data.metarecord_filters.langs.size;
+        my_lang = ctx.get_i18n_l(ctx.eg_locale).marc_code;
+  %]
   <div class="metarecord_filter_container">
     <div class="metarecord_filter_header">
       [% l('Select your desired language(s)') %]
@@ -63,13 +66,24 @@ limiting the set of desired records for a given metarecord.
     <select multiple='multiple' 
       name="metarecord_langs_[% target_id %]">
       [% FOR lang_ccvm IN hold_data.metarecord_filters.langs.sort('value') %]
-        <option value="[% lang_ccvm.code %]"[%- code = lang_ccvm.code; 
-            IF selected_langs.$code %]selected='selected'[% END -%]>
+        [%  selected = 0; 
+            code = lang_ccvm.code;
+            IF selected_langs.size;
+                # user has already selected their preferred language(s)
+                SET selected = 1 IF selected_langs.$code;
+            ELSE;
+                # no prefered language selected, default to current locale
+                SET selected = 1 IF code == my_lang;
+            END;
+        %]
+        <option value="[% lang_ccvm.code %]"[%- 
+            IF selected %] selected='selected'[%- END %]>
           [% lang_ccvm.value | html %]
         </option>
       [% END %]
     </select>
   </div>
+  [% END %]
   <div class="clear-both">&nbsp;</div>
 </div>
 [% END # metarecord_hold_filters_selector %]