From c2d7e018565a2bf60b3aa709caa43164508dcef7 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Mon, 14 Feb 2022 19:18:15 +0000 Subject: [PATCH] Bug 17018: Split AdvancedSearchTypes for staff and OPAC This patch adds a new system preference, OpacAdvancedSearchTypes, as an OPAC-specific version of the AdvancedSearchTypes preference. Values from AdvancedSearchTypes are copied to OpacAdvancedSearchTypes so that behavior is consistent. To test, apply the patch and run the database update process. - Go to Administration -> System preferences. - Search for AdvancedSearchTypes. You should get two results, one for the OPAC preference and one for the staff interface. - Check that the OpacAdvancedSearchTypes settings match the AdvancedSearchTypes settings. - View the advanced search pages in the staff interface and OPAC to confirm that the tabs look correct. - Change the OpacAdvancedSearchTypes and AdvancedSearchTypes settings to be different and confirm that each is applied separately to each interface. - Enable the OpacTopissue system preference. - View the "Most popular" page in the OPAC. - The OpacAdvancedSearchTypes settings should be reflected in the "Refine your search" sidebar: If "Collection" is checked, a filter for collection should appear. If "Item types" is checked, a filter for item types should appear. --- installer/data/mysql/atomicupdate/bug-17018.pl | 13 +++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/opac.pref | 6 ++++++ .../en/modules/admin/preferences/searching.pref | 4 ++-- .../bootstrap/en/includes/opac-topissues.inc | 6 +++--- .../bootstrap/en/modules/opac-topissues.tt | 2 +- opac/opac-search.pl | 2 +- opac/opac-topissues.pl | 2 +- 8 files changed, 28 insertions(+), 8 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug-17018.pl diff --git a/installer/data/mysql/atomicupdate/bug-17018.pl b/installer/data/mysql/atomicupdate/bug-17018.pl new file mode 100755 index 0000000000..58facba735 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug-17018.pl @@ -0,0 +1,13 @@ +use Modern::Perl; + +return { + bug_number => "17018", + description => "Split AdvancedSearchTypes for staff and OPAC", + up => sub { + my ($args) = @_; + my $dbh = $args->{dbh}; + + $dbh->do( "INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) SELECT 'OpacAdvancedSearchTypes', `value`, `options`, 'Select which set of fields are available as limits on the OPAC advanced search page', `type` FROM systempreferences WHERE variable = 'AdvancedSearchTypes'" ); + + }, +} diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index dd83a00fd8..1d656fb0f8 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -389,6 +389,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('OpacAddMastheadLibraryPulldown','0','','Adds a pulldown menu to select the library to search on the opac masthead.','YesNo'), ('OpacAdvSearchMoreOptions','pubdate,itemtype,language,subtype,sorting,location','Show search options for the expanded view (More options)','pubdate|itemtype|language|subtype|sorting|location','multiple'), ('OpacAdvSearchOptions','pubdate,itemtype,language,sorting,location','Show search options','pubdate|itemtype|language|subtype|sorting|location','multiple'), +('OpacAdvancedSearchTypes','itemtypes','itemtypes|ccode','Select which set of fields are available as limits on the OPAC advanced search page','Choice'), ('OPACAllowHoldDateInFuture','0','','If set, along with the AllowHoldDateInFuture system preference, OPAC users can set the date of a hold to be in the future.','YesNo'), ('OpacAllowPublicListCreation','1',NULL,'If set, allows opac users to create public lists','YesNo'), ('OpacAllowSharingPrivateLists','0',NULL,'If set, allows opac users to share private lists with other patrons','YesNo'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref index a214dae954..fe83eb4a23 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref @@ -876,6 +876,12 @@ OPAC: subtype: Subtypes sorting: Sorting location: Location and availability + - + - Show tabs in the OPAC advanced search for limiting searches on the + - pref: OpacAdvancedSearchTypes + class: long + - "fields (separate values with |). Tabs appear in the order listed.
" + - "Currently supported values: Item types (itemtypes), Collection, (ccode) and Shelving Location (loc)." Authentication: - - pref: OPACShibOnly diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref index a0d7ec430d..310a3fe72a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/searching.pref @@ -96,11 +96,11 @@ Searching: 0: "Don't add" - search history of the unlogged user to the next patron logging in. - - - Show tabs in the OPAC and staff interface advanced search for limiting searches on the + - Show tabs in the staff interface advanced search for limiting searches on the - pref: AdvancedSearchTypes class: long - "fields (separate values with |). Tabs appear in the order listed.
" - - "Currently supported values: Item types (itemtypes), Collection Codes (ccode) and Shelving Location (loc)." + - "Currently supported values: Item types (itemtypes), Collection, (ccode) and Shelving Location (loc)." - - Limit the languages listed in the advanced search drop-down to the - pref: AdvancedSearchLanguages diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-topissues.inc b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-topissues.inc index 11e0b4cf6d..c26c1d7eae 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-topissues.inc +++ b/koha-tmpl/opac-tmpl/bootstrap/en/includes/opac-topissues.inc @@ -25,8 +25,8 @@ [% END %] - [% AdvancedSearchTypes = Koha.Preference('AdvancedSearchTypes').split('\|') %] - [% IF AdvancedSearchTypes.grep('^itemtypes$').size %] + [% OpacAdvancedSearchTypes = Koha.Preference('OpacAdvancedSearchTypes').split('|') %] + [% IF OpacAdvancedSearchTypes.grep('^itemtypes$').size %]
  • diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt index 3cdc6a417a..2b256d668a 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt @@ -110,7 +110,7 @@ [% IF ( result.item('size') ) %][% result.item('size') | html %][% END %]

    - [% IF Koha.Preference('AdvancedSearchTypes') == 'ccode' %] + [% IF Koha.Preference('OpacAdvancedSearchTypes') == 'ccode' %] Collection [% AuthorisedValues.GetByCode('ccode', result.ccode, 1) | html %] [% ELSE %] diff --git a/opac/opac-search.pl b/opac/opac-search.pl index b2d7be17c8..f97a05da1f 100755 --- a/opac/opac-search.pl +++ b/opac/opac-search.pl @@ -239,7 +239,7 @@ foreach my $itemtype ( keys %{$itemtypes} ) { my $itype_or_itemtype = (C4::Context->preference("item-level_itypes"))?'itype':'itemtype'; my @advancedsearchesloop; my $cnt; -my $advanced_search_types = C4::Context->preference("AdvancedSearchTypes") || "itemtypes"; +my $advanced_search_types = C4::Context->preference("OpacAdvancedSearchTypes") || "itemtypes"; my @advanced_search_types = split(/\|/, $advanced_search_types); my $hidingrules = C4::Context->yaml_preference('OpacHiddenItems') // {}; diff --git a/opac/opac-topissues.pl b/opac/opac-topissues.pl index f185702e32..43830ccfd5 100755 --- a/opac/opac-topissues.pl +++ b/opac/opac-topissues.pl @@ -64,7 +64,7 @@ if (!$do_it && C4::Context->userenv && C4::Context->userenv->{'branch'} ) { } my $itemtype = $input->param('itemtype') || ''; my $timeLimit = $input->param('timeLimit') || 3; -my $advanced_search_types = C4::Context->preference('AdvancedSearchTypes'); +my $advanced_search_types = C4::Context->preference('OpacAdvancedSearchTypes'); my @advanced_search_types = split /\|/, $advanced_search_types; my $params = { -- 2.20.1