From 441b3f949b9362573e89cdcfaf1a8c197a2ba46b 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. 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 005b48a0f1..a57a77a4c0 100644 --- a/Open-ILS/src/templates/opac/parts/record/authors.tt2 +++ b/Open-ILS/src/templates/opac/parts/record/authors.tt2 @@ -62,7 +62,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 3914908990..21b3e1980b 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 0c0b27cf44..41ff407ddd 100644 --- a/Open-ILS/src/templates/opac/parts/result/table.tt2 +++ b/Open-ILS/src/templates/opac/parts/result/table.tt2 @@ -296,8 +296,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 0359c83cda..604ddade81 100644 --- a/Open-ILS/src/templates/opac/parts/searchbar.tt2 +++ b/Open-ILS/src/templates/opac/parts/searchbar.tt2 @@ -5,7 +5,7 @@ [%- END %]
[% l('Search the Catalog') %] - [% l('Advanced Search') %]
diff --git a/Open-ILS/src/templates/opac/results.tt2 b/Open-ILS/src/templates/opac/results.tt2 index d199ce91f2..de67d78a12 100644 --- a/Open-ILS/src/templates/opac/results.tt2 +++ b/Open-ILS/src/templates/opac/results.tt2 @@ -27,7 +27,7 @@ [% l('Another Search') %]
[% IF ctx.mylist.size %]
-- 2.11.0