From de5d977c499144a39189692e957333620efc73eb Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 24 Oct 2013 17:06:08 +0200 Subject: [PATCH] Bug 11132: don't clear the results list upon adding a biblio to a list A "busc" param is cleared if the template name is not opac-.*detail.tt. So if a user adds a biblio to a list, he cannot continue to browse results. Test plan: - launch a search at the OPAC (opac-search.pl). - click on a result and browse results (using previous/next links). - a title attract your attention and you add it to a list ("Save to yours lists" link on the right). - save the list. - browse again results. Signed-off-by: Joy Nelson Signed-off-by: Katrin Fischer Tested according to test plan, also checked some other pages and actions accessible from the detail page. Passes all tests and QA script. Signed-off-by: Galen Charlton --- C4/Auth.pm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/C4/Auth.pm b/C4/Auth.pm index 9801f7691a..8b0bebe9fd 100644 --- a/C4/Auth.pm +++ b/C4/Auth.pm @@ -371,10 +371,15 @@ sub get_template_and_user { my $LibraryNameTitle = C4::Context->preference("LibraryName"); $LibraryNameTitle =~ s/<(?:\/?)(?:br|p)\s*(?:\/?)>/ /sgi; $LibraryNameTitle =~ s/<(?:[^<>'"]|'(?:[^']*)'|"(?:[^"]*)")*>//sg; - # clean up the busc param in the session if the page is not opac-detail - if (C4::Context->preference("OpacBrowseResults") && $in->{'template_name'} =~ /opac-(.+)\.(?:tt|tmpl)$/ && $1 !~ /^(?:MARC|ISBD)?detail$/) { - my $sessionSearch = get_session($sessionID || $in->{'query'}->cookie("CGISESSID")); - $sessionSearch->clear(["busc"]) if ($sessionSearch->param("busc")); + # clean up the busc param in the session if the page is not opac-detail and not the "add to list" page + if ( C4::Context->preference("OpacBrowseResults") + && $in->{'template_name'} =~ /opac-(.+)\.(?:tt|tmpl)$/ ) { + my $pagename = $1; + unless ( $pagename =~ /^(?:MARC|ISBD)?detail$/ + or $pagename =~ /^addbybiblionumber$/ ) { + my $sessionSearch = get_session($sessionID || $in->{'query'}->cookie("CGISESSID")); + $sessionSearch->clear(["busc"]) if ($sessionSearch->param("busc")); + } } # variables passed from CGI: opac_css_override and opac_search_limits. my $opac_search_limit = $ENV{'OPAC_SEARCH_LIMIT'}; -- 2.39.5