From f0edeb681a6d9ebbbe25c3fcb10f43a1f2234cb0 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 14 Jan 2022 11:24:17 +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. Signed-off-by: Lucas Gass --- installer/data/mysql/atomicupdate/bug-17018.pl | 13 +++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../prog/en/modules/admin/preferences/opac.pref | 8 ++++++++ .../bootstrap/en/includes/opac-topissues.inc | 6 +++--- .../bootstrap/en/modules/opac-topissues.tt | 2 +- opac/opac-search.pl | 2 +- opac/opac-topissues.pl | 2 +- 7 files changed, 28 insertions(+), 6 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 9cdd4f64ee..4228aee858 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 20bdbd959e..d2a037f1ff 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 @@ -880,6 +880,14 @@ OPAC: subtype: Subtypes sorting: Sorting location: Location and availability + - + - Show tabs in the OPAC advanced search for limiting searches by + - pref: OpacAdvancedSearchTypes + multiple: + itemtypes: Item type + ccode: Collection + loc: Shelving location + - "Tabs appear in the order listed.
" Authentication: - - pref: OPACShibOnly 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..5bb5716f29 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 8129451dd4..cd2b5f194f 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 5fd4be435e..0affc5b1fc 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