View | Details | Raw Unified | Return to bug 27668
Collapse All | Expand All

(-)a/koha-tmpl/opac-tmpl/bootstrap/css/src/opac.scss (-9 / +31 lines)
Lines 624-631 th { Link Here
624
    }
624
    }
625
}
625
}
626
626
627
div {
628
    &.required_label {
629
        display: none;
630
631
        &.required {
632
            color: #C00;
633
            display: block;
634
            font-size: 95%;
635
            margin-left: 10rem;
636
            margin-top: 3px;
637
        }
638
    }
639
}
640
627
.required {
641
.required {
628
    color: #C00;
642
    &.valid {
643
        color: #000;
644
    }
629
}
645
}
630
646
631
647
Lines 686-697 fieldset { Link Here
686
        .label {
702
        .label {
687
            float: left;
703
            float: left;
688
            font-weight: bold;
704
            font-weight: bold;
689
            margin-right: 1em;
705
            margin-right: 1rem;
690
            text-align: right;
706
            text-align: right;
691
            width: 9em;
707
            width: 9rem;
692
        }
708
        }
693
709
694
        label {
710
        label {
711
            &.error {
712
                color: #C00;
713
                float: none;
714
                font-style: italic;
715
                font-weight: normal;
716
                margin-left: 1rem;
717
                text-align: left;
718
                width: auto;
719
            }
695
            &.lradio {
720
            &.lradio {
696
                float: none;
721
                float: none;
697
                margin: inherit;
722
                margin: inherit;
Lines 744-750 fieldset { Link Here
744
769
745
        .hint {
770
        .hint {
746
            display: block;
771
            display: block;
747
            margin-left: 11em;
772
            margin-left: 10rem;
748
        }
773
        }
749
    }
774
    }
750
775
Lines 784-790 div { Link Here
784
                font-weight: bold;
809
                font-weight: bold;
785
                margin-right: 1em;
810
                margin-right: 1em;
786
                text-align: left;
811
                text-align: left;
787
                width: 9em;
812
                width: 9rem;
788
            }
813
            }
789
        }
814
        }
790
815
Lines 2246-2259 nav { Link Here
2246
#memberentry-form {
2271
#memberentry-form {
2247
    input.error {
2272
    input.error {
2248
        border-color: #C00;
2273
        border-color: #C00;
2249
        box-shadow: 0 1px 1px #C00 inset, 0 0 8px #C00;
2250
        color: #F00;
2251
        outline: 0 none;
2274
        outline: 0 none;
2252
2275
2253
        &:focus {
2276
        &:focus {
2254
            border-color: #C00;
2277
            border-color: #C00;
2255
            box-shadow: 0 1px 1px #C00 inset, 0 0 8px #C00;
2278
            box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(204, 0, 0, .6);
2256
            color: #F00;
2257
            outline: 0 none;
2279
            outline: 0 none;
2258
        }
2280
        }
2259
2281
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/includes/validator-strings.inc (+24 lines)
Line 0 Link Here
1
<!-- validator-strings.inc -->
2
<script>
3
    $(document).ready(function(){
4
        jQuery.extend(jQuery.validator.messages, {
5
            required: _("This field is required."),
6
            remote: _("Please fix this field."),
7
            email: _("Please enter a valid email address."),
8
            url: _("Please enter a valid URL."),
9
            date: _("Please enter a valid date."),
10
            dateISO: _("Please enter a valid date (ISO)."),
11
            number: _("Please enter a valid number."),
12
            digits: _("Please enter only digits."),
13
            equalTo: _("Please enter the same value again."),
14
            maxlength: $.validator.format(_("Please enter no more than {0} characters.")),
15
            minlength: $.validator.format(_("Please enter at least {0} characters.")),
16
            rangelength: $.validator.format(_("Please enter a value between {0} and {1} characters long.")),
17
            range: $.validator.format(_("Please enter a value between {0} and {1}.")),
18
            max: $.validator.format(_("Please enter a value less than or equal to {0}.")),
19
            min: $.validator.format(_("Please enter a value greater than or equal to {0}.")),
20
            phone: $.validator.format(_("Please enter a valid phone number."))
21
        });
22
    });
23
</script>
24
<!-- / validator-strings.inc -->
(-)a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-memberentry.tt (-326 / +156 lines)
Lines 10-23 Link Here
10
[% BLOCK streetnumber %]
10
[% BLOCK streetnumber %]
11
    [% UNLESS hidden.defined('streetnumber') %]
11
    [% UNLESS hidden.defined('streetnumber') %]
12
        <li>
12
        <li>
13
            [% IF mandatory.defined('streetnumber') %]
13
            <label for="borrower_streetnumber" class="[% required.streetnumber | html %]">Street number:</label>
14
                <label for="borrower_streetnumber" class="required">Street number:</label>
15
            [% ELSE %]
16
                <label for="borrower_streetnumber">Street number:</label>
17
            [% END %]
18
14
19
            <input type="text" id="borrower_streetnumber" name="borrower_streetnumber" value="[% borrower.streetnumber | html %]" />
15
            <input type="text" id="borrower_streetnumber" name="borrower_streetnumber" value="[% borrower.streetnumber | html %]" class="[% required.streetnumber | html %]" />
20
            [% IF mandatory.defined('streetnumber') %]<span class="required">Required</span>[% END %]
16
            <div class="required_label [% required.streetnumber | html %]">Required</div>
21
        </li>
17
        </li>
22
    [% END %]
18
    [% END %]
23
[% END %]
19
[% END %]
Lines 191-196 Link Here
191
187
192
                <form method="post" action="/cgi-bin/koha/opac-memberentry.pl" id="memberentry-form" autocomplete="off">
188
                <form method="post" action="/cgi-bin/koha/opac-memberentry.pl" id="memberentry-form" autocomplete="off">
193
189
190
                [% FOREACH field = ['streetnumber' 'cardnumber' 'branchcode' 'categorycode' 'title' 'surname' 'firstname' 'dateofbirth' 'initials' 'othernames' 'address' 'address2' 'city' 'state' 'zipcode' 'country' 'phone' 'phonepro' 'mobile' 'email' 'emailpro' 'fax' 'B_address' 'B_address2' 'B_city' 'B_state' 'B_zipcode' 'B_country' 'B_phone' 'B_email' 'contactnote' 'altcontactsurname' 'altcontactfirstname' 'altcontactaddress1' 'altcontactaddress2' 'altcontactaddress3' 'altcontactstate' 'altcontactzipcode' 'altcontactcountry' 'altcontactphone' 'password' ] %]
191
                    [% IF mandatory.defined( field ) %]
192
                        [% SET required.$field = 'required' %]
193
                    [% END %]
194
                [% END %]
195
194
                    [%# Following on one line for translatability %]
196
                    [%# Following on one line for translatability %]
195
                    [% UNLESS ( hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) ) && hidden.defined('dateexpiry') && hidden.defined('branchcode') && hidden.defined('categorycode') %]
197
                    [% UNLESS ( hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) ) && hidden.defined('dateexpiry') && hidden.defined('branchcode') && hidden.defined('categorycode') %]
196
                        <div class="row">
198
                        <div class="row">
Lines 201-229 Link Here
201
                                        <ol>
203
                                        <ol>
202
                                            [% UNLESS hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) %]
204
                                            [% UNLESS hidden.defined('cardnumber') || ( !borrower && Koha.Preference('autoMemberNum') ) %]
203
                                            <li>
205
                                            <li>
204
                                                [% IF mandatory.defined('cardnumber') %]
206
205
                                                    <label for="borrower_cardnumber" class="required">Library card number:</label>
207
                                                <label for="borrower_cardnumber" class="[% required.cardnumber | html %]">Library card number:</label>
206
                                                [% ELSE %]
208
207
                                                    <label for="borrower_cardnumber">Library card number:</label>
208
                                                [% END %]
209
                                                [% IF borrower && !(cardnumber_wrong_length || cardnumber_already_exists) %]
209
                                                [% IF borrower && !(cardnumber_wrong_length || cardnumber_already_exists) %]
210
                                                    [% borrower.cardnumber | html %]
210
                                                    [% borrower.cardnumber | html %]
211
                                                [% ELSE %]
211
                                                [% ELSE %]
212
                                                    [% IF minlength_cardnumber == maxlength_cardnumber %]
212
                                                    [% IF minlength_cardnumber == maxlength_cardnumber %]
213
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" minlength="[% minlength_cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" />
213
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" minlength="[% minlength_cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" class="[% required.cardnumber | html %]" />
214
                                                        [% IF ( mandatory.defined('cardnumber') ) %]<span class="required">Required</span>[% END %]
214
                                                        <div class="required_label [% required.cardnumber | html %]">Required</div>
215
                                                        <div class="hint">Card number must be exactly [% minlength_cardnumber | html %] characters.</div>
215
                                                        <div class="hint">Card number must be exactly [% minlength_cardnumber | html %] characters.</div>
216
                                                    [% ELSIF minlength_cardnumber && maxlength_cardnumber %]
216
                                                    [% ELSIF minlength_cardnumber && maxlength_cardnumber %]
217
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" minlength="[% minlength_cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" />
217
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" minlength="[% minlength_cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" class="[% required.cardnumber | html %]" />
218
                                                        [% IF ( mandatory.defined('cardnumber') ) %]<span class="required">Required</span>[% END %]
218
                                                        <div class="required_label [% required.cardnumber | html %]">Required</div>
219
                                                        <div class="hint">Card number must be between [% minlength_cardnumber | html %] and [% maxlength_cardnumber | html %] characters.</div>
219
                                                        <div class="hint">Card number must be between [% minlength_cardnumber | html %] and [% maxlength_cardnumber | html %] characters.</div>
220
                                                    [% ELSIF maxlength_cardnumber %]
220
                                                    [% ELSIF maxlength_cardnumber %]
221
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" />
221
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" maxlength="[% maxlength_cardnumber | html %]" class="[% required.cardnumber | html %]" />
222
                                                        [% IF ( mandatory.defined('cardnumber') ) %]<span class="required">Required</span>[% END %]
222
                                                        <div class="required_label [% required.cardnumber | html %]">Required</div>
223
                                                        <div class="hint">Card number can be up to [% maxlength_cardnumber | html %] characters.</div>
223
                                                        <div class="hint">Card number can be up to [% maxlength_cardnumber | html %] characters.</div>
224
                                                    [% ELSE %]
224
                                                    [% ELSE %]
225
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" />
225
                                                        <input type="text" id="borrower_cardnumber" name="borrower_cardnumber" size="20" value="[% borrower.cardnumber | html %]" class="[% required.cardnumber | html %]" />
226
                                                        [% IF ( mandatory.defined('cardnumber') ) %]<span class="required">Required</span>[% END %]
226
                                                        <div class="required_label [% required.cardnumber | html %]">Required</div>
227
                                                        <div class="hint">There is no minimum or maximum character length.</div>
227
                                                        <div class="hint">There is no minimum or maximum character length.</div>
228
                                                    [% END %]
228
                                                    [% END %]
229
                                                [% END %]
229
                                                [% END %]
Lines 240-252 Link Here
240
                                            [% UNLESS hidden.defined('branchcode') %]
240
                                            [% UNLESS hidden.defined('branchcode') %]
241
                                                <li>
241
                                                <li>
242
                                                    [% IF ( libraries.size > 1 ) %]
242
                                                    [% IF ( libraries.size > 1 ) %]
243
                                                        [% IF mandatory.defined('branchcode') %]
243
                                                        <label for="borrower_branchcode" class="[% required.branchcode | html %]">Home library:</label>
244
                                                            <label for="borrower_branchcode" class="required">Home library:</label>
245
                                                        [% ELSE %]
246
                                                            <label for="borrower_branchcode">Home library:</label>
247
                                                        [% END %]
248
244
249
                                                        <select id="borrower_branchcode" name="borrower_branchcode">
245
                                                        <select id="borrower_branchcode" name="borrower_branchcode" class="[% required.branchcode | html %]">
250
                                                            [% FOREACH l IN libraries %]
246
                                                            [% FOREACH l IN libraries %]
251
                                                                [% IF l.branchcode == borrower.branchcode %]
247
                                                                [% IF l.branchcode == borrower.branchcode %]
252
                                                                    <option value="[% l.branchcode | html %]" selected="selected">[% l.branchname | html %]</option>
248
                                                                    <option value="[% l.branchcode | html %]" selected="selected">[% l.branchname | html %]</option>
Lines 255-260 Link Here
255
                                                                [% END %]
251
                                                                [% END %]
256
                                                            [% END %]
252
                                                            [% END %]
257
                                                        </select>
253
                                                        </select>
254
                                                        <div class="required_label [% required.branchcode | html %]">Required</div>
258
                                                    [% ELSE %]
255
                                                    [% ELSE %]
259
                                                        <span class="label">Home library:</span>
256
                                                        <span class="label">Home library:</span>
260
                                                        [% FOREACH l IN libraries %]
257
                                                        [% FOREACH l IN libraries %]
Lines 267-280 Link Here
267
264
268
                                            [% UNLESS hidden.defined('categorycode') %]
265
                                            [% UNLESS hidden.defined('categorycode') %]
269
                                                <li>
266
                                                <li>
270
                                                    <label for="borrower_categorycode">
267
                                                    <label for="borrower_categorycode" class="[% required.categorycode | html %]">
271
                                                    Category:</label>
268
                                                    Category:</label>
272
269
273
                                                    [% IF borrower %]
270
                                                    [% IF borrower %]
274
                                                        [% Categories.GetName( borrower.categorycode ) | html %]
271
                                                        [% Categories.GetName( borrower.categorycode ) | html %]
275
                                                        <input type="hidden" name="borrower_categorycode" value="[% borrower.categorycode | html %]" />
272
                                                        <input type="hidden" name="borrower_categorycode" value="[% borrower.categorycode | html %]" />
276
                                                    [% ELSE %]
273
                                                    [% ELSE %]
277
                                                        <select id="borrower_categorycode" name="borrower_categorycode">
274
                                                        <select id="borrower_categorycode" name="borrower_categorycode" class="[% required.categorycode | html %]">
278
                                                            [% FOREACH c IN Categories.all() %]
275
                                                            [% FOREACH c IN Categories.all() %]
279
                                                                [% IF c.categorycode == Koha.Preference('PatronSelfRegistrationDefaultCategory') %]
276
                                                                [% IF c.categorycode == Koha.Preference('PatronSelfRegistrationDefaultCategory') %]
280
                                                                    <option value="[% c.categorycode | html %]" data-pwd-length="[% c.effective_min_password_length | html %]" data-pwd-strong="[% c.effective_require_strong_password | html %]" selected="selected">[% c.description | html %]</option>
277
                                                                    <option value="[% c.categorycode | html %]" data-pwd-length="[% c.effective_min_password_length | html %]" data-pwd-strong="[% c.effective_require_strong_password | html %]" selected="selected">[% c.description | html %]</option>
Lines 283-288 Link Here
283
                                                                [% END %]
280
                                                                [% END %]
284
                                                            [% END %]
281
                                                            [% END %]
285
                                                        </select>
282
                                                        </select>
283
                                                        <div class="required_label [% required.categorycode | html %]">Required</div>
286
                                                    [% END %]
284
                                                    [% END %]
287
                                                </li>
285
                                                </li>
288
                                            [% END %]
286
                                            [% END %]
Lines 302-314 Link Here
302
                                    <ol>
300
                                    <ol>
303
                                        [% UNLESS hidden.defined('title') || !Koha.Preference('BorrowersTitles') %]
301
                                        [% UNLESS hidden.defined('title') || !Koha.Preference('BorrowersTitles') %]
304
                                            <li>
302
                                            <li>
305
                                                [% IF mandatory.defined('title') %]
303
                                                <label for="borrower_title" class="[% required.title | html %]">Salutation:</label>
306
                                                    <label for="borrower_title" class="required">Salutation:</label>
307
                                                [% ELSE %]
308
                                                    <label for="borrower_title">Salutation:</label>
309
                                                [% END %]
310
304
311
                                                <select id="borrower_title" name="borrower_title">
305
                                                <select id="borrower_title" name="borrower_title" class="[% required.title | html %]">
312
                                                    <option value=""></option>
306
                                                    <option value=""></option>
313
                                                    [% FOREACH mt IN Koha.Preference('BorrowersTitles').split('\|') %]
307
                                                    [% FOREACH mt IN Koha.Preference('BorrowersTitles').split('\|') %]
314
                                                        [% IF mt == borrower.title %]
308
                                                        [% IF mt == borrower.title %]
Lines 318-361 Link Here
318
                                                        [% END %]
312
                                                        [% END %]
319
                                                    [% END %]
313
                                                    [% END %]
320
                                                </select>
314
                                                </select>
315
                                                <div class="required_label [% required.title | html %]">Required</div>
321
                                            </li>
316
                                            </li>
322
                                        [% END %]
317
                                        [% END %]
323
318
324
                                        [% UNLESS hidden.defined('surname') %]
319
                                        [% UNLESS hidden.defined('surname') %]
325
                                            <li>
320
                                            <li>
326
                                                [% IF mandatory.defined('surname') %]
321
                                                <label for="borrower_surname" class="[% required.surname | html %]">Surname:</label>
327
                                                    <label for="borrower_surname" class="required">Surname:</label>
328
                                                [% ELSE %]
329
                                                    <label for="borrower_surname">Surname:</label>
330
                                                [% END %]
331
322
332
                                                <input type="text" id="borrower_surname" name="borrower_surname" value="[% borrower.surname | html %]" />
323
                                                <input type="text" id="borrower_surname" name="borrower_surname" value="[% borrower.surname | html %]" class="[% required.surname | html %]" />
333
                                                [% IF mandatory.defined('surname') %]<span class="required">Required</span>[% END %]
324
                                                <div class="required_label [% required.surname | html %]">Required</div>
334
                                            </li>
325
                                            </li>
335
                                        [% END %]
326
                                        [% END %]
336
327
337
                                        [% UNLESS hidden.defined('firstname') %]
328
                                        [% UNLESS hidden.defined('firstname') %]
338
                                            <li>
329
                                            <li>
339
                                                [% IF mandatory.defined('firstname') %]
330
                                                <label for="borrower_firstname" class="[% required.firstname | html %]">First name:</label>
340
                                                    <label for="borrower_firstname" class="required">First name:</label>
341
                                                [% ELSE %]
342
                                                    <label for="borrower_firstname">First name:</label>
343
                                                [% END %]
344
331
345
                                                <input type="text" id="borrower_firstname" name="borrower_firstname" value="[% borrower.firstname | html %]" />
332
                                                <input type="text" id="borrower_firstname" name="borrower_firstname" value="[% borrower.firstname | html %]" class="[% required.firstname | html %]" />
346
                                                [% IF mandatory.defined('firstname') %]<span class="required">Required</span>[% END %]
333
                                                <div class="required_label [% required.firstname | html %]">Required</div>
347
                                            </li>
334
                                            </li>
348
                                        [% END %]
335
                                        [% END %]
349
336
350
                                        [% UNLESS hidden.defined('dateofbirth') %]
337
                                        [% UNLESS hidden.defined('dateofbirth') %]
351
                                            <li>
338
                                            <li>
352
                                                [% IF mandatory.defined('dateofbirth') %]
339
                                                <label for="borrower_dateofbirth" class="[% required.dateofbirth | html %]">Date of birth:</label>
353
                                                    <label for="borrower_dateofbirth" class="required">Date of birth:</label>
354
                                                [% ELSE %]
355
                                                    <label for="borrower_dateofbirth">Date of birth:</label>
356
                                                [% END %]
357
340
358
                                                <input type="text" id="borrower_dateofbirth" name="borrower_dateofbirth" value="[% borrower.dateofbirth | $KohaDates %]" size="10" />
341
                                                <input type="text" id="borrower_dateofbirth" name="borrower_dateofbirth" value="[% borrower.dateofbirth | $KohaDates %]" size="10" class="[% required.dateofbirth | html %]" />
359
342
360
                                                [% UNLESS action == 'edit' && !OPACPatronDetails %]
343
                                                [% UNLESS action == 'edit' && !OPACPatronDetails %]
361
                                                    [% UNLESS ( mandatory.defined('dateofbirth') ) %]
344
                                                    [% UNLESS ( mandatory.defined('dateofbirth') ) %]
Lines 363-395 Link Here
363
                                                    [% END %]
346
                                                    [% END %]
364
                                                [% END %]
347
                                                [% END %]
365
348
366
                                                [% IF mandatory.defined('dateofbirth') %]<span class="required">Required</span>[% END %]
349
                                                <div class="required_label [% required.dateofbirth | html %]">Required</div>
367
                                            </li>
350
                                            </li>
368
                                        [% END %]
351
                                        [% END %]
369
352
370
                                        [% UNLESS hidden.defined('initials') %]
353
                                        [% UNLESS hidden.defined('initials') %]
371
                                            <li>
354
                                            <li>
372
                                                [% IF mandatory.defined('initials') %]
355
                                                <label for="borrower_initials" class="[% required.initials | html %]">Initials:</label>
373
                                                    <label for="borrower_initials" class="required">Initials:</label>
374
                                                [% ELSE %]
375
                                                    <label for="borrower_initials">Initials:</label>
376
                                                [% END %]
377
356
378
                                                <input type="text" id="borrower_initials" name="borrower_initials" value="[% borrower.initials | html %]" />
357
                                                <input type="text" id="borrower_initials" name="borrower_initials" value="[% borrower.initials | html %]" class="[% required.initials | html %]" />
379
                                                [% IF mandatory.defined('initials') %]<span class="required">Required</span>[% END %]
358
                                                <div class="required_label [% required.initials | html %]">Required</div>
380
                                            </li>
359
                                            </li>
381
                                        [% END %]
360
                                        [% END %]
382
361
383
                                        [% UNLESS hidden.defined('othernames') %]
362
                                        [% UNLESS hidden.defined('othernames') %]
384
                                            <li>
363
                                            <li>
385
                                                [% IF mandatory.defined('othernames') %]
364
                                                <label for="borrower_othernames" class="[% required.othernames | html %]">Other names:</label>
386
                                                    <label for="borrower_othernames" class="required">Other names:</label>
387
                                                [% ELSE %]
388
                                                    <label for="borrower_othernames">Other names:</label>
389
                                                [% END %]
390
365
391
                                                <input type="text" id="borrower_othernames" name="borrower_othernames" value="[% borrower.othernames | html %]" />
366
                                                <input type="text" id="borrower_othernames" name="borrower_othernames" value="[% borrower.othernames | html %]" class="[% required.othernames | html %]" />
392
                                                [% IF mandatory.defined('othernames') %]<span class="required">Required</span>[% END %]
367
                                                <div class="required_label [% required.initials | html %]">Required</div>
393
                                            </li>
368
                                            </li>
394
                                        [% END %]
369
                                        [% END %]
395
370
Lines 449-462 Link Here
449
424
450
                                        [% UNLESS hidden.defined('address') %]
425
                                        [% UNLESS hidden.defined('address') %]
451
                                            <li>
426
                                            <li>
452
                                                [% IF mandatory.defined('address') %]
427
                                                <label for="borrower_address" class="[% required.address | html %]">Address:</label>
453
                                                    <label for="borrower_address" class="required">Address:</label>
454
                                                [% ELSE %]
455
                                                    <label for="borrower_address">Address:</label>
456
                                                [% END %]
457
428
458
                                                <input type="text" id="borrower_address" name="borrower_address" value="[% borrower.address | html %]" />
429
                                                <input type="text" id="borrower_address" name="borrower_address" value="[% borrower.address | html %]" class="[% required.address | html %]" />
459
                                                [% IF mandatory.defined('address') %]<span class="required">Required</span>[% END %]
430
                                                <div class="required_label [% required.address | html %]">Required</div>
460
                                            </li>
431
                                            </li>
461
                                        [% END %]
432
                                        [% END %]
462
433
Lines 464-529 Link Here
464
435
465
                                        [% UNLESS hidden.defined('address2') %]
436
                                        [% UNLESS hidden.defined('address2') %]
466
                                            <li>
437
                                            <li>
467
                                                [% IF mandatory.defined('address2') %]
438
                                                <label for="borrower_address2" class="[% required.address2 | html %]">Address 2:</label>
468
                                                    <label for="borrower_address2" class="required">Address 2:</label>
469
                                                [% ELSE %]
470
                                                    <label for="borrower_address2">Address 2:</label>
471
                                                [% END %]
472
439
473
                                                <input type="text" id="borrower_address2" name="borrower_address2" value="[% borrower.address2 | html %]" />
440
                                                <input type="text" id="borrower_address2" name="borrower_address2" value="[% borrower.address2 | html %]" class="[% required.address2 | html %]" />
474
                                                [% IF mandatory.defined('address2') %]<span class="required">Required</span>[% END %]
441
                                                <div class="required_label [% required.address2 | html %]">Required</div>
475
                                            </li>
442
                                            </li>
476
                                        [% END %]
443
                                        [% END %]
477
444
478
                                        [% UNLESS hidden.defined('city') %]
445
                                        [% UNLESS hidden.defined('city') %]
479
                                            <li>
446
                                            <li>
480
                                                [% IF mandatory.defined('city') %]
447
                                                <label for="borrower_city" class="[% required.city | html %]">City:</label>
481
                                                    <label for="borrower_city" class="required">City:</label>
482
                                                [% ELSE %]
483
                                                    <label for="borrower_city">City:</label>
484
                                                [% END %]
485
448
486
                                                <input type="text" id="borrower_city" name="borrower_city" value="[% borrower.city | html %]" />
449
                                                <input type="text" id="borrower_city" name="borrower_city" value="[% borrower.city | html %]" class="[% required.city | html %]" />
487
                                                [% IF mandatory.defined('city') %]<span class="required">Required</span>[% END %]
450
                                                <div class="required_label [% required.city | html %]">Required</div>
488
                                            </li>
451
                                            </li>
489
                                        [% END %]
452
                                        [% END %]
490
453
491
                                        [% UNLESS hidden.defined('state') %]
454
                                        [% UNLESS hidden.defined('state') %]
492
                                            <li>
455
                                            <li>
493
                                                [% IF mandatory.defined('state') %]
456
                                                <label for="borrower_state" class="[% required.state | html %]">State:</label>
494
                                                    <label for="borrower_state" class="required">State:</label>
495
                                                [% ELSE %]
496
                                                    <label for="borrower_state">State:</label>
497
                                                [% END %]
498
457
499
                                                <input type="text" id="borrower_state" name="borrower_state" value="[% borrower.state | html %]" />
458
                                                <input type="text" id="borrower_state" name="borrower_state" value="[% borrower.state | html %]" class="[% required.state | html %]" />
500
                                                [% IF mandatory.defined('state') %]<span class="required">Required</span>[% END %]
459
                                                <div class="required_label [% required.state | html %]">Required</div>
501
                                            </li>
460
                                            </li>
502
                                        [% END %]
461
                                        [% END %]
503
462
504
                                        [% UNLESS hidden.defined('zipcode') %]
463
                                        [% UNLESS hidden.defined('zipcode') %]
505
                                            <li>
464
                                            <li>
506
                                                [% IF mandatory.defined('zipcode') %]
465
                                                <label for="borrower_zipcode" class="[% required.zipcode | html %]">ZIP/Postal code:</label>
507
                                                    <label for="borrower_zipcode" class="required">ZIP/Postal code:</label>
508
                                                [% ELSE %]
509
                                                    <label for="borrower_zipcode">ZIP/Postal code:</label>
510
                                                [% END %]
511
466
512
                                                <input type="text" id="borrower_zipcode" name="borrower_zipcode" value="[% borrower.zipcode | html %]" />
467
                                                <input type="text" id="borrower_zipcode" name="borrower_zipcode" value="[% borrower.zipcode | html %]" class="[% required.zipcode | html %]" />
513
                                                [% IF mandatory.defined('zipcode') %]<span class="required">Required</span>[% END %]
468
                                                <div class="required_label [% required.zipcode | html %]">Required</div>
514
                                            </li>
469
                                            </li>
515
                                        [% END %]
470
                                        [% END %]
516
471
517
                                        [% UNLESS hidden.defined('country') %]
472
                                        [% UNLESS hidden.defined('country') %]
518
                                            <li>
473
                                            <li>
519
                                                [% IF mandatory.defined('country') %]
474
                                                <label for="borrower_country" class="[% required.country | html %]">Country:</label>
520
                                                    <label for="borrower_country" class="required">Country:</label>
521
                                                [% ELSE %]
522
                                                    <label for="borrower_country">Country:</label>
523
                                                [% END %]
524
475
525
                                                <input type="text" id="borrower_country" name="borrower_country" value="[% borrower.country | html %]" />
476
                                                <input type="text" id="borrower_country" name="borrower_country" value="[% borrower.country | html %]" class="[% required.country | html %]" />
526
                                                [% IF mandatory.defined('country') %]<span class="required">Required</span>[% END %]
477
                                                <div class="required_label [% required.country | html %]">Required</div>
527
                                            </li>
478
                                            </li>
528
                                        [% END %]
479
                                        [% END %]
529
480
Lines 543-634 Link Here
543
                                    <ol>
494
                                    <ol>
544
                                        [% UNLESS hidden.defined('phone') %]
495
                                        [% UNLESS hidden.defined('phone') %]
545
                                            <li>
496
                                            <li>
546
                                                [% IF mandatory.defined('phone') %]
497
                                                <label for="borrower_phone" class="[% required.phone | html %]">Primary phone:</label>
547
                                                    <label for="borrower_phone" class="required">Primary phone:</label>
548
                                                [% ELSE %]
549
                                                    <label for="borrower_phone">Primary phone:</label>
550
                                                [% END %]
551
498
552
                                                <input type="text" id="borrower_phone" name="borrower_phone" value="[% borrower.phone | html %]" />
499
                                                <input type="text" id="borrower_phone" name="borrower_phone" value="[% borrower.phone | html %]" class="[% required.phone | html %]" />
553
                                                [% IF mandatory.defined('phone') %]<span class="required">Required</span>[% END %]
500
                                                <div class="required_label [% required.phone | html %]">Required</div>
554
                                            </li>
501
                                            </li>
555
                                        [% END %]
502
                                        [% END %]
556
503
557
                                        [% UNLESS hidden.defined('phonepro') %]
504
                                        [% UNLESS hidden.defined('phonepro') %]
558
                                            <li>
505
                                            <li>
559
                                                [% IF mandatory.defined('phonepro') %]
506
                                                <label for="borrower_phonepro" class="[% required.phonepro | html %]">Secondary phone:</label>
560
                                                    <label for="borrower_phonepro" class="required">Secondary phone:</label>
561
                                                [% ELSE %]
562
                                                    <label for="borrower_phonepro">Secondary phone:</label>
563
                                                [% END %]
564
507
565
                                                <input type="text" id="borrower_phonepro" name="borrower_phonepro" value="[% borrower.phonepro | html %]" />
508
                                                <input type="text" id="borrower_phonepro" name="borrower_phonepro" value="[% borrower.phonepro | html %]" class="[% required.phonepro | html %]" />
566
                                                [% IF mandatory.defined('phonepro') %]<span class="required">Required</span>[% END %]
509
                                                <div class="required_label [% required.phonepro | html %]">Required</div>
567
                                            </li>
510
                                            </li>
568
                                        [% END %]
511
                                        [% END %]
569
512
570
                                        [% UNLESS hidden.defined('mobile') %]
513
                                        [% UNLESS hidden.defined('mobile') %]
571
                                            <li>
514
                                            <li>
572
                                                [% IF mandatory.defined('mobile') %]
515
                                                <label for="borrower_mobile" class="[% required.mobile | html %]">Other phone:</label>
573
                                                    <label for="borrower_mobile" class="required">Other phone:</label>
574
                                                [% ELSE %]
575
                                                    <label for="borrower_mobile">Other phone:</label>
576
                                                [% END %]
577
516
578
                                                <input type="text" id="borrower_mobile" name="borrower_mobile" value="[% borrower.mobile | html %]" />
517
                                                <input type="text" id="borrower_mobile" name="borrower_mobile" value="[% borrower.mobile | html %]" class="[% required.mobile | html %]" />
579
                                                [% IF mandatory.defined('mobile') %]<span class="required">Required</span>[% END %]
518
                                                <div class="required_label [% required.mobile | html %]">Required</div>
580
                                            </li>
519
                                            </li>
581
                                        [% END %]
520
                                        [% END %]
582
521
583
                                        [% UNLESS hidden.defined('email') %]
522
                                        [% UNLESS hidden.defined('email') %]
584
                                            <li>
523
                                            <li>
585
                                                [% IF mandatory.defined('email') %]
524
                                                <label for="borrower_email" class="[% required.email | html %]">Primary email:</label>
586
                                                    <label for="borrower_email" class="required">Primary email:</label>
587
                                                [% ELSE %]
588
                                                    <label for="borrower_email">Primary email:</label>
589
                                                [% END %]
590
525
591
                                                <input type="text" id="borrower_email" name="borrower_email" value="[% borrower.email | html %]" />
526
                                                <input type="text" id="borrower_email" name="borrower_email" value="[% borrower.email | html %]" class="[% required.email | html %]" />
592
                                                [% IF mandatory.defined('email') %]<span class="required">Required</span>[% END %]
527
                                                <div class="required_label [% required.email | html %]">Required</div>
593
                                            </li>
528
                                            </li>
594
529
595
                                            [% IF action != 'edit' and Koha.Preference('PatronSelfRegistrationConfirmEmail') %]
530
                                            [% IF action != 'edit' and Koha.Preference('PatronSelfRegistrationConfirmEmail') %]
596
                                                <li>
531
                                                <li>
597
                                                    [% IF mandatory.defined('email') %]
532
                                                    <label for="borrower_repeat_email" class="[% required.email | html %]">Confirm primary email:</label>
598
                                                        <label for="borrower_repeat_email" class="required">Confirm primary email:</label>
599
                                                    [% ELSE %]
600
                                                        <label for="borrower_repeat_email">Confirm primary email:</label>
601
                                                    [% END %]
602
533
603
                                                    <input type="text" id="borrower_repeat_email" name="borrower_repeat_email" autocomplete=off>
534
                                                    <input type="text" id="borrower_repeat_email" name="borrower_repeat_email" autocomplete="off" class="[% required.email | html %]">
604
                                                    [% IF mandatory.defined('email') %]<span class="required">Required</span>[% END %]
535
                                                    <div class="required_label [% required.email | html %]">Required</div>
605
                                                </li>
536
                                                </li>
606
                                            [% END %]
537
                                            [% END %]
607
                                        [% END %]
538
                                        [% END %]
608
539
609
                                        [% UNLESS hidden.defined('emailpro') %]
540
                                        [% UNLESS hidden.defined('emailpro') %]
610
                                            <li>
541
                                            <li>
611
                                                [% IF mandatory.defined('emailpro') %]
542
                                                <label for="borrower_emailpro" class="[% required.emailpro | html %]">Secondary email:</label>
612
                                                    <label for="borrower_emailpro" class="required">Secondary email:</label>
613
                                                [% ELSE %]
614
                                                    <label for="borrower_emailpro">Secondary email:</label>
615
                                                [% END %]
616
543
617
                                                <input type="text" id="borrower_emailpro" name="borrower_emailpro" value="[% borrower.emailpro | html %]" />
544
                                                <input type="text" id="borrower_emailpro" name="borrower_emailpro" value="[% borrower.emailpro | html %]" class="[% required.emailpro | html %]" />
618
                                                [% IF mandatory.defined('emailpro') %]<span class="required">Required</span>[% END %]
545
                                                <div class="required_label [% required.emailpro | html %]">Required</div>
619
                                            </li>
546
                                            </li>
620
                                        [% END %]
547
                                        [% END %]
621
548
622
                                        [% UNLESS hidden.defined('fax') %]
549
                                        [% UNLESS hidden.defined('fax') %]
623
                                            <li>
550
                                            <li>
624
                                                [% IF mandatory.defined('fax') %]
551
                                                <label for="borrower_fax" class="[% required.fax | html %]">Fax:</label>
625
                                                    <label for="borrower_fax" class="required">Fax:</label>
626
                                                [% ELSE %]
627
                                                    <label for="borrower_fax">Fax:</label>
628
                                                [% END %]
629
552
630
                                                <input type="text" id="borrower_fax" name="borrower_fax" value="[% borrower.fax | html %]" />
553
                                                <input type="text" id="borrower_fax" name="borrower_fax" value="[% borrower.fax | html %]" class="[% required.fax | html %]" />
631
                                                [% IF mandatory.defined('fax') %]<span class="required">Required</span>[% END %]
554
                                                <div class="required_label [% required.fax | html %]">Required</div>
632
                                            </li>
555
                                            </li>
633
                                        [% END %]
556
                                        [% END %]
634
                                    </ol>
557
                                    </ol>
Lines 647-764 Link Here
647
                                    <ol>
570
                                    <ol>
648
                                        [% UNLESS hidden.defined('B_address') %]
571
                                        [% UNLESS hidden.defined('B_address') %]
649
                                            <li>
572
                                            <li>
650
                                                [% IF mandatory.defined('B_address') %]
573
                                                <label for="borrower_B_address" class="[% required.B_address | html %]">Address:</label>
651
                                                    <label for="borrower_B_address" class="required">Address:</label>
652
                                                [% ELSE %]
653
                                                    <label for="borrower_B_address">Address:</label>
654
                                                [% END %]
655
574
656
                                                <input type="text" id="borrower_B_address" name="borrower_B_address" value="[% borrower.B_address | html %]" />
575
                                                <input type="text" id="borrower_B_address" name="borrower_B_address" value="[% borrower.B_address | html %]" class="[% required.B_address | html %]" />
657
                                                [% IF mandatory.defined('B_address') %]<span class="required">Required</span>[% END %]
576
                                                <div class="required_label [% required.B_address | html %]">Required</div>
658
                                            </li>
577
                                            </li>
659
                                        [% END %]
578
                                        [% END %]
660
579
661
                                        [% UNLESS hidden.defined('B_address2') %]
580
                                        [% UNLESS hidden.defined('B_address2') %]
662
                                            <li>
581
                                            <li>
663
                                                [% IF mandatory.defined('B_address2') %]
582
                                                <label for="borrower_B_address2" class="[% required.B_address | html %]">Address 2:</label>
664
                                                    <label for="borrower_B_address2" class="required">Address 2:</label>
665
                                                [% ELSE %]
666
                                                    <label for="borrower_B_address2">Address 2:</label>
667
                                                [% END %]
668
583
669
                                                <input type="text" id="borrower_B_address2" name="borrower_B_address2" value="[% borrower.B_address2 | html %]" />
584
                                                <input type="text" id="borrower_B_address2" name="borrower_B_address2" value="[% borrower.B_address2 | html %]" class="[% required.B_address | html %]" />
670
                                                [% IF mandatory.defined('B_address2') %]<span class="required">Required</span>[% END %]
585
                                                <div class="required_label [% required.B_address2 | html %]">Required</div>
671
                                            </li>
586
                                            </li>
672
                                        [% END %]
587
                                        [% END %]
673
588
674
                                        [% UNLESS hidden.defined('B_city') %]
589
                                        [% UNLESS hidden.defined('B_city') %]
675
                                            <li>
590
                                            <li>
676
                                                [% IF mandatory.defined('B_city') %]
591
                                                <label for="borrower_B_city" class="[% required.B_city | html %]">City:</label>
677
                                                    <label for="borrower_B_city" class="required">City:</label>
678
                                                [% ELSE %]
679
                                                    <label for="borrower_B_city">City:</label>
680
                                                [% END %]
681
592
682
                                                <input type="text" id="borrower_B_city" name="borrower_B_city" value="[% borrower.B_city | html %]" />
593
                                                <input type="text" id="borrower_B_city" name="borrower_B_city" value="[% borrower.B_city | html %]" class="[% required.B_city | html %]" />
683
                                                [% IF mandatory.defined('B_city') %]<span class="required">Required</span>[% END %]
594
                                                <div class="required_label [% required.B_city | html %]">Required</div>
684
                                            </li>
595
                                            </li>
685
                                        [% END %]
596
                                        [% END %]
686
597
687
                                        [% UNLESS hidden.defined('B_state') %]
598
                                        [% UNLESS hidden.defined('B_state') %]
688
                                            <li>
599
                                            <li>
689
                                                [% IF mandatory.defined('B_state') %]
600
                                                <label for="borrower_B_state" class="[% required.B_state | html %]">State:</label>
690
                                                    <label for="borrower_B_state" class="required">State:</label>
691
                                                [% ELSE %]
692
                                                    <label for="borrower_B_state">State:</label>
693
                                                [% END %]
694
601
695
                                                <input type="text" id="borrower_B_state" name="borrower_B_state" value="[% borrower.B_state | html %]" />
602
                                                <input type="text" id="borrower_B_state" name="borrower_B_state" value="[% borrower.B_state | html %]" class="[% required.B_state | html %]" />
696
                                                [% IF mandatory.defined('B_state') %]<span class="required">Required</span>[% END %]
603
                                                <div class="required_label [% required.B_state | html %]">Required</div>
697
                                            </li>
604
                                            </li>
698
                                        [% END %]
605
                                        [% END %]
699
606
700
                                        [% UNLESS hidden.defined('B_zipcode') %]
607
                                        [% UNLESS hidden.defined('B_zipcode') %]
701
                                            <li>
608
                                            <li>
702
                                                [% IF mandatory.defined('B_zipcode') %]
609
                                                <label for="borrower_B_zipcode" class="[% required.B_zipcode | html %]">ZIP/Postal code:</label>
703
                                                    <label for="borrower_B_zipcode" class="required">ZIP/Postal code:</label>
704
                                                [% ELSE %]
705
                                                    <label for="borrower_B_zipcode">ZIP/Postal code:</label>
706
                                                [% END %]
707
610
708
                                                <input type="text" id="borrower_B_zipcode" name="borrower_B_zipcode" value="[% borrower.B_zipcode | html %]" />
611
                                                <input type="text" id="borrower_B_zipcode" name="borrower_B_zipcode" value="[% borrower.B_zipcode | html %]" class="[% required.B_zipcode | html %]" />
709
                                                [% IF mandatory.defined('B_zipcode') %]<span class="required">Required</span>[% END %]
612
                                                <div class="required_label [% required.B_zipcode | html %]">Required</div>
710
                                            </li>
613
                                            </li>
711
                                        [% END %]
614
                                        [% END %]
712
615
713
                                        [% UNLESS hidden.defined('B_country') %]
616
                                        [% UNLESS hidden.defined('B_country') %]
714
                                            <li>
617
                                            <li>
715
                                                [% IF mandatory.defined('B_country') %]
618
                                                <label for="borrower_B_country" class="[% required.B_country | html %]">Country:</label>
716
                                                    <label for="borrower_B_country" class="required">Country:</label>
717
                                                [% ELSE %]
718
                                                    <label for="borrower_B_country">Country:</label>
719
                                                [% END %]
720
619
721
                                                <input type="text" id="borrower_B_country" name="borrower_B_country" value="[% borrower.B_country | html %]" />
620
                                                <input type="text" id="borrower_B_country" name="borrower_B_country" value="[% borrower.B_country | html %]" class="[% required.B_country | html %]" />
722
                                                [% IF mandatory.defined('B_country') %]<span class="required">Required</span>[% END %]
621
                                                <div class="required_label [% required.B_country | html %]">Required</div>
723
                                            </li>
622
                                            </li>
724
                                        [% END %]
623
                                        [% END %]
725
624
726
                                        [% UNLESS hidden.defined('B_phone') %]
625
                                        [% UNLESS hidden.defined('B_phone') %]
727
                                            <li>
626
                                            <li>
728
                                                [% IF mandatory.defined('B_phone') %]
627
                                                <label for="borrower_B_phone" class="[% required.B_phone | html %]">Phone:</label>
729
                                                    <label for="borrower_B_phone" class="required">Phone:</label>
730
                                                [% ELSE %]
731
                                                    <label for="borrower_B_phone">Phone:</label>
732
                                                [% END %]
733
628
734
                                                <input type="text" id="borrower_B_phone" name="borrower_B_phone" value="[% borrower.B_phone | html %]" />
629
                                                <input type="text" id="borrower_B_phone" name="borrower_B_phone" value="[% borrower.B_phone | html %]" class="[% required.B_phone | html %]" />
735
                                                [% IF mandatory.defined('B_phone') %]<span class="required">Required</span>[% END %]
630
                                                <div class="required_label [% required.B_phone | html %]">Required</div>
736
                                            </li>
631
                                            </li>
737
                                        [% END %]
632
                                        [% END %]
738
633
739
                                        [% UNLESS hidden.defined('B_email') %]
634
                                        [% UNLESS hidden.defined('B_email') %]
740
                                            <li>
635
                                            <li>
741
                                                [% IF mandatory.defined('B_email') %]
636
                                                <label for="borrower_B_email" class="[% required.B_email | html %]">Email:</label>
742
                                                    <label for="borrower_B_email" class="required">Email:</label>
743
                                                [% ELSE %]
744
                                                    <label for="borrower_B_email">Email:</label>
745
                                                [% END %]
746
637
747
                                                <input type="text" id="borrower_B_email" name="borrower_B_email" value="[% borrower.B_email | html %]" />
638
                                                <input type="text" id="borrower_B_email" name="borrower_B_email" value="[% borrower.B_email | html %]" class="[% required.B_email | html %]" />
748
                                                [% IF mandatory.defined('B_email') %]<span class="required">Required</span>[% END %]
639
                                                <div class="required_label [% required.B_email | html %]">Required</div>
749
                                            </li>
640
                                            </li>
750
                                        [% END %]
641
                                        [% END %]
751
642
752
                                        [% UNLESS hidden.defined('contactnote') %]
643
                                        [% UNLESS hidden.defined('contactnote') %]
753
                                            <li>
644
                                            <li>
754
                                                [% IF mandatory.defined('contactnote') %]
645
                                                <label for="borrower_contactnote" class="[% required.contactnote | html %]">Contact note:</label>
755
                                                    <label for="borrower_contactnote" class="required">Contact note:</label>
756
                                                [% ELSE %]
757
                                                    <label for="borrower_contactnote">Contact note:</label>
758
                                                [% END %]
759
646
760
                                                <textarea id="borrower_contactnote" name="borrower_contactnote" cols="30" rows="2">[% borrower.contactnote | html %]</textarea>
647
                                                <textarea id="borrower_contactnote" name="borrower_contactnote" cols="30" rows="2" class="[% required.contactnote | html %]">[% borrower.contactnote | html %]</textarea>
761
                                                [% IF mandatory.defined('contactnote') %]<span class="required">Required</span>[% END %]
648
                                                <div class="required_label [% required.contactnote | html %]">Required</div>
762
                                            </li>
649
                                            </li>
763
                                        [% END %]
650
                                        [% END %]
764
651
Lines 778-895 Link Here
778
                                    <ol>
665
                                    <ol>
779
                                        [% UNLESS hidden.defined('altcontactsurname') %]
666
                                        [% UNLESS hidden.defined('altcontactsurname') %]
780
                                            <li>
667
                                            <li>
781
                                                [% IF mandatory.defined('altcontactsurname') %]
668
                                                <label for="borrower_altcontactsurname" class="[% required.altcontactsurname | html %]">Surname:</label>
782
                                                    <label for="borrower_altcontactsurname" class="required">Surname:</label>
783
                                                [% ELSE %]
784
                                                    <label for="borrower_altcontactsurname">Surname:</label>
785
                                                [% END %]
786
669
787
                                                <input type="text" id="borrower_altcontactsurname" name="borrower_altcontactsurname" value="[% borrower.altcontactsurname | html %]" />
670
                                                <input type="text" id="borrower_altcontactsurname" name="borrower_altcontactsurname" value="[% borrower.altcontactsurname | html %]" class="[% required.altcontactsurname | html %]" />
788
                                                [% IF mandatory.defined('altcontactsurname') %]<span class="required">Required</span>[% END %]
671
                                                <div class="required_label [% required.altcontactsurname | html %]">Required</div>
789
                                            </li>
672
                                            </li>
790
                                        [% END %]
673
                                        [% END %]
791
674
792
                                        [% UNLESS hidden.defined('altcontactfirstname') %]
675
                                        [% UNLESS hidden.defined('altcontactfirstname') %]
793
                                            <li>
676
                                            <li>
794
                                                [% IF mandatory.defined('altcontactfirstname') %]
677
                                                <label for="borrower_altcontactfirstname" class="[% required.altcontactfirstname | html %]">First name:</label>
795
                                                    <label for="borrower_altcontactfirstname" class="required">First name:</label>
796
                                                [% ELSE %]
797
                                                    <label for="borrower_altcontactfirstname">First name:</label>
798
                                                [% END %]
799
678
800
                                                <input type="text" id="borrower_altcontactfirstname" name="borrower_altcontactfirstname" value="[% borrower.altcontactfirstname | html %]" />
679
                                                <input type="text" id="borrower_altcontactfirstname" name="borrower_altcontactfirstname" value="[% borrower.altcontactfirstname | html %]" class="[% required.altcontactfirstname | html %]" />
801
                                                [% IF mandatory.defined('altcontactfirstname') %]<span class="required">Required</span>[% END %]
680
                                                <div class="required_label [% required.altcontactfirstname | html %]">Required</div>
802
                                            </li>
681
                                            </li>
803
                                        [% END %]
682
                                        [% END %]
804
683
805
                                        [% UNLESS hidden.defined('altcontactaddress1') %]
684
                                        [% UNLESS hidden.defined('altcontactaddress1') %]
806
                                            <li>
685
                                            <li>
807
                                                [% IF mandatory.defined('altcontactaddress1') %]
686
                                                <label for="borrower_altcontactaddress1" class="[% required.altcontactaddress1 | html %]">Address:</label>
808
                                                    <label for="borrower_altcontactaddress1" class="required">Address:</label>
809
                                                [% ELSE %]
810
                                                    <label for="borrower_altcontactaddress1">Address:</label>
811
                                                [% END %]
812
687
813
                                                <input type="text" id="borrower_altcontactaddress1" name="borrower_altcontactaddress1" value="[% borrower.altcontactaddress1 | html %]" />
688
                                                <input type="text" id="borrower_altcontactaddress1" name="borrower_altcontactaddress1" value="[% borrower.altcontactaddress1 | html %]" class="[% required.altcontactaddress1 | html %]" />
814
                                                [% IF mandatory.defined('altcontactaddress1') %]<span class="required">Required</span>[% END %]
689
                                                <div class="required_label [% required.altcontactaddress1 | html %]">Required</div>
815
                                            </li>
690
                                            </li>
816
                                        [% END %]
691
                                        [% END %]
817
692
818
                                        [% UNLESS hidden.defined('altcontactaddress2') %]
693
                                        [% UNLESS hidden.defined('altcontactaddress2') %]
819
                                            <li>
694
                                            <li>
820
                                                [% IF mandatory.defined('altcontactaddress2') %]
695
                                                <label for="borrower_altcontactaddress2" class="[% required.altcontactaddress2 | html %]">Address 2:</label>
821
                                                    <label for="borrower_altcontactaddress2" class="required">Address 2:</label>
822
                                                [% ELSE %]
823
                                                    <label for="borrower_altcontactaddress2">Address 2:</label>
824
                                                [% END %]
825
696
826
                                                <input type="text" id="borrower_altcontactaddress2" name="borrower_altcontactaddress2" value="[% borrower.altcontactaddress2 | html %]" />
697
                                                <input type="text" id="borrower_altcontactaddress2" name="borrower_altcontactaddress2" value="[% borrower.altcontactaddress2 | html %]" class="[% required.altcontactaddress2 | html %]" />
827
                                                [% IF mandatory.defined('altcontactaddress2') %]<span class="required">Required</span>[% END %]
698
                                                <div class="required_label [% required.altcontactaddress2 | html %]">Required</div>
828
                                            </li>
699
                                            </li>
829
                                        [% END %]
700
                                        [% END %]
830
701
831
                                        [% UNLESS hidden.defined('altcontactaddress3') %]
702
                                        [% UNLESS hidden.defined('altcontactaddress3') %]
832
                                            <li>
703
                                            <li>
833
                                                [% IF mandatory.defined('altcontactaddress3') %]
704
                                                <label for="borrower_altcontactaddress3" class="[% required.altcontactaddress3 | html %]">City:</label>
834
                                                    <label for="borrower_altcontactaddress3" class="required">City:</label>
835
                                                [% ELSE %]
836
                                                    <label for="borrower_altcontactaddress3">City:</label>
837
                                                [% END %]
838
705
839
                                                <input type="text" id="borrower_altcontactaddress3" name="borrower_altcontactaddress3" value="[% borrower.altcontactaddress3 | html %]" />
706
                                                <input type="text" id="borrower_altcontactaddress3" name="borrower_altcontactaddress3" value="[% borrower.altcontactaddress3 | html %]" class="[% required.altcontactaddress3 | html %]" />
840
                                                [% IF mandatory.defined('altcontactaddress3') %]<span class="required">Required</span>[% END %]
707
                                                <div class="required_label [% required.altcontactaddress3 | html %]">Required</div>
841
                                            </li>
708
                                            </li>
842
                                        [% END %]
709
                                        [% END %]
843
710
844
                                        [% UNLESS hidden.defined('altcontactstate') %]
711
                                        [% UNLESS hidden.defined('altcontactstate') %]
845
                                            <li>
712
                                            <li>
846
                                                [% IF mandatory.defined('altcontactstate') %]
713
                                                <label for="borrower_altcontactstate" class="[% required.altcontactstate | html %]">State:</label>
847
                                                    <label for="borrower_altcontactstate" class="required">State:</label>
848
                                                [% ELSE %]
849
                                                    <label for="borrower_altcontactstate">State:</label>
850
                                                [% END %]
851
714
852
                                                <input type="text" id="borrower_altcontactstate" name="borrower_altcontactstate" value="[% borrower.altcontactstate | html %]" />
715
                                                <input type="text" id="borrower_altcontactstate" name="borrower_altcontactstate" value="[% borrower.altcontactstate | html %]" class="[% required.altcontactstate | html %]" />
853
                                                [% IF mandatory.defined('altcontactstate') %]<span class="required">Required</span>[% END %]
716
                                                <div class="required_label [% required.altcontactstate | html %]">Required</div>
854
                                            </li>
717
                                            </li>
855
                                        [% END %]
718
                                        [% END %]
856
719
857
                                        [% UNLESS hidden.defined('altcontactzipcode') %]
720
                                        [% UNLESS hidden.defined('altcontactzipcode') %]
858
                                            <li>
721
                                            <li>
859
                                                [% IF mandatory.defined('altcontactzipcode') %]
722
                                                <label for="borrower_altcontactzipcode" class="[% required.altcontactzipcode | html %]">ZIP/Postal code:</label>
860
                                                    <label for="borrower_altcontactzipcode" class="required">ZIP/Postal code:</label>
861
                                                [% ELSE %]
862
                                                    <label for="borrower_altcontactzipcode">ZIP/Postal code:</label>
863
                                                [% END %]
864
723
865
                                                <input type="text" id="borrower_altcontactzipcode" name="borrower_altcontactzipcode" value="[% borrower.altcontactzipcode | html %]" />
724
                                                <input type="text" id="borrower_altcontactzipcode" name="borrower_altcontactzipcode" value="[% borrower.altcontactzipcode | html %]" class="[% required.altcontactzipcode | html %]" />
866
                                                [% IF mandatory.defined('altcontactzipcode') %]<span class="required">Required</span>[% END %]
725
                                                <div class="required_label [% required.altcontactzipcode | html %]">Required</div>
867
                                            </li>
726
                                            </li>
868
                                        [% END %]
727
                                        [% END %]
869
728
870
                                        [% UNLESS hidden.defined('altcontactcountry') %]
729
                                        [% UNLESS hidden.defined('altcontactcountry') %]
871
                                            <li>
730
                                            <li>
872
                                                [% IF mandatory.defined('altcontactcountry') %]
731
                                                <label for="borrower_altcontactcountry" class="[% required.altcontactcountry | html %]">Country:</label>
873
                                                    <label for="borrower_altcontactcountry" class="required">Country:</label>
874
                                                [% ELSE %]
875
                                                    <label for="borrower_altcontactcountry">Country:</label>
876
                                                [% END %]
877
732
878
                                                <input type="text" id="borrower_altcontactcountry" name="borrower_altcontactcountry" value="[% borrower.altcontactcountry | html %]" />
733
                                                <input type="text" id="borrower_altcontactcountry" name="borrower_altcontactcountry" value="[% borrower.altcontactcountry | html %]" class="[% required.altcontactcountry | html %]" />
879
                                                [% IF mandatory.defined('altcontactcountry') %]<span class="required">Required</span>[% END %]
734
                                                <div class="required_label [% required.altcontactcountry | html %]">Required</div>
880
                                            </li>
735
                                            </li>
881
                                        [% END %]
736
                                        [% END %]
882
737
883
                                        [% UNLESS hidden.defined('altcontactphone') %]
738
                                        [% UNLESS hidden.defined('altcontactphone') %]
884
                                            <li>
739
                                            <li>
885
                                                [% IF mandatory.defined('altcontactphone') %]
740
                                                <label for="borrower_altcontactphone" class="[% required.altcontactphone | html %]">Phone:</label>
886
                                                    <label for="borrower_altcontactphone" class="required">Phone:</label>
887
                                                [% ELSE %]
888
                                                    <label for="borrower_altcontactphone">Phone:</label>
889
                                                [% END %]
890
741
891
                                                <input type="text" id="borrower_altcontactphone" name="borrower_altcontactphone" value="[% borrower.altcontactphone | html %]" />
742
                                                <input type="text" id="borrower_altcontactphone" name="borrower_altcontactphone" value="[% borrower.altcontactphone | html %]" class="[% required.altcontactphone | html %]" />
892
                                                [% IF mandatory.defined('altcontactphone') %]<span class="required">Required</span>[% END %]
743
                                                <div class="required_label [% required.altcontactphone | html %]">Required</div>
893
                                            </li>
744
                                            </li>
894
                                        [% END %]
745
                                        [% END %]
895
                                    </ol>
746
                                    </ol>
Lines 918-944 Link Here
918
                                        [% END %]
769
                                        [% END %]
919
                                    </div>
770
                                    </div>
920
771
921
                                    [% IF mandatory.defined('password') %]
772
                                    <ol>
922
                                        <ol>
773
                                        <li><label for="borrower_password" class="[% required.password | html %]">Password</label>
923
                                            <li><label for="borrower_password" class="required">Password</label>
774
                                            <input type="password" name="borrower_password" id="password" class="[% required.password | html %]" />
924
                                                <input type="password" name="borrower_password" id="password" />
775
                                            <div class="required_label [% required.password | html %]">Required</div>
925
                                                <span class="required">Required</span>
776
                                        </li>
926
                                            </li>
777
                                        <li><label for="borrower_password2" class="[% required.password | html %]">Confirm password</label>
927
                                            <li><label for="borrower_password2" class="required">Confirm password</label>
778
                                            <input type="password" name="borrower_password2" id="password2" />
928
                                                <input type="password" name="borrower_password2" id="password2" />
779
                                            <div class="required_label [% required.password | html %]">Required</div>
929
                                                <span class="required">Required</span>
780
                                        </li>
930
                                            </li>
781
                                    </ol>
931
                                        </ol>
932
                                    [% ELSE %]
933
                                        <ol>
934
                                            <li><label for="borrower_password">Password</label>
935
                                                <input type="password" name="borrower_password" id="password" />
936
                                            </li>
937
                                            <li><label for="borrower_password2">Confirm password</label>
938
                                                <input type="password" name="borrower_password2" id="password2" />
939
                                            </li>
940
                                        </ol>
941
                                    [% END %]
942
                                </fieldset>
782
                                </fieldset>
943
                            </div> <!-- /.col -->
783
                            </div> <!-- /.col -->
944
                        </div> <!-- /.row -->
784
                        </div> <!-- /.row -->
Lines 987-993 Link Here
987
                                                                <textarea rows="2" cols="30" id="[% form_id | html %]" name="patron_attribute_value">[% pa_value | html %]</textarea>
827
                                                                <textarea rows="2" cols="30" id="[% form_id | html %]" name="patron_attribute_value">[% pa_value | html %]</textarea>
988
                                                            [% END %]
828
                                                            [% END %]
989
                                                            [% IF pa.type.mandatory %]
829
                                                            [% IF pa.type.mandatory %]
990
                                                                <span class="required">Required</span>
830
                                                                <div class="required">Required</div>
991
                                                            [% END %]
831
                                                            [% END %]
992
                                                            <a href="#" class="clear-attribute">Clear</a>
832
                                                            <a href="#" class="clear-attribute">Clear</a>
993
                                                            [% IF ( pa.type.repeatable ) %]
833
                                                            [% IF ( pa.type.repeatable ) %]
Lines 1017-1023 Link Here
1017
                                    <legend>GDPR consent</legend>
857
                                    <legend>GDPR consent</legend>
1018
                                    <ol>
858
                                    <ol>
1019
                                    <li>
859
                                    <li>
1020
                                        <label></label><span><input type="checkbox" name="borrower_gdpr_proc_consent" value="agreed"> I agree with your processing of my personal data as outlined in the <a target="_blank" href="[% Koha.Preference('PrivacyPolicyURL') | url %]">privacy policy</a>. <span class="required">Required</span></span>
860
                                        <label></label><span><input type="checkbox" name="borrower_gdpr_proc_consent" value="agreed"> I agree with your processing of my personal data as outlined in the <a target="_blank" href="[% Koha.Preference('PrivacyPolicyURL') | url %]">privacy policy</a>. <div class="required">Required</div></span>
1021
                                    </li>
861
                                    </li>
1022
                                    </ol>
862
                                    </ol>
1023
                                </fieldset>
863
                                </fieldset>
Lines 1036-1041 Link Here
1036
                                            <label for="captcha" class="required">Verification:</label>
876
                                            <label for="captcha" class="required">Verification:</label>
1037
877
1038
                                            <input type="text" name="captcha" id="captcha" />
878
                                            <input type="text" name="captcha" id="captcha" />
879
                                            <div class="required_label required">Required</div>
1039
                                            <input type="hidden" name="captcha_digest" value="[% captcha_digest | html %]" />
880
                                            <input type="hidden" name="captcha_digest" value="[% captcha_digest | html %]" />
1040
881
1041
                                            <span class="hint">Please type the following characters into the preceding box: <strong>[% captcha | html %]</strong></span>
882
                                            <span class="hint">Please type the following characters into the preceding box: <strong>[% captcha | html %]</strong></span>
Lines 1075-1080 Link Here
1075
916
1076
[% INCLUDE 'opac-bottom.inc' %]
917
[% INCLUDE 'opac-bottom.inc' %]
1077
[% BLOCK jsinclude %]
918
[% BLOCK jsinclude %]
919
    [% INCLUDE 'validator-strings.inc' %]
1078
    [% Asset.js("lib/jquery/plugins/jquery.validate.min.js") | $raw %]
920
    [% Asset.js("lib/jquery/plugins/jquery.validate.min.js") | $raw %]
1079
    [% INCLUDE 'calendar.inc' %]
921
    [% INCLUDE 'calendar.inc' %]
1080
922
Lines 1105-1120 Link Here
1105
                        email: true
947
                        email: true
1106
                    },
948
                    },
1107
                    borrower_password: {
949
                    borrower_password: {
1108
                        [% IF mandatory.defined('password') %]
1109
                        required: true,
1110
                        [% END %]
1111
                        password_strong: true,
950
                        password_strong: true,
1112
                        password_no_spaces: true
951
                        password_no_spaces: true
1113
                    },
952
                    },
1114
                    borrower_password2: {
953
                    borrower_password2: {
1115
                        [% IF mandatory.defined('password') %]
1116
                        required: true,
1117
                        [% END %]
1118
                        password_match: true
954
                        password_match: true
1119
                    },
955
                    },
1120
                    captcha: {
956
                    captcha: {
Lines 1129-1146 Link Here
1129
                        form.beenSubmitted = true;
965
                        form.beenSubmitted = true;
1130
                        form.submit();
966
                        form.submit();
1131
                    }
967
                    }
1132
                },
1133
                errorPlacement: function(error, element) {
1134
                    offset = element.offset();
1135
                    error.insertAfter(element)
1136
                    error.addClass('error');  // add a class to the wrapper
1137
                    error.css('position', 'absolute');
1138
                    error.css('left', offset.left + element.outerWidth() + 10);
1139
                    error.css('top', offset.top);
1140
                    error.css('width', 'auto');
1141
                }
968
                }
1142
            });
969
            });
1143
970
971
            $("input.required,select.required,textarea.required").rules("add", {
972
                required: true
973
            });
974
1144
            [% IF patron.guarantor_relationships && !Koha.Preference('OPACPrivacy') %]
975
            [% IF patron.guarantor_relationships && !Koha.Preference('OPACPrivacy') %]
1145
976
1146
                [% IF Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
977
                [% IF Koha.Preference('AllowPatronToSetCheckoutsVisibilityForGuarantor') %]
Lines 1254-1260 Link Here
1254
            $('select#borrower_categorycode').change(setPwdMessage);
1085
            $('select#borrower_categorycode').change(setPwdMessage);
1255
        });
1086
        });
1256
    [% END %]
1087
    [% END %]
1257
    //]]>
1088
1258
    </script>
1089
    </script>
1259
    [% PROCESS 'password_check.inc' new_password => 'borrower_password', category_selector => '#borrower_categorycode', RequireStrongPassword => patron ? patron.category.effective_require_strong_password : defaultCategory.effective_require_strong_password, minPasswordLength => patron ? patron.category.effective_min_password_length : defaultCategory.effective_min_password_length %]
1090
    [% PROCESS 'password_check.inc' new_password => 'borrower_password', category_selector => '#borrower_categorycode', RequireStrongPassword => patron ? patron.category.effective_require_strong_password : defaultCategory.effective_require_strong_password, minPasswordLength => patron ? patron.category.effective_min_password_length : defaultCategory.effective_min_password_length %]
1260
1091
1261
- 

Return to bug 27668