From 6ec8bcea7e3a1b93fd9d4627571d95483c55b635 Mon Sep 17 00:00:00 2001 From: Liam Whalen Date: Sun, 6 Oct 2013 22:11:56 -0700 Subject: [PATCH] LP#1037171 Removed Expert Search paramters from subject links After performing an Expert Search, if a user visits a record and then clicks on one of the author, subject, or series 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. Conflicts: Open-ILS/src/templates/opac/parts/searchbar.tt2 Signed-off-by: Liam Whalen Signed-off-by: Mike Rylander --- Open-ILS/src/templates/opac/parts/header.tt2 | 4 ++++ Open-ILS/src/templates/opac/parts/record/authors.tt2 | 2 +- Open-ILS/src/templates/opac/parts/record/series.tt2 | 2 +- Open-ILS/src/templates/opac/parts/record/subjects.tt2 | 2 +- Open-ILS/src/templates/opac/parts/result/table.tt2 | 4 ++-- Open-ILS/src/templates/opac/parts/searchbar.tt2 | 2 +- Open-ILS/src/templates/opac/results.tt2 | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Open-ILS/src/templates/opac/parts/header.tt2 b/Open-ILS/src/templates/opac/parts/header.tt2 index daa26e5d6d..9a2858ca86 100644 --- a/Open-ILS/src/templates/opac/parts/header.tt2 +++ b/Open-ILS/src/templates/opac/parts/header.tt2 @@ -12,6 +12,10 @@ 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 ) # diff --git a/Open-ILS/src/templates/opac/parts/record/authors.tt2 b/Open-ILS/src/templates/opac/parts/record/authors.tt2 index a13843d41b..676e0f855b 100644 --- a/Open-ILS/src/templates/opac/parts/record/authors.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/authors.tt2 @@ -65,7 +65,7 @@ BLOCK build_author_links; term = term _ ' ' _ sf; 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 diff --git a/Open-ILS/src/templates/opac/parts/record/series.tt2 b/Open-ILS/src/templates/opac/parts/record/series.tt2 index 8b29b6bb60..951823215d 100644 --- a/Open-ILS/src/templates/opac/parts/record/series.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/series.tt2 @@ -24,7 +24,7 @@ BLOCK render_series; total_term = all_terms.join(" ").replace('\s+$', ''); url = mkurl(ctx.opac_root _ '/results', - { qtype=>'series', query=>total_term }, stop_parms + { qtype=>'series', query=>total_term }, stop_parms.merge(expert_search_parms, general_search_parms) ); series = series _ '' _ single_term _ ' '; END; diff --git a/Open-ILS/src/templates/opac/parts/record/subjects.tt2 b/Open-ILS/src/templates/opac/parts/record/subjects.tt2 index 5812690b46..68c421b648 100644 --- a/Open-ILS/src/templates/opac/parts/record/subjects.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/subjects.tt2 @@ -47,7 +47,7 @@ all_terms.push(subfield.textContent.replace('\-', ' ').replace('[#"^$\+,\.:;&|\[\]()]', '')); total_term = all_terms.join(" ").replace('\s+$', ''); %] -[% single_term %] +[% single_term %] [%- END; IF all_terms.size; "
"; END; FOREACH link880 IN graphics; diff --git a/Open-ILS/src/templates/opac/parts/result/table.tt2 b/Open-ILS/src/templates/opac/parts/result/table.tt2 index fd1c20f8bd..b481b5f06b 100644 --- a/Open-ILS/src/templates/opac/parts/result/table.tt2 +++ b/Open-ILS/src/templates/opac/parts/result/table.tt2 @@ -297,8 +297,8 @@ END; ) %]
[% l('Place Hold') %] diff --git a/Open-ILS/src/templates/opac/parts/searchbar.tt2 b/Open-ILS/src/templates/opac/parts/searchbar.tt2 index e16729f5c1..3723099221 100644 --- a/Open-ILS/src/templates/opac/parts/searchbar.tt2 +++ b/Open-ILS/src/templates/opac/parts/searchbar.tt2 @@ -5,7 +5,7 @@ [%- END %] diff --git a/Open-ILS/src/templates/opac/results.tt2 b/Open-ILS/src/templates/opac/results.tt2 index 24010f9dfa..500680025b 100644 --- a/Open-ILS/src/templates/opac/results.tt2 +++ b/Open-ILS/src/templates/opac/results.tt2 @@ -25,7 +25,7 @@ [% l('Another Search') %]
-- 2.43.2