From ee12ffe9816d532b80d18ed0a594380a27bdf4b1 Mon Sep 17 00:00:00 2001 From: John Doe Date: Fri, 26 May 2023 16:19:54 +0000 Subject: [PATCH] Bug 33117: Adding new PatronAutoCompleteSearchMethod system preference --- installer/data/mysql/atomicupdate/bug_33117.pl | 16 ++++++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 1 + .../prog/en/includes/js_includes.inc | 1 + .../modules/admin/preferences/circulation.pref | 6 ++++++ .../intranet-tmpl/prog/js/patron-autocomplete.js | 3 ++- 5 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 installer/data/mysql/atomicupdate/bug_33117.pl diff --git a/installer/data/mysql/atomicupdate/bug_33117.pl b/installer/data/mysql/atomicupdate/bug_33117.pl new file mode 100644 index 0000000000..4c05fc911b --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_33117.pl @@ -0,0 +1,16 @@ +use Modern::Perl; + +return { + bug_number => "33117", + description => "Patron checkout is not able to find patrons if using a second surname or other name during the search", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + + $dbh->do(q{INSERT INTO systempreferences (`variable`,`value`,`explanation`,`options`,`type`) + VALUES ('PatronAutoCompleteSearchMethod','starts_with','Allows staff to set a default method when searching for patrons with autocomplete','starts_with|contains','Choice'); + }); + + say $out "Added new system preference 'PatronAutoCompleteSearchMethod'"; + }, + }; diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql index a9e8a97e49..b6edd0ef87 100644 --- a/installer/data/mysql/mandatory/sysprefs.sql +++ b/installer/data/mysql/mandatory/sysprefs.sql @@ -555,6 +555,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('PassItemMarcToXSLT','0',NULL,'If enabled, item fields in the MARC record will be made avaiable to XSLT sheets. Otherwise they will be removed.','YesNo'), ('PatronAnonymizeDelay','',NULL,'Delay for anonymizing patrons', 'Integer'), ('PatronAutoComplete','1','Try|Don\'t try','to guess the patron being entered while typing a patron search for circulation or patron search. Only returns the first 10 results at a time.','YesNo'), +('PatronAutoCompleteSearchMethod','starts_with','Choose which search method to use by default when seartching with PatronAutoComplete','starts_with|choice','Choice'), ('PatronDuplicateMatchingAddFields','surname|firstname|dateofbirth', NULL,'A list of fields separated by "|" to deduplicate patrons when created','Free'), ('patronimages','0',NULL,'Enable patron images for the staff interface','YesNo'), ('PatronRemovalDelay','',NULL,'Delay for removing anonymized patrons', 'Integer'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc index f1745d52e8..3ea7f705ff 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc @@ -71,6 +71,7 @@ diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref index 6c3ee2c27b..fb33897362 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -26,6 +26,12 @@ Circulation: 0: "Don't try" - to guess the patron being entered while typing a patron search for circulation or patron search. - Only returns the first 10 results at a time. + - + - pref: PatronAutoCompleteSearchMethod + choices: + 1: Starts with + 0: "Contains" + - Enable this search method to determine whether to use Starts with or Contains for autocomplete patron searches. - - pref: itemBarcodeInputFilter choices: diff --git a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js b/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js index cc8ec068ae..167928dd3f 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js +++ b/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js @@ -2,6 +2,7 @@ function patron_autocomplete(node, options) { let link_to; let url_params; let on_select_callback; + let leading_wildcard = patronAutoCompleteSearchMethod === 'contains' ? '%' : ''; if ( options ) { if ( options['link-to'] ) { link_to = options['link-to']; @@ -22,7 +23,7 @@ function patron_autocomplete(node, options) { let subquery_or = []; defaultPatronSearchFields.split(',').forEach(function(field,i){ subquery_or.push( - {["me."+field]: {'like': pattern + '%'}} + {["me."+field]: {'like': leading_wildcard + pattern + '%'}} ); }); subquery_and.push(subquery_or); -- 2.30.2