LP#1037171 Removed Expert Search paramters from subject links user/ldw/lp1037171_subject_links_after_expert_search_eg23
authorLiam Whalen <whalen.ld@gmail.com>
Mon, 7 Oct 2013 07:17:37 +0000 (00:17 -0700)
committerLiam Whalen <whalen.ld@gmail.com>
Mon, 7 Oct 2013 07:17:37 +0000 (00:17 -0700)
After performing an Expert Search, if a user visits a record and then
clicks on one of the author or subject search links within that record,
then they are given the results of the Expert Search again
instead of the relevant subject or author search.

This is happening because the Expert Search parameters are
retained in the URLs via the TT2 MACRO mkurl.  In particular, the tag
parameter is used to identify an Expert Search, so if it is present in a URL,
than an Expert Search will be attempted regardless of which other
paramaters are in the URL.

To fix this, I created two varialbes within header.tt2 above the
definition of mkurl.  These variables group common URL paramters
for Expert Searches and General Search parameters together.  These
variables can be used wherever mkurl is used to strip out unneeded search
paramters.

There is a third variable that is already present within many of
these pages named stop_parms.  While I initially tried to modify this
variable, I found that there are some instances where the general
search parameters should be retained while the Expert Search parameters
must go.

This commit uses these three variables togehter as input into the
third arugment of the mkurl MACRO.  The third arugment specifies which
paramtes to remove from the previous URL before making a new URL
based on the pervious URL.

I also added the query parameter to the Place Hold's
hold_source_page URL variable.  I did this, so that the query terms would be
preserved once the user is done placing the hold or decides to cancle the
placing of the hold.

As well, I used the new variables to remove Expert Search
paramters from the Advanced Search links on the results and record pages.

Signed-off-by: Liam Whalen <whalen.ld@gmail.com>
Open-ILS/src/templates/opac/parts/header.tt2
Open-ILS/src/templates/opac/parts/record/authors.tt2
Open-ILS/src/templates/opac/parts/record/subjects.tt2
Open-ILS/src/templates/opac/parts/result/table.tt2
Open-ILS/src/templates/opac/parts/searchbar.tt2
Open-ILS/src/templates/opac/results.tt2

index e069b6e..8a59a03 100644 (file)
     is_advanced = CGI.param("_adv").size;
     is_special = CGI.param("_special").size;
 
+    #variables to use to remove parameters via mkurk
+    expert_search_parms = ['tag','subfield','term','_special'];
+    general_search_parms = ['page','sort','query'];
+
     # -----------------------------------------------------------------------------
     # mkurl( destination_page, params_to_set, params_to_clear )
     #
index 448fdf8..abf938b 100644 (file)
@@ -43,7 +43,7 @@ BLOCK build_author_links;
                 qterm = qterm _ ' ' _ sf_raw;
             END;
         END;
-        url = mkurl(ctx.opac_root _ '/results', {query => qterm, qtype => 'author'}, ['page', 'expand']);
+        url = mkurl(ctx.opac_root _ '/results', {query => qterm, qtype => 'author'}, stop_parms.merge(expert_search_parms, general_search_parms));
         author_type = (tlabel || label) | html;
         
         # schema.org changes
index e92644d..9e33913 100644 (file)
@@ -41,7 +41,7 @@
                 all_terms.push(subfield.textContent.replace('[#"^$\+\-,\.:;&|\[\]()]', ''));
                 total_term = all_terms.join(" ").replace('\s+$', '');
             %]
-<a href="[% mkurl(ctx.opac_root _ '/results', {qtype=>'subject', query=>total_term}, stop_parms); %]">[% single_term %]</a>
+<a href="[% mkurl(ctx.opac_root _ '/results', {qtype=>'subject', query=>total_term}, stop_parms.merge(expert_search_parms, general_search_parms)) %]">[% single_term %]</a>
             [%- END;
             IF all_terms.size; "<br/>"; END;
         END;
index 8525377..734bad8 100644 (file)
         )
 %]
                                                         <div class="results_aux_utils place_hold"><a
-                                                                href="[% mkurl(ctx.opac_root _ '/place_hold', 
-                                                                    {hold_target => rec.id, hold_type => 'T', hold_source_page => mkurl()}) %]" 
+                                                                href="[% mkurl(ctx.opac_root _ '/place_hold',
+                                                                    {hold_target => rec.id, hold_type => 'T', hold_source_page => mkurl()}, ['query']) %]"
                                                                     name="place_hold_link" class="no-dec"><img
                                                                 src="[% ctx.media_prefix %]/images/green_check.png"
                                                                 alt=""/><span class="result_place_hold">[% l('Place Hold') %]</span></a>
index b75752f..8c76359 100644 (file)
@@ -5,7 +5,7 @@
     [%- END %]
     <div>
         <span class="search_catalog_lbl">[% l('Search the Catalog') %]</span>
-        <a href="[% mkurl(ctx.opac_root _ '/advanced') %]"
+        <a href="[% mkurl(ctx.opac_root _ '/advanced', {}, general_search_parms.merge(expert_search_parms)) %]"
             id="home_adv_search_link"><span
             class="adv_search_font">[% l('Advanced Search') %]</span></a>
     </div>
index dfd72a6..bdfff81 100644 (file)
@@ -28,7 +28,7 @@
                     <a href="[% mkurl(ctx.opac_root _ '/home', {$loc_name => loc_value}, 1) %]">[% l('Another Search') %]</a>
                 </div>
                 <div class="results_header_btns">
-                    <a href="[% mkurl(ctx.opac_root _ '/advanced') %]">[% l('Advanced Search') %]</a>
+                    <a href="[% mkurl(ctx.opac_root _ '/advanced',{}, general_search_parms.merge(expert_search_parms)) %]">[% l('Advanced Search') %]</a>
                 </div>
                 [% IF ctx.mylist.size %]
                 <div class="results_header_btns cached_list_div">