Bugzilla – Attachment 191519 Details for
Bug 41638
Patron record field labels lack distinct id in HTML
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 41638: Add IDs to labels on patron edit
b693f9a.patch (text/plain), 61.36 KB, created by
Lisette Scheer
on 2026-01-15 17:09:19 UTC
(
hide
)
Description:
Bug 41638: Add IDs to labels on patron edit
Filename:
MIME Type:
Creator:
Lisette Scheer
Created:
2026-01-15 17:09:19 UTC
Size:
61.36 KB
patch
obsolete
>From b693f9a6c7a40772fcab9112f1d63de0350d9a2b Mon Sep 17 00:00:00 2001 >From: Lisette Scheer <lisette@bywatersolutions.com> >Date: Thu, 15 Jan 2026 17:00:43 +0000 >Subject: [PATCH] Bug 41638: Add IDs to labels on patron edit > >When targeting with jquery and css, labels on the patron edit screen can be fragile and complicated. >This patch adds ids to all the labels that follow the following convention: > ><label for="surname" class="required" id="surname_label"> > >Each id is the "for" with _label appended. > >To Test: >1. Before applying the patch, go to add a new patron >2. Right click on the page and use the browser inspector/inspect element. >3. Observe there are no ids for the field labels. >4. Apply patch >5. Reload the page >6. Observe there are now ids for the fields. >7. Go through all the fields and confirm there is an id and that they follow the convention above. >8. Change mandatory fields and confirm the labels are still correct. >9. Edit an existing patron and confirm the ids are still present. >10. Sign off! >--- > .../prog/en/modules/members/memberentrygen.tt | 188 +++++++++--------- > 1 file changed, 97 insertions(+), 91 deletions(-) > >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >index 9e8bf04c0b7..80e2a4212dc 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/memberentrygen.tt >@@ -316,7 +316,7 @@ > [% UNLESS notitle %] > [% IF Koha.Preference('BorrowersTitles') %] > <li> >- <label for="btitle" [% IF mandatorytitle %]class="required"[% END %]> Salutation: </label> >+ <label for="btitle" [% IF mandatorytitle %]class="required"[% END %] id="btitle_label"> Salutation: </label> > <select id="btitle" name="title"> > <option value=""></option> > [% FOREACH patron_title IN Koha.Preference('BorrowersTitles').split('\|') %] >@@ -338,9 +338,9 @@ > [% UNLESS nosurname %] > <li> > [% IF ( patron_category.category_type == 'I' ) %] >- <label for="surname" class="required"> Name: </label> >+ <label for="surname" class="required" id="surname_label"> Name: </label> > [% ELSE %] >- <label for="surname" [% IF mandatorysurname %]class="required"[% END %]> Surname: </label> >+ <label for="surname" [% IF mandatorysurname %]class="required"[% END %] id="surname_label"> Surname: </label> > [% END %] > > [% IF ( uppercasesurnames ) %] >@@ -357,7 +357,7 @@ > [% UNLESS ( patron_category.category_type == 'I' ) %] > [% UNLESS nofirstname %] > <li> >- <label for="firstname" [% IF mandatoryfirstname %]class="required"[% END %]> First name: </label> >+ <label for="firstname" [% IF mandatoryfirstname %]class="required"[% END %] id="firstname_label"> First name: </label> > <input type="text" id="firstname" name="firstname" size="20" value="[% borrower_data.firstname | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatoryfirstname ) %] > <span class="required">Required</span> >@@ -366,7 +366,7 @@ > [% END #/UNLESS nofirstname %] > [% UNLESS nopreferred_name %] > <li> >- <label for="preferred_name" [% IF mandatorypreferred_name %]class="required"[% END %]> Preferred name: </label> >+ <label for="preferred_name" [% IF mandatorypreferred_name %]class="required"[% END %] id="preferred_name_label"> Preferred name: </label> > <input type="text" id="preferred_name" name="preferred_name" size="20" value="[% borrower_data.preferred_name | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatorypreferred_name ) %] > <span class="required">Required</span> >@@ -375,7 +375,7 @@ > [% END #/UNLESS nopreferred_name %] > [% UNLESS nomiddle_name %] > <li> >- <label for="middle_name" [% IF mandatorymiddle_name %]class="required"[% END %]> Middle name: </label> >+ <label for="middle_name" [% IF mandatorymiddle_name %]class="required"[% END %] id="middle_name_label"> Middle name: </label> > <input type="text" id="middle_name" name="middle_name" size="20" value="[% borrower_data.middle_name | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatorymiddle_name ) %] > <span class="required">Required</span> >@@ -384,7 +384,7 @@ > [% END #/UNLESS nomiddle_name %] > [% UNLESS nodateofbirth %] > <li> >- <label for="dateofbirth" [% IF mandatorydateofbirth %]class="required"[% END %]> Date of birth: </label> >+ <label for="dateofbirth" [% IF mandatorydateofbirth %]class="required"[% END %] id="dateofbirth_label"> Date of birth: </label> > <input > type="text" > id="dateofbirth" >@@ -405,7 +405,7 @@ > [% END # /UNLESS nodateofbirth %] > [% UNLESS noinitials %] > <li> >- <label for="initials" [% IF mandatoryinitials %]class="required"[% END %]> Initials: </label> >+ <label for="initials" [% IF mandatoryinitials %]class="required"[% END %] id="initials_label"> Initials: </label> > <input type="text" id="initials" name="initials" size="20" value="[% borrower_data.initials | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatoryinitials ) %] > <span class="required">Required</span> >@@ -414,7 +414,7 @@ > [% END # /UNLESS noinitials %] > [% UNLESS nopronouns %] > <li> >- <label for="pronouns" [% IF mandatorypronouns %]class="required"[% END %]> Pronouns: </label> >+ <label for="pronouns" [% IF mandatorypronouns %]class="required"[% END %] id="pronouns_label"> Pronouns: </label> > <input type="text" id="pronouns" name="pronouns" size="20" value="[% borrower_data.pronouns | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatorypronouns ) %] > <span class="required">Required</span> >@@ -424,7 +424,7 @@ > [% END #/UNLESS ( I ) %] > [% UNLESS noothernames %] > <li> >- <label for="othernames" [% IF mandatoryothernames %]class="required"[% END %]> Other name: </label> >+ <label for="othernames" [% IF mandatoryothernames %]class="required"[% END %] id="othernames_label"> Other name: </label> > <input type="text" id="othernames" name="othernames" size="20" value="[% borrower_data.othernames | html UNLESS op == 'duplicate' %]" /> > [% IF ( mandatoryothernames ) %] > <span class="required">Required</span> >@@ -436,33 +436,37 @@ > [% UNLESS ( patron_category.category_type == 'I' ) %] > [% UNLESS nosex %] > <li class="radio"> >- <label for="gender">Gender:</label> >+ <label for="gender" id="gender_label">Gender:</label> > [% UNLESS ( op == 'duplicate' ) %] > [% IF ( female ) %] >- <label for="sex-female"><input type="radio" name="sex" id="sex-female" value="F" checked="checked" /><span class="patronsex-female"> Female</span></label> >+ <label for="sex-female" id="sex-female_label"><input type="radio" name="sex" id="sex-female" value="F" checked="checked" /><span class="patronsex-female"> Female</span></label> > [% ELSE %] >- <label for="sex-female"><input type="radio" name="sex" id="sex-female" value="F" /><span class="patronsex-female"> Female</span></label> >+ <label for="sex-female" id="sex-female_label"><input type="radio" name="sex" id="sex-female" value="F" /><span class="patronsex-female"> Female</span></label> > [% END %] > [% IF ( male ) %] >- <label for="sex-male"><input type="radio" name="sex" id="sex-male" value="M" checked="checked" /><span class="patronsex-male"> Male</span></label> >+ <label for="sex-male" id="sex-male_label"><input type="radio" name="sex" id="sex-male" value="M" checked="checked" /><span class="patronsex-male"> Male</span></label> > [% ELSE %] >- <label for="sex-male"><input type="radio" name="sex" id="sex-male" value="M" /><span class="patronsex-male"> Male</span></label> >+ <label for="sex-male" id="sex-male_label"><input type="radio" name="sex" id="sex-male" value="M" /><span class="patronsex-male"> Male</span></label> > [% END %] > [% IF ( other ) %] >- <label for="sex-other"><input type="radio" name="sex" id="sex-other" value="O" checked="checked" /><span class="patronsex-other"> [% tp('gender', 'Other') | html %]</span></label> >+ <label for="sex-other" id="sex-other_label" >+ ><input type="radio" name="sex" id="sex-other" value="O" checked="checked" /><span class="patronsex-other"> [% tp('gender', 'Other') | html %]</span></label >+ > > [% ELSE %] >- <label for="sex-other"><input type="radio" name="sex" id="sex-other" value="O" /><span class="patronsex-other"> [% tp('gender', 'Other') | html %]</span></label> >+ <label for="sex-other" id="sex-other_label" >+ ><input type="radio" name="sex" id="sex-other" value="O" /><span class="patronsex-other"> [% tp('gender', 'Other') | html %]</span></label >+ > > [% END %] > [% IF ( none ) %] >- <label for="sex-none"><input type="radio" name="sex" id="sex-none" value="" checked="checked" /><span class="patronsex-none"> None specified</span></label> >+ <label for="sex-none" id="sex-none_label"><input type="radio" name="sex" id="sex-none" value="" checked="checked" /><span class="patronsex-none"> None specified</span></label> > [% ELSE %] >- <label for="sex-none"><input type="radio" name="sex" id="sex-none" value="" /><span class="patronsex-none"> None specified</span></label> >+ <label for="sex-none" id="sex-none_label"><input type="radio" name="sex" id="sex-none" value="" /><span class="patronsex-none"> None specified</span></label> > [% END %] > [% ELSE %] >- <label for="sex-female"><span class="patronsex-female">Female </span></label><input type="radio" name="sex" id="sex-female" value="F" /> >- <label for="sex-male"><span class="patronsex-male">Male </span></label><input type="radio" name="sex" id="sex-male" value="M" /> >- <label for="sex-other"><span class="patronsex-other">[% tp('gender', 'Other') | html %] </span></label><input type="radio" name="sex" id="sex-other" value="O" /> >- <label for="sex-none"><span class="patronsex-none">None specified </span></label><input type="radio" name="sex" id="sex-none" value="" checked="checked" /> >+ <label for="sex-female" id="sex-female_label"><span class="patronsex-female">Female </span></label><input type="radio" name="sex" id="sex-female" value="F" /> >+ <label for="sex-male" id="sex-male_label"><span class="patronsex-male">Male </span></label><input type="radio" name="sex" id="sex-male" value="M" /> >+ <label for="sex-other" id="sex-other_label"><span class="patronsex-other">[% tp('gender', 'Other') | html %] </span></label><input type="radio" name="sex" id="sex-other" value="O" /> >+ <label for="sex-none" id="sex-none_label"><span class="patronsex-none">None specified </span></label><input type="radio" name="sex" id="sex-none" value="" checked="checked" /> > [% END # /UNLESS ( op == 'duplicate' ) %] > </li> > [% END # /UNLESS nosex %] >@@ -487,7 +491,7 @@ > <ol> > [% IF patron_category.category_type == 'I' %] > <li class="guarantor-details" data-borrowernumber="[% r.guarantor_id | $raw %]"> >- <span class="label">Organization:</span> >+ <span class="label" id="organization_label">Organization:</span> > [% INCLUDE 'patron-title.inc' patron=r.guarantor hide_patron_infos_if_needed=1 %] > </li> > <li> >@@ -496,18 +500,18 @@ > </li> > [% ELSE %] > <li class="guarantor-details" data-borrowernumber="[% r.guarantor_id | $raw %]"> >- <span class="label">Guarantor:</span> >+ <span class="label" id="guarantor_label">Guarantor:</span> > [% INCLUDE 'patron-title.inc' patron=r.guarantor hide_patron_infos_if_needed=1 %] > <input type="hidden" class="guarantor_id relation-[% r.id | html %]" name="guarantor_id" value="[% r.guarantor_id | html %]" /> > </li> > <li> >- <span class="label">Relationship:</span> >+ <span class="label" id="relationship_label">Relationship:</span> > <span>[% r.relationship | html %]</span> > <input type="hidden" class="guarantor_relationship relation-[% r.id | html %]" name="guarantor_relationship" value="[% r.relationship | html %]" /> > </li> > > <li> >- <label for="delete_guarantor-[% r.id | uri %]">Remove: </label> >+ <label for="delete_guarantor-[% r.id | uri %]" id="delete_guarantor-[% r.id | uri %]_label">Remove: </label> > <input type="checkbox" id="delete_guarantor-[% r.id | uri %]" name="delete_guarantor" value="[% r.id | html %]" onclick="toggle_guarantor_field([% r.id | html %])" /> > </li> > [% END %] >@@ -518,7 +522,7 @@ > <fieldset class="guarantor"> > <ol> > <li class="guarantor-details" data-borrowernumber="0"> >- <span class="label">Guarantor:</span> >+ <span class="label" id="relationship_label">Guarantor:</span> > <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantor.borrowernumber | uri %]" target="blank" > >[% guarantor.firstname | html %] [% guarantor.surname | html %] ([% guarantor.cardnumber | html %])</a > > >@@ -527,7 +531,7 @@ > > [% UNLESS norelationship %] > <li> >- <label for="guarantor_relationship" [% IF mandatoryrelationship %]class="required"[% END %]>Relationship: </label> >+ <label for="guarantor_relationship" [% IF mandatoryrelationship %]class="required"[% END %] id="relationship_label">Relationship: </label> > <select class="new_guarantor_relationship" name="new_guarantor_relationship" [% IF mandatoryrelationship %]required="required"[% END %]> > <option value=""></option> > [% FOREACH pr IN possible_relationships.split('\|') %] >@@ -545,7 +549,7 @@ > [% END %] > > <li> >- <label for="guarantor_cancel"> </label> >+ <label for="guarantor_cancel" id="guarantor_cancel_label"> </label> > <span > ><a href="#" class="guarantor_cancel"><i class="fa fa-trash-can" aria-hidden="true"></i> Remove</a></span > > >@@ -568,7 +572,7 @@ > > [% UNLESS norelationship %] > <li> >- <label for="guarantor_relationship" [% IF mandatoryrelationship %]class="required"[% END %]>Relationship: </label> >+ <label for="guarantor_relationship" [% IF mandatoryrelationship %]class="required"[% END %] id="guarantor_relationship_label">Relationship: </label> > <select class="new_guarantor_relationship" name="new_guarantor_relationship" [% IF mandatoryrelationship %]required="required"[% END %]> > <option value="" selected></option> > [% FOREACH pr IN possible_relationships.split('\|') %] >@@ -586,7 +590,7 @@ > [% END %] > > <li> >- <label for="guarantor_cancel"> </label> >+ <label for="guarantor_cancel" id="guarantor_cancel_label"> </label> > <span > ><a href="#" class="guarantor_cancel"><i class="fa fa-trash-can"></i> Remove</a></span > > >@@ -605,7 +609,7 @@ > > [% IF Koha.Preference('AllowStaffToSetCheckoutsVisibilityForGuarantor') %] > <li> >- <label for="privacy_guarantor_checkouts">Show checkouts to guarantors:</label> >+ <label for="privacy_guarantor_checkouts" id="privacy_guarantor_checkouts_label">Show checkouts to guarantors:</label> > <select name="privacy_guarantor_checkouts" id="privacy_guarantor_checkouts"> > [% IF borrower_data.privacy_guarantor_checkouts %] > <option value="0">No</option> >@@ -620,7 +624,7 @@ > [% END %] > [% IF Koha.Preference('AllowStaffToSetFinesVisibilityForGuarantor') %] > <li> >- <label for="privacy_guarantor_fines">Show charges to guarantors:</label> >+ <label for="privacy_guarantor_fines" id="privacy_guarantor_fines_label">Show charges to guarantors:</label> > <select name="privacy_guarantor_fines" id="privacy_guarantor_fines"> > [% IF borrower_data.privacy_guarantor_fines %] > <option value="0">No</option> >@@ -648,7 +652,7 @@ > <ol> > [% UNLESS nocontactname %] > <li> >- <label for="contactname" [% IF mandatorycontactname %]class="required"[% END %]> Guarantor surname: </label> >+ <label for="contactname" [% IF mandatorycontactname %]class="required"[% END %] id="contactname_label"> Guarantor surname: </label> > <input type="text" id="contactname" name="contactname" value="[% patron.contactname | html %]" /> > [% IF ( mandatorycontactname ) %] > <span class="required">Required</span> >@@ -659,7 +663,7 @@ > > [% UNLESS nocontactfirstname %] > <li> >- <label for="contactfirstname" [% IF mandatorycontactfirstname %]class="required"[% END %]> Guarantor first name: </label> >+ <label for="contactfirstname" [% IF mandatorycontactfirstname %]class="required"[% END %] id="contactfirstname_label"> Guarantor first name: </label> > <input type="text" id="contactfirstname" name="contactfirstname" value="[% patron.contactfirstname | html %]" /> > [% IF ( mandatorycontactfirstname ) %] > <span class="required">Required</span> >@@ -670,7 +674,7 @@ > > [% UNLESS norelationship %] > <li> >- <label for="relationship" [% IF mandatoryrelationship %]class="required"[% END %]>Relationship: </label> >+ <label for="relationship" [% IF mandatoryrelationship %]class="required"[% END %] id="relationship_label">Relationship: </label> > <select class="relationship" name="relationship" id="relationship" [% IF mandatoryrelationship %]required="required"[% END %]> > <option value=""></option> > [% FOREACH pr IN possible_relationships.split('\|') %] >@@ -705,7 +709,7 @@ > <ol> > [% UNLESS nophone %] > <li> >- <label for="phone" [% IF mandatoryphone %]class="required"[% END %]> Primary phone: </label> >+ <label for="phone" [% IF mandatoryphone %]class="required"[% END %] id="phone_label"> Primary phone: </label> > <input type="text" id="phone" name="phone" value="[% patron.phone | html %]" /> > [% IF ( mandatoryphone ) %] > <span class="required">Required</span> >@@ -716,7 +720,7 @@ > > [% UNLESS nophonepro %] > <li> >- <label for="phonepro" [% IF mandatoryphonepro %]class="required"[% END %]> Secondary phone: </label> >+ <label for="phonepro" [% IF mandatoryphonepro %]class="required"[% END %] id="phonepro_label"> Secondary phone: </label> > <input type="text" id="phonepro" name="phonepro" value="[% patron.phonepro | html %]" /> > [% IF ( mandatoryphonepro ) %] > <span class="required">Required</span> >@@ -726,7 +730,7 @@ > > [% UNLESS nomobile %] > <li> >- <label for="mobile" [% IF mandatorymobile %]class="required"[% END %]> Other phone: </label> >+ <label for="mobile" [% IF mandatorymobile %]class="required"[% END %] id="mobile_label"> Other phone: </label> > <input type="text" id="mobile" name="mobile" value="[% patron.mobile | html %]" /> > [% IF ( mandatorymobile ) %] > <span class="required">Required</span> >@@ -736,7 +740,7 @@ > > [% UNLESS noemail %] > <li> >- <label for="email" [% IF mandatoryemail %]class="required"[% END %]> Primary email: </label> >+ <label for="email" [% IF mandatoryemail %]class="required"[% END %] id="email_label"> Primary email: </label> > [% IF ( NoUpdateEmail ) %] > <input type="text" id="email" name="email" size="45" value="[% patron.email | html %]" disabled="disabled" /> > [% ELSE %] >@@ -751,7 +755,7 @@ > > [% UNLESS noemailpro %] > <li> >- <label for="emailpro" [% IF mandatoryemailpro %]class="required"[% END %]> Secondary email: </label> >+ <label for="emailpro" [% IF mandatoryemailpro %]class="required"[% END %] id="emailpro_label"> Secondary email: </label> > [% IF ( NoUpdateEmail ) %] > <input type="text" id="emailpro" name="emailpro" size="45" value="[% patron.emailpro | html %]" disabled="disabled" /> > [% ELSE %] >@@ -765,7 +769,7 @@ > > [% UNLESS nofax %] > <li> >- <label for="fax" [% IF mandatoryfax %]class="required"[% END %]> Fax: </label> >+ <label for="fax" [% IF mandatoryfax %]class="required"[% END %] id="fax_label"> Fax: </label> > <input type="text" id="fax" name="fax" value="[% patron.fax | html %]" /> > [% IF ( mandatoryfax ) %] > <span class="required">Required</span> >@@ -775,7 +779,7 @@ > > [% UNLESS noprimary_contact_method %] > <li> >- <label for="primary_contact_method" [% IF mandatoryprimary_contact_method %]class="required"[% END %]> Main contact method: </label> >+ <label for="primary_contact_method" [% IF mandatoryprimary_contact_method %]class="required"[% END %] id="primary_contact_method_label"> Main contact method: </label> > > <select id="primary_contact_method" name="primary_contact_method"> > <option value=""></option> >@@ -857,7 +861,7 @@ > <ol> > [% UNLESS nocardnumber %] > <li> >- <label for="cardnumber" class="[% mandatorycardnumber ? 'required' : 'validated' | html %]"> Card number: </label> >+ <label for="cardnumber" class="[% mandatorycardnumber ? 'required' : 'validated' | html %]" id="cardnumber_label"> Card number: </label> > > [% IF minlength_cardnumber == maxlength_cardnumber %] > <input >@@ -915,7 +919,7 @@ > > [% UNLESS nobranchcode %] > <li> >- <label for="libraries" class="required">Library:</label> >+ <label for="libraries" class="required" id="libraries_label">Library:</label> > <select name="branchcode" id="libraries"> > [% PROCESS options_for_libraries libraries => Branches.all( selected => userbranch, only_from_group => 1 ) %] > </select> >@@ -924,7 +928,7 @@ > [% END %] > > <li> >- <label for="categorycode_entry" class="required">Category: </label> >+ <label for="categorycode_entry" class="required" id="categorycode_entry_label">Category: </label> > <select id="categorycode_entry" name="categorycode"> > [% FOREACH category_type IN patron_categories.keys.sort %] > [% SET optgroup_label = t("Unknown") %] >@@ -979,7 +983,7 @@ > > [% UNLESS nosort1 %] > <li> >- <label for="sort1" [% IF mandatorysort1 %]class="required"[% END %]> Sort 1: </label> >+ <label for="sort1" [% IF mandatorysort1 %]class="required"[% END %] id="sort1_label"> Sort 1: </label> > [% PROCESS 'av-build-dropbox.inc' name="sort1", category="Bsort1", default=borrower_data.sort1, empty=1, size = 20 %] > [% IF ( mandatorysort1 ) %] > <span class="required">Required</span> >@@ -989,7 +993,7 @@ > > [% UNLESS nosort2 %] > <li> >- <label for="sort2" [% IF mandatorysort2 %]class="required"[% END %]> Sort 2: </label> >+ <label for="sort2" [% IF mandatorysort2 %]class="required"[% END %] id="sort2_label"> Sort 2: </label> > [% PROCESS 'av-build-dropbox.inc' name="sort2", category="Bsort2", default=borrower_data.sort2, empty=1, size = 20 %] > [% IF ( mandatorysort2 ) %] > <span class="required">Required</span> >@@ -999,22 +1003,22 @@ > > [% UNLESS noautorenew_checkouts %] > <li class="radio"> >- <label for="yes-autorenew_checkouts"> Allow auto-renewal of items: </label> >+ <label for="yes-autorenew_checkouts" id="yes-autorenew_checkouts_label"> Allow auto-renewal of items: </label> > [% IF ( borrower_data.autorenew_checkouts || op == 'add_form' ) %] >- <label for="yes-autorenew_checkouts"> >+ <label for="yes-autorenew_checkouts" id="yes-autorenew_checkouts_label"> > Yes > <input type="radio" id="yes-autorenew_checkouts" name="autorenew_checkouts" value="1" checked="checked" /> > </label> >- <label for="no-autorenew_checkouts"> >+ <label for="no-autorenew_checkouts" id="no-autorenew_checkouts_label"> > No > <input type="radio" id="no-autorenew_checkouts" name="autorenew_checkouts" value="0" /> > </label> > [% ELSE %] >- <label for="yes-autorenew_checkouts"> >+ <label for="yes-autorenew_checkouts" id="yes-autorenew_checkouts_label"> > Yes > <input type="radio" id="yes-autorenew_checkouts" name="autorenew_checkouts" value="1" /> > </label> >- <label for="no-autorenew_checkouts"> >+ <label for="no-autorenew_checkouts" id="no-autorenew_checkouts_label"> > No > <input type="radio" id="no-autorenew_checkouts" name="autorenew_checkouts" value="0" checked="checked" /> > </label> >@@ -1024,22 +1028,22 @@ > > [% UNLESS noprotected || !CanUpdateProtectPatron %] > <li class="radio"> >- <label for="protected">Protected:</label> >+ <label for="protected" id="protected_label">Protected:</label> > [% IF ( patron.protected == 1 ) %] >- <label for="yes-protected"> >+ <label for="yes-protected" id="yes-protected_label"> > Yes > <input type="radio" id="yes-protected" name="protected" value="1" checked="checked" /> > </label> >- <label for="no-protected"> >+ <label for="no-protected" id="no-protected_label"> > No > <input type="radio" id="no-protected" name="protected" value="0" /> > </label> > [% ELSE %] >- <label for="yes-protected"> >+ <label for="yes-protected" id="yes-protected_label"> > Yes > <input type="radio" id="yes-protected" name="protected" value="1" /> > </label> >- <label for="no-protected"> >+ <label for="no-protected" id="no-protected_label"> > No > <input type="radio" id="no-protected" name="protected" value="0" checked="checked" /> > </label> >@@ -1049,7 +1053,7 @@ > > [% IF ( Koha.Preference('CheckPrevCheckout') == 'softyes' || Koha.Preference('CheckPrevCheckout') == 'softno' ) %] > <li> >- <label for="checkprevcheckout">Check for previous checkouts: </label> >+ <label for="checkprevcheckout" id="checkprevcheckout_label">Check for previous checkouts: </label> > <select name="checkprevcheckout" id="checkprevcheckout"> > [% IF ( borrower_data.checkprevcheckout == 'yes' ) %] > <option value="yes" selected="selected">Yes if settings allow it</option> >@@ -1070,7 +1074,7 @@ > > [% IF Koha.Preference('TranslateNotices') %] > <li> >- <label for="lang">Preferred language for notices: </label> >+ <label for="lang" id="lang_label">Preferred language for notices: </label> > <select id="lang" name="lang"> > <option value="default">Default</option> > [% FOR language IN languages %] >@@ -1111,7 +1115,7 @@ > <ol> > [% UNLESS nodateenrolled %] > <li> >- <label for="from" [% IF mandatorydateenrolled %]class="required"[% END %]> Registration date: </label> >+ <label for="from" [% IF mandatorydateenrolled %]class="required"[% END %] id="from_label"> Registration date: </label> > <input type="text" id="from" name="dateenrolled" maxlength="10" size="10" value="[% borrower_data.dateenrolled | html %]" class="flatpickr" data-date_to="to" /> > [% IF ( mandatorydateenrolled ) %] > <span class="required">Required</span> >@@ -1124,7 +1128,7 @@ > [% END # /UNLESS nodateenrolled %] > > <li [% IF nodateexpiry %]style="display:none"[% END %]> >- <label for="to" [% IF mandatorydateexpiry %]class="required"[% END %]> Expiry date (leave blank for auto calc): </label> >+ <label for="to" [% IF mandatorydateexpiry %]class="required"[% END %] id="to_label"> Expiry date (leave blank for auto calc): </label> > [% UNLESS ( op == 'add_form' ) %] > <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% borrower_data.dateexpiry | html UNLESS op == 'duplicate' %]" class="flatpickr" /> > [% ELSE %] >@@ -1141,7 +1145,7 @@ > > [% UNLESS noopacnote %] > <li> >- <label for="opacnote" [% IF mandatoryopacnote %]class="required"[% END %]> OPAC note: </label> >+ <label for="opacnote" [% IF mandatoryopacnote %]class="required"[% END %] id="opacnote_label"> OPAC note: </label> > <textarea id="opacnote" name="opacnote" cols="55" rows="5">[% borrower_data.opacnote | html UNLESS op == 'duplicate' %]</textarea> > <div class="hint">This message appears on this patron's user page in the OPAC</div> > [% IF ( mandatoryopacnote ) %] >@@ -1152,7 +1156,7 @@ > > [% UNLESS noborrowernotes %] > <li> >- <label for="borrowernotes" [% IF mandatoryborrowernotes %]class="required"[% END %]> Circulation note: </label> >+ <label for="borrowernotes" [% IF mandatoryborrowernotes %]class="required"[% END %] id="borrowernotes_label"> Circulation note: </label> > <textarea id="borrowernotes" name="borrowernotes" cols="55" rows="5">[% borrower_data.borrowernotes | $raw UNLESS op == 'duplicate' %]</textarea> > <div class="hint">This message displays when checking out to this patron</div> > [% IF ( mandatoryborrowernotes ) %] >@@ -1174,7 +1178,7 @@ > <ol> > [% UNLESS nouserid %] > <li> >- <label for="userid" [% IF mandatoryuserid %]class="required"[% END %]> Username: </label> >+ <label for="userid" [% IF mandatoryuserid %]class="required"[% END %] id="userid_label"> Username: </label> > > [%# Dummy input to avoid Firefox from using userid/password saved for authentication %] > <input type="text" disabled="disabled" style="display:none" /> >@@ -1201,7 +1205,7 @@ > > [% UNLESS nopassword %] > <li> >- <label for="password" [% IF mandatorypassword %]class="required"[% END %]> Password: </label> >+ <label for="password" [% IF mandatorypassword %]class="required"[% END %] id="password_label"> Password: </label> > [% IF ( op == 'add_form' ) %] > [% IF ( NoUpdateLogin ) %] > [% IF ( op == 'duplicate' ) %] >@@ -1252,7 +1256,7 @@ > </li> > > <li> >- <label for="password2" [% IF mandatorypassword %]class="required"[% END %]> Confirm password: </label> >+ <label for="password2" [% IF mandatorypassword %]class="required"[% END %] id="password2_label"> Confirm password: </label> > [% IF ( op == 'add_form' ) %] > [% IF ( NoUpdateLogin ) %] > [% IF ( op == 'duplicate' ) %] >@@ -1297,7 +1301,7 @@ > [% END # /UNLESS nopassword %] > [% UNLESS ( !CanUpdatePasswordExpiration ) %] > <li> >- <label for="password_expiration_date">Password expiration date:</label> >+ <label for="password_expiration_date" id="password_expiration_date_label">Password expiration date:</label> > <input type="text" id="password_expiration_date" name="password_expiration_date" maxlength="10" size="10" value="[% borrower_data.password_expiration_date | html %]" class="flatpickr" /> > </li> > [% END %] >@@ -1318,9 +1322,9 @@ > <ol class="radio"> > [% UNLESS nogonenoaddress %] > <li> >- <label class="radio [% IF mandatorygonenoaddress %]required[% END %]" for="yesgonenoaddress"> Address correction needed: </label> >+ <label class="radio [% IF mandatorygonenoaddress %]required[% END %]" for="yesgonenoaddress" id="yesgonenoaddress_label"> Address correction needed: </label> > [% IF CAN_user_circulate_manage_restrictions %] >- <label for="yesgonenoaddress"> >+ <label for="yesgonenoaddress" id="yesgonenoaddress_label"> > [% IF ( borrower_data.gonenoaddress ) %] > <input type="radio" id="yesgonenoaddress" name="gonenoaddress" value="1" checked="checked" /> > [% ELSE %] >@@ -1328,7 +1332,7 @@ > [% END %] > Yes > </label> >- <label for="nogonenoaddress"> >+ <label for="nogonenoaddress" id="nogonenoaddress_label"> > [% IF ( borrower_data.gonenoaddress ) %] > <input type="radio" id="nogonenoaddress" name="gonenoaddress" value="0" /> > [% ELSE %] >@@ -1348,7 +1352,7 @@ > <li> > <label class="radio [% IF mandatorylost %]required[% END %]" for="yeslost"> Lost card: </label> > [% IF CAN_user_circulate_manage_restrictions %] >- <label for="yeslost"> >+ <label for="yeslost" id="yeslost_label"> > [% IF ( borrower_data.lost ) %] > <input type="radio" id="yeslost" name="lost" value="1" checked="checked" /> > [% ELSE %] >@@ -1356,7 +1360,7 @@ > [% END %] > Yes > </label> >- <label for="nolost"> >+ <label for="nolost" id="nolost_label"> > [% IF ( borrower_data.lost ) %] > <input type="radio" id="nolost" name="lost" value="0" /> > [% ELSE %] >@@ -1439,7 +1443,7 @@ > <ol> > [% IF Koha.Preference('PatronRestrictionTypes') %] > <li> >- <label for="debarred_type">Type:</label> >+ <label for="debarred_type" id="debarred_type_label">Type:</label> > <select name="debarred_type"> > [% FOREACH restriction_type IN restriction_types %] > [% IF !restriction_type.is_system %] >@@ -1454,11 +1458,11 @@ > </li> > [% END %] > <li> >- <label for="debarred_comment">Comment: </label> >+ <label for="debarred_comment" id="debarred_comment_label">Comment: </label> > <input type="text" id="debarred_comment" name="debarred_comment" /> > </li> > <li> >- <label for="debarred_expiration">Expiration: </label> >+ <label for="debarred_expiration" id="debarred_expiration_label">Expiration: </label> > <input name="debarred_expiration" id="debarred_expiration" size="10" value="" class="flatpickr" type="text" /> > <a href="#" id="clear_debarred_expiration">Clear date</a> > </li> >@@ -1483,30 +1487,30 @@ > </legend> > <ol class="radio"> > <li> >- <label class="radio" for="housebound_chooser"> Chooser: </label> >+ <label class="radio" for="housebound_chooser" id="housebound_chooser_label"> Chooser: </label> > [% IF ( housebound_role.housebound_chooser == 1 ) %] >- <label for="yes_housebound_chooser">Yes </label> >+ <label for="yes_housebound_chooser" id="yes_housebound_chooser_label">Yes </label> > <input type="radio" id="yes_housebound_chooser" name="housebound_chooser" value="1" checked="checked" /> >- <label for="no_housebound_chooser">No </label> >+ <label for="no_housebound_chooser" id="no_housebound_chooser_label">No </label> > <input type="radio" id="no_housebound_chooser" name="housebound_chooser" value="0" /> > [% ELSE %] >- <label for="yes_housebound_chooser">Yes </label> >+ <label for="yes_housebound_chooser" id="yes_housebound_chooser_label">Yes </label> > <input type="radio" id="yes_housebound_chooser" name="housebound_chooser" value="1" /> >- <label for="no_housebound_chooser">No </label> >+ <label for="no_housebound_chooser" id="no_housebound_chooser_label">No </label> > <input type="radio" id="no_housebound_chooser" name="housebound_chooser" value="0" checked="checked" /> > [% END %] > </li> > <li> >- <label class="radio" for="housebound_deliverer">Deliverer:</label> >+ <label class="radio" for="housebound_deliverer" id="housebound_deliverer_label">Deliverer:</label> > [% IF ( housebound_role.housebound_deliverer == 1 ) %] >- <label for="yes_housebound_deliverer">Yes </label> >+ <label for="yes_housebound_deliverer" id="yes_housebound_deliverer_label">Yes </label> > <input type="radio" id="yes_housebound_deliverer" name="housebound_deliverer" value="1" checked="checked" /> >- <label for="no_housebound_deliverer">No </label> >+ <label for="no_housebound_deliverer" id="no_housebound_deliverer_label">No </label> > <input type="radio" id="no_housebound_deliverer" name="housebound_deliverer" value="0" /> > [% ELSE %] >- <label for="yes_housebound_deliverer">Yes </label> >+ <label for="yes_housebound_deliverer" id="yes_housebound_deliverer_label">Yes </label> > <input type="radio" id="yes_housebound_deliverer" name="housebound_deliverer" value="1" /> >- <label for="no_housebound_deliverer">No </label> >+ <label for="no_housebound_deliverer" id="no_housebound_deliverer_label">No </label> > <input type="radio" id="no_housebound_deliverer" name="housebound_deliverer" value="0" checked="checked" /> > [% END %] > </li> >@@ -1536,9 +1540,11 @@ > [% FOREACH patron_attribute IN pa_loo.items %] > <li data-category_code="[% patron_attribute.category_code | html %]" data-pa_code="[% patron_attribute.code | replace('[^a-zA-Z0-9_-]', '') %]"> > [% IF patron_attribute.mandatory %] >- <label for="[% patron_attribute.form_id | html %]" class="required" required="required">[% patron_attribute.description | html %]: </label> >+ <label for="[% patron_attribute.form_id | html %]" class="required" required="required" id="[% patron_attribute.form_id | html %]_label" >+ >[% patron_attribute.description | html %]: >+ </label> > [% ELSE %] >- <label for="[% patron_attribute.form_id | html %]">[% patron_attribute.description | html %]: </label> >+ <label for="[% patron_attribute.form_id | html %]" id="[% patron_attribute.form_id | html %]_label">[% patron_attribute.description | html %]: </label> > [% END %] > [% IF ( patron_attribute.use_dropdown ) %] > <select id="[% patron_attribute.form_id | html %]" name="[% patron_attribute.form_id | html %]" [% IF patron_attribute.mandatory %]required="required"[% END %]> >@@ -1620,14 +1626,14 @@ > [% IF ( SMSSendDriver ) %] > [% IF !nosmsalertnumber %] > <p> >- <label for="SMSnumber">SMS number:</label> >+ <label for="SMSnumber" id="SMSnumber_label">SMS number:</label> > <input type="text" id="SMSnumber" name="SMSnumber" value="[% SMSnumber | html %]" /> > <span class="hint sms_number_help">Please enter numbers only. Prefix the number with + or 00 if including the country code.</span> > </p> > [% END %] > [% IF SMSSendDriver == 'Email' && !nosms_provider_id %] > <p> >- <label for="sms_provider_id">SMS provider:</label> >+ <label for="sms_provider_id" id="sms_provider_id_label">SMS provider:</label> > <select id="sms_provider_id" name="sms_provider_id"> > <option value="">Unknown</option> > [% FOREACH s IN sms_providers %] >-- >2.39.5 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 41638
: 191519