@@ -, +, @@ in patron searching UPDATE borrowers SET surname = 'Fitzwilliams' IF borrowernumber < 25; UPDATE borrowers SET surname = 'Williams' IF borrowernumber > 25; --- koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc | 7 ++++++- koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) --- a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/patron-search.inc @@ -326,8 +326,13 @@ let subquery_and = []; patterns.forEach(function(pattern,i){ let sub_or = []; + let cur_search_type = search_type; + if( pattern.slice(0,1) == '^' ){ + cur_search_type = "starts_with"; + pattern = pattern.substr(1); + } search_fields.split(',').forEach(function(attr,ii){ - sub_or.push({["me."+attr]:{"like":(search_type == "contain" ? "%" : "" ) + pattern + "%"}}); + sub_or.push({["me."+attr]:{"like":(cur_search_type == "contain" ? "%" : "" ) + pattern + "%"}}); if ( attr == 'dateofbirth' ) { try { let d = $date_to_rfc3339(pattern); --- a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js +++ a/koha-tmpl/intranet-tmpl/prog/js/patron-autocomplete.js @@ -20,9 +20,14 @@ function patron_autocomplete(node, options) { .filter(function(s){ return s.length }) .forEach(function(pattern,i){ let subquery_or = []; + let likeness = "%"; + if( pattern.slice(0,1) == '^' ){ + pattern = pattern.substr(1); + likeness = ""; + } defaultPatronSearchFields.split(',').forEach(function(field,i){ subquery_or.push( - {["me."+field]: {'like': pattern + '%'}} + {["me."+field]: {'like': likeness + pattern + '%'}} ); }); subquery_and.push(subquery_or); --