From 531455dfaa448d9e55cd536648364036b5f6d753 Mon Sep 17 00:00:00 2001
From: Aleisha Amohia <aleishaamohia@hotmail.com>
Date: Tue, 21 Apr 2020 11:48:06 +0000
Subject: [PATCH] Bug 21249: (follow-up) Fixing syspref name, description, get
 working with OPAC masthead search

Syspref is now called SearchLimitLibrary, and the description better
explains what the feature does. It works with the advanced search on the
staff client and OPAC, and the masthead search on the OPAC when
OpacAddMastheadLibraryPulldown is enabled.

Sponsored-by: Catalyst IT
---
 catalogue/search.pl                                           |  2 +-
 .../bug_21249-Branch_to_limit_advanced_search_results.sql     |  1 -
 .../atomicupdate/bug_21249-SearchLimitLibrary_syspref.perl    |  6 ++++++
 installer/data/mysql/mandatory/sysprefs.sql                   |  1 +
 .../prog/en/modules/admin/preferences/searching.pref          | 11 +++++------
 opac/opac-search.pl                                           |  6 ++----
 6 files changed, 15 insertions(+), 12 deletions(-)
 delete mode 100644 installer/data/mysql/atomicupdate/bug_21249-Branch_to_limit_advanced_search_results.sql
 create mode 100644 installer/data/mysql/atomicupdate/bug_21249-SearchLimitLibrary_syspref.perl

diff --git a/catalogue/search.pl b/catalogue/search.pl
index 6f3e85e387..4446ca944b 100755
--- a/catalogue/search.pl
+++ b/catalogue/search.pl
@@ -376,7 +376,7 @@ my %is_nolimit = map { $_ => 1 } @nolimits;
 @limits = grep { not $is_nolimit{$_} } @limits;
 
 if ( $params->{'multibranchlimit'} ) {
-    my $branchfield  = C4::Context->preference('AdvancedSearchBranchFieldToUse');
+    my $branchfield  = C4::Context->preference('SearchLimitLibrary');
     my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
     my @branchcodes  = map { $_->branchcode } $search_group->all_libraries;
 
diff --git a/installer/data/mysql/atomicupdate/bug_21249-Branch_to_limit_advanced_search_results.sql b/installer/data/mysql/atomicupdate/bug_21249-Branch_to_limit_advanced_search_results.sql
deleted file mode 100644
index 6d6aa04808..0000000000
--- a/installer/data/mysql/atomicupdate/bug_21249-Branch_to_limit_advanced_search_results.sql
+++ /dev/null
@@ -1 +0,0 @@
-INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type) VALUES ('AdvancedSearchBranchFieldToUse', 'homebranch and holdingbranch', 'homebranch|holdingbranch|homebranch and holdingbranch', 'When a library or group of libraries is selected from the advanced search compare the selected branch value against this branch field(s) selected', 'choice');
diff --git a/installer/data/mysql/atomicupdate/bug_21249-SearchLimitLibrary_syspref.perl b/installer/data/mysql/atomicupdate/bug_21249-SearchLimitLibrary_syspref.perl
new file mode 100644
index 0000000000..93519631de
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_21249-SearchLimitLibrary_syspref.perl
@@ -0,0 +1,6 @@
+$DBversion = 'XXX';
+if( CheckVersion( $DBversion ) ) {
+    $dbh->do(q{INSERT IGNORE INTO systempreferences (variable, value, options, explanation, type) VALUES ('SearchLimitLibrary', 'both', 'homebranch|holdingbranch|both', "When limiting search results with a library or library group, use the item's home library, or holding library, or both.", 'Choice')});
+
+    NewVersion( $DBversion, 21249, "Adding SearchLimitLibrary system preference" );
+}
diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql
index f09947e71b..55c38e2c51 100644
--- a/installer/data/mysql/mandatory/sysprefs.sql
+++ b/installer/data/mysql/mandatory/sysprefs.sql
@@ -582,6 +582,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `
 ('SCOUserCSS','',NULL,'Add CSS to be included in the SCO module in an embedded <style> tag.','free'),
 ('SCOUserJS','',NULL,'Define custom javascript for inclusion in the SCO module','free'),
 ('SearchEngine','Zebra','Elasticsearch|Zebra','Search Engine','Choice'),
+('SearchLimitLibrary', 'both', 'homebranch|holdingbranch|both', "When limiting search results with a library or library group, use the item's home library, or holding library, or both.", 'Choice'),
 ('SearchMyLibraryFirst','0',NULL,'If ON, OPAC searches return results limited by the user\'s library by default if they are logged in','YesNo'),
 ('SearchWithISBNVariations','0',NULL,'If enabled, search on all variations of the ISBN','YesNo'),
 ('SelfCheckAllowByIPRanges','',NULL,'(Leave blank if not used. Use ranges or simple ip addresses separated by spaces, like <code>192.168.1.1 192.168.0.0/24</code>.)','Short'),
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 fa8252ddf9..20b4a155e8 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
@@ -168,13 +168,12 @@ Searching:
                   az: from A to Z.
                   za: from Z to A.
         -
-            - pref: AdvancedSearchBranchFieldToUse
-              default: homebranch and holdingbranch
+            - When limiting search results with a library or library group, limit by the item's
+            - pref: SearchLimitLibrary
               choices:
-                  homebranch: homebranch
-                  holdingbranch: holdingbranch
-                  homebranch and holdingbranch: homebranch and holdingbranch
-            - When a library or group of libraries is selected from the advanced search compare the selected branch value against this branch field(s) selected
+                  homebranch: "home library."
+                  holdingbranch: "holding library."
+                  both: "home library and holding library."
         -
             - pref: displayFacetCount
               type: boolean
diff --git a/opac/opac-search.pl b/opac/opac-search.pl
index 8e24c2b55b..0643dfc15e 100755
--- a/opac/opac-search.pl
+++ b/opac/opac-search.pl
@@ -495,10 +495,8 @@ if (@searchCategories > 0) {
 
 @limits = map { uri_unescape($_) } @limits;
 
-my $branchfield = C4::Context->preference('AdvancedSearchBranchFieldToUse');
-
-if ( $params->{'multibranchlimit'} ) {
-    my $branchfield  = C4::Context->preference('AdvancedSearchBranchFieldToUse');
+if ( $params->{'multibranchlimit'} || ( $branch_group_limit && $branch_group_limit =~ /^multibranchlimit-/ ) ) {
+    my $branchfield  = C4::Context->preference('SearchLimitLibrary');
     my $search_group = Koha::Library::Groups->find( $params->{multibranchlimit} );
 
     my @branchcodes  = map { $_->branchcode } $search_group->all_libraries;
-- 
2.11.0