Bug 32770: Restore patron search on all emails, phones, and addresses

Prior to bug 30063 we had "Email", "Phone", and "Address" in the search field list
that allowed a search on all email, phone, or address attributes.

This patron restores these and makes sure the search box and the patron search filters use
the same block to keep them consistent

The fields are now labelled 'All emails', 'All phones', and 'Full address' to make it clear
that they search multiple - including any single field in the DefaultPatronSearchFields will
additionally add that to the dropdowns

To test:
 1 - define 'test@email.pro' as 'Secondary email' for a patron
 2 - Search from 'Search patrons' address bar (visible at top of moremember.pl)
 3 - Nothing is found using 'Standard' or 'Email fields'
 4 - Apply patch
 5 - Refresh page and repeat
 6 - Nothing is found for standard, Patron is found for 'All emails'
 7 - Define a unique value for patron in 'Address 2'
 8 - Confirm 'Full address' search returns the patron
 9 - Test with 'Secondary phone' and 'All phones' as well
10 - Repeat test from 'Patrons' module using the search on the left

Signed-off-by: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit 96488dfec1)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Nick Clemens 2023-02-01 12:26:15 +00:00 committed by Martin Renvoize
parent 309858142c
commit a43deb1a2c
Signed by: martin.renvoize
GPG key ID: 422B469130441A0F
3 changed files with 30 additions and 30 deletions

View file

@ -25,21 +25,7 @@
<div class="form-extra-content">
<div>
<label for="searchfieldstype" class="control-label">Search fields</label>
<select name="searchfieldstype" id="searchfieldstype" class="form-control">
[% SET standard = Koha.Preference('DefaultPatronSearchFields') || 'firstname,middle_name,surname,othernames,cardnumber,userid' %]
[% default_fields = [ standard, 'surname', 'cardnumber', 'email', 'borrowernumber', 'userid', 'phone', 'address', 'dateofbirth', 'sort1', 'sort2' ] %]
[% search_options = default_fields.merge(standard.split(',')).unique %]
[% FOREACH s_o IN search_options %]
[% display_name = PROCESS patron_fields name=s_o %]
[% NEXT IF !display_name.length %]
[% IF searchfieldstype == s_o %]
<option value="[% s_o | html %]">[% display_name | $raw %]</option>
[% ELSE %]
<option value="[% s_o | html %]">[% display_name | $raw %]</option>
[% END %]
[% END %]
</select>
[% INCLUDE patron_fields_dropdown search_box=1 %]
</div>
<div>

View file

@ -58,21 +58,7 @@
</li>
[% CASE 'search_field' %]
<li>
<label for="searchfieldstype_filter">Search field:</label>
<select name="searchfieldstype" id="searchfieldstype_filter">
[% SET standard = Koha.Preference('DefaultPatronSearchFields') || 'firstname,middle_name,surname,othernames,cardnumber,userid' %]
[% default_fields = [ standard, 'surname', 'cardnumber', 'email', 'borrowernumber', 'userid', 'phone', 'address', 'dateofbirth', 'sort1', 'sort2' ] %]
[% search_options = default_fields.merge(standard.split(',')).unique %]
[% FOREACH s_o IN search_options %]
[% display_name = PROCESS patron_fields name=s_o %]
[% NEXT IF !display_name %]
[% IF searchfieldstype == s_o %]
<option selected="selected" value=[% s_o | html %]>[% display_name | $raw %]</option>
[% ELSE %]
<option value=[% s_o | html %]>[% display_name | $raw %]</option>
[% END %]
[% END %]
</select>
[% INCLUDE patron_fields_dropdown %]
</li>
[% CASE 'search_type' %]
<li>

View file

@ -1,6 +1,9 @@
[%- BLOCK patron_fields -%]
[%- SWITCH name -%]
[%- CASE standard -%]<span>Standard</span>
[%- CASE full_address -%]<span>Full address</span>
[%- CASE all_emails -%]<span>All emails</span>
[%- CASE all_phones -%]<span>All phones</span>
[%- CASE 'borrowernumber' -%]<span>Borrowernumber</span>
[%- CASE 'cardnumber' -%]<span>Card number</span>
[%- CASE 'surname' -%]<span>Surname</span>
@ -75,3 +78,28 @@
[%- CASE DEFAULT -%]
[%- END -%]
[%- END -%]
[%- BLOCK patron_fields_dropdown -%]
[% IF search_box %]
<label for="searchfieldstype" class="control-label">Search field:</label>
<select name="searchfieldstype" id="searchfieldstype" class="form-control">
[% ELSE %]
<label for="searchfieldstype_filter">Search field:</label>
<select name="searchfieldstype" id="searchfieldstype_filter">
[% END %]
[% SET standard = Koha.Preference('DefaultPatronSearchFields') || 'firstname,middle_name,surname,othernames,cardnumber,userid' %]
[% SET full_address = 'streetnumber,streettype,address,address2,city,state,zipcode,country' %]
[% SET all_emails = 'email,emailpro,B_email' %]
[% SET all_phones = 'phone,phonepro,B_phone,altcontactphone,mobile' %]
[% default_fields = [ standard, 'surname', 'cardnumber', all_emails, 'borrowernumber', 'userid', all_phone, full_address, 'dateofbirth', 'sort1', 'sort2' ] %]
[% search_options = default_fields.merge(standard.split(',')).unique %]
[% FOREACH s_o IN search_options %]
[% display_name = PROCESS patron_fields name=s_o %]
[% NEXT IF !display_name %]
[% IF searchfieldstype == s_o %]
<option selected="selected" value=[% s_o | html %]>[% display_name | $raw %]</option>
[% ELSE %]
<option value=[% s_o | html %]>[% display_name | $raw %]</option>
[% END %]
[% END %]
</select>
[%- END -%]