@@ -, +, @@ --- C4/Installer.pm | 6 +++--- installer/data/mysql/atomicupdate/bug_33117.pl | 16 ++++++++++++++++ installer/data/mysql/mandatory/sysprefs.sql | 2 +- .../prog/en/includes/js_includes.inc | 4 ++-- .../prog/en/modules/acqui/duplicate_orders.tt | 2 +- .../prog/en/modules/acqui/histsearch.tt | 3 ++- .../modules/admin/preferences/circulation.pref | 8 ++++++++ .../prog/en/modules/circ/curbside_pickups.tt | 2 +- .../prog/en/modules/course_reserves/course.tt | 3 ++- .../prog/en/modules/patron_lists/list.tt | 3 ++- .../prog/en/modules/reserve/request.tt | 2 +- .../prog/en/modules/virtualshelves/shelves.tt | 2 +- .../intranet-tmpl/prog/js/pages/tags-review.js | 2 +- .../intranet-tmpl/prog/js/patron-autocomplete.js | 4 ++-- koha-tmpl/intranet-tmpl/prog/js/viewlog.js | 2 +- 15 files changed, 44 insertions(+), 17 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_33117.pl --- a/C4/Installer.pm +++ a/C4/Installer.pm @@ -736,9 +736,9 @@ sub run_db_rev { sub { $db_rev->{up}->( { dbh => $schema->storage->dbh, out => $outfh } ); } - ); - } - catch { + )}; + + catch { $error = $_; }; --- a/installer/data/mysql/atomicupdate/bug_33117.pl +++ a/installer/data/mysql/atomicupdate/bug_33117.pl @@ -0,0 +1,16 @@ +use Modern::Perl; + +return { + bug_number => "33117", + description => "Patron checkout search not working if searching with second surname", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + # Do you stuffs here + $dbh->do(q{INSERT INTO systempreferences (`variable`, `value`, `explanation`, `options`, `type`) VALUES + ('PatronAutoCompleteSearchMethod' , '1' , 'Allows staff to search for patrons using the method' , 'Starts with|Contains', 'YesNo'), + }); + # sysprefs + say $out "Added new system preference 'PatronAutocompleteSearchMethod'"; + }, +}; --- a/installer/data/mysql/mandatory/sysprefs.sql +++ a/installer/data/mysql/mandatory/sysprefs.sql @@ -551,6 +551,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','1','Allows staff to search for patrons using the method 'Starts with|Contains','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'), @@ -789,7 +790,6 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` ('virtualshelves','1','','If ON, enables Lists management','YesNo'), ('WaitingNotifyAtCheckin','0',NULL,'If ON, notify librarians of waiting holds for the patron whose items they are checking in.','YesNo'), ('WebBasedSelfCheck','0',NULL,'If ON, enables the web-based self-check system','YesNo'), -('WhenLostChargeReplacementFee','1',NULL,'If ON, Charge the replacement price when a patron loses an item.','YesNo'), ('WhenLostForgiveFine','0',NULL,'If ON, Forgives the fines on an item when it is lost.','YesNo'), ('XSLTDetailsDisplay','default','','Enable XSL stylesheet control over details page display on intranet','Free'), ('XSLTListsDisplay','default','','Enable XSLT stylesheet control over lists pages display on intranet','Free'), --- a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/js_includes.inc @@ -78,11 +78,11 @@ $(document).ready(function(){ [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %] if ( $("#findborrower").length ) { - patron_autocomplete($("#findborrower"), { 'link-to': 'circ' }); + patron_autocomplete($("#findborrower"), { 'link-to': 'circ' },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); } [% END %] if ( $("#searchmember").length ) { - patron_autocomplete($("#searchmember"), { 'link-to': 'patron' }); + patron_autocomplete($("#searchmember"), { 'link-to': 'patron' },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); } }); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/duplicate_orders.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/duplicate_orders.tt @@ -347,7 +347,7 @@ Acquisitions › Koha $("#find_patron").val('').focus(); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); $("body").on("click",".removePatron",function(e){ e.preventDefault(); var divid = $(this).parent().attr("id"); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt @@ -1,6 +1,7 @@ [% USE raw %] [% USE Asset %] [% USE KohaDates %] +[% USE Koha %] [% USE TablesSettings %] [% USE Branches %] [% SET footerjs = 1 %] @@ -187,7 +188,7 @@ $("#find_patron").val('').focus(); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); $("body").on("click",".removePatron",function(e){ e.preventDefault(); var divid = $(this).parent().attr("id"); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref @@ -26,6 +26,14 @@ 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" + -allows staff to choose between "Starts with" or "Contains" when searching for patrons. + - - pref: itemBarcodeInputFilter choices: --- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/curbside_pickups.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/curbside_pickups.tt @@ -655,7 +655,7 @@ window.location.href = "/cgi-bin/koha/circ/curbside_pickups.pl?op=find-patron&borrowernumber=" + ui.item.patron_id; return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); } $("#pickup-tabs a[data-toggle='tab']").on("shown.bs.tab", function (e) { --- a/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course.tt @@ -1,4 +1,5 @@ [% PROCESS 'i18n.inc' %] +[% USE Koha %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] [% IF course_name %] Edit [% course_name | html %] [% ELSE %] New course [% END %] › Course reserves › Koha @@ -181,7 +182,7 @@ AddInstructor( ui.item.surname + ", " + ui.item.firstname, ui.item.patron_id ); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); if ( ! $('#instructors').html() ) { $('#course_instructors').hide(); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/list.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/list.tt @@ -1,5 +1,6 @@ [% USE raw %] [% USE Asset %] +[% USE Koha %] [% USE KohaDates %] [% USE TablesSettings %] [% SET footerjs = 1 %] @@ -267,7 +268,7 @@ $("#find_patron").val('').focus(); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); $("body").on("click",".removePatron",function(e){ e.preventDefault(); var divid = $(this).parent().attr("id"); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt @@ -1680,7 +1680,7 @@ Sticky.hcSticky({ stickTo: "#existing_holds", stickyClass: "floating" - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); [% IF Koha.Preference('EnableItemGroupHolds') %] $(':radio[name="item_group_id"]').change(function(){ --- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt @@ -961,7 +961,7 @@ $('#new_owner').val( ui.item.patron_id ); $('#find_patron').val('').focus(); return false; - }}); + }},'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); $('#transferform').submit(function() { if( $('#new_owner').val() == '' ) { --- a/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js +++ a/koha-tmpl/intranet-tmpl/prog/js/pages/tags-review.js @@ -163,5 +163,5 @@ $(document).ready(function() { $("#approver").val( ui.item.patron_id ); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); }); --- a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js +++ a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js @@ -1,4 +1,4 @@ -function patron_autocomplete(node, options) { +function patron_autocomplete(node, options, search_type) { let link_to; let url_params; let on_select_callback; @@ -20,7 +20,7 @@ function patron_autocomplete(node, options) { .filter(function(s){ return s.length }) .forEach(function(pattern,i){ let subquery_or = []; - defaultPatronSearchFields.split(',').forEach(function(field,i){ + defaultPatronSearchFields.split(',').forEach(function(field,i,search_type){ subquery_or.push( {["me."+field]: {'like': pattern + '%'}} ); --- a/koha-tmpl/intranet-tmpl/prog/js/viewlog.js +++ a/koha-tmpl/intranet-tmpl/prog/js/viewlog.js @@ -148,5 +148,5 @@ $(document).ready(function(){ $("#user").val( ui.item.patron_id ); return false; } - }); + },'[%Koha.Preference('PatronAutocompleteSearchMethod') | html %]'); }); --