1 [% INCLUDE 'doc-head-open.inc' %]
2 <title>Koha › Patrons ›
3 [% IF ( opadd ) %]Add[% ELSIF ( opduplicate ) %]Duplicate[% ELSE %] Modify[% END %] [% IF ( categoryname ) %] [% categoryname %] patron[% ELSE %][% IF ( I ) %] Organization patron[% END %][% IF ( A ) %] Adult patron[% END %][% IF ( C ) %] Child patron[% END %][% IF ( P ) %] Professional patron[% END %][% IF ( S ) %] Staff patron[% END %][% END %][% UNLESS ( opadd ) %] [% surname %], [% firstname %][% END %]</title>
4 [% INCLUDE 'doc-head-close.inc' %]
5 [% INCLUDE 'calendar.inc' %]
6 <script type="text/JavaScript">
8 $(document).ready(function() {
9 $("fieldset.rows input").keydown(function(e){ return checkEnter(e); });
10 $("#guarantordelete").click(function() {
11 $("#contact-details").hide().find('a').remove();
12 $("#guarantorid, #contactname, #contactfirstname").each(function () { this.value = "" });
13 $("#contactname, #contactfirstname")
14 .each(function () { this.type = 'text' })
15 .parent().find('span').remove();
16 $("#guarantorsearch").val("Set to Patron");
18 $("#select_city").change(function(){
19 var myRegEx=new RegExp(/(.*)\|(.*)\|(.*)\|(.*)/);
20 document.form.select_city.value.match(myRegEx);
21 document.form.zipcode.value=RegExp.$1;
22 document.form.city.value=RegExp.$2;
23 document.form.state.value=RegExp.$3;
24 document.form.country.value=RegExp.$4;
28 update_category_code( "[% categorycode %]" );
30 if ( $("#categorycode").length > 0 ){
31 var category_code = $("#categorycode").find("option:selected").val();
32 update_category_code( category_code );
35 $("#dateofbirth").datepicker({ maxDate: "-1D" });
38 function clear_entry(node) {
39 var original = $(node).parent();
40 $("textarea", original).attr('value', '');
41 $("select", original).attr('value', '');
44 function clone_entry(node) {
45 var original = $(node).parent();
46 var clone = original.clone();
48 var newId = 50 + parseInt(Math.random() * 100000);
49 $("input,select,textarea", clone).attr('id', function() {
50 return this.id.replace(/patron_attr_\d+/, 'patron_attr_' + newId);
52 $("input,select,textarea", clone).attr('name', function() {
53 return this.name.replace(/patron_attr_\d+/, 'patron_attr_' + newId);
55 $("label", clone).attr('for', function() {
56 return $(this).attr("for").replace(/patron_attr_\d+/, 'patron_attr_' + newId);
58 $("input#patron_attr_" + newId, clone).attr('value','');
59 $("select#patron_attr_" + newId, clone).attr('value','');
60 $(original).after(clone);
64 function update_category_code(category_code) {
65 if ( $(category_code).is("select") ) {
66 category_code = $("#categorycode").find("option:selected").val();
68 var mytables = $(".attributes_table");
69 $(mytables).find("li").hide();
70 $(mytables).find(" li[data-category_code="+category_code+"]").show();
71 $(mytables).find(" li[data-category_code='']").show();
74 var MSG_SEPARATOR = _("Separator must be / in field ");
75 var MSG_INCORRECT_DAY = _("Invalid day entered in field ");
76 var MSG_INCORRECT_MONTH = _("Invalid month entered in field ");
77 var MSG_INCORRECT_YEAR = _("Invalid year entered in field ");
78 var MSG_DUPLICATE_PATRON = _("Warning: Duplicate patron");
79 var MSG_DUPLICATE_ORGANIZATION = _("Warning: Duplicate organization");
80 var MSG_LATE_EXPIRY = _("Warning: Expiration date falls before enrollment date");
81 var MSG_MISSING_MANDATORY = _("The following fields are mandatory:");
82 var MSG_DUPLICATE_SUSPICION = _("Please confirm whether this is a duplicate patron");
83 var MSG_PASSWORD_MISMATCH = _("The passwords entered do not match");
86 <script type="text/javascript" src="[% themelang %]/js/members.js"></script>
88 <body id="pat_memberentrygen" class="pat">
89 [% INCLUDE 'header.inc' %]
90 [% INCLUDE 'patron-search.inc' %]
92 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a> ›
94 Add[% IF ( categoryname ) %] [% categoryname %] patron[% ELSE %][% IF ( I ) %] Organization patron[% END %][% IF ( A ) %] Adult patron[% END %][% IF ( C ) %] Child patron[% END %][% IF ( P ) %] Professional patron[% END %][% IF ( S ) %] Staff patron[% END %][% END %]
95 [% surname %] [% firstname %]
97 <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">[% firstname %] [% surname %]</a> › <strong>[% IF ( opduplicate ) %]Duplicate[% ELSE %]Modify[% END %][% IF ( categoryname ) %] [% categoryname %] patron[% ELSE %][% IF ( I ) %] Organization patron[% END %][% IF ( A ) %] Adult patron[% END %][% IF ( C ) %] Child patron[% END %][% IF ( P ) %] Professional patron[% END %][% IF ( S ) %] Staff patron[% END %][% END %]
98 </strong>[% END %]</div>
99 [% IF ( opadd ) %]<div id="doc" class="yui-t7">[% ELSE %]<div id="doc3" class="yui-t2">[% END %]
106 [% IF ( error_alert == "no_email" ) %]
107 <div class="error">This member has no email</div>
109 <div class="error">[% error_alert %]</div>
113 <div class="dialog message">Email has been sent.</div>
116 [% IF ( no_add ) %]<div class="dialog alert"><h3>Cannot add patron</h3>
117 [% IF ( no_branches ) %]<p>There are <strong>no libraries defined</strong>. [% IF ( CAN_user_parameters ) %]Please <a href="/cgi-bin/koha/admin/branches.pl">add a library</a>.[% ELSE %]An administrator must define at least one library.[% END %]</p>[% END %]
118 [% IF ( no_categories ) %]<p>There are <strong>no patron categories defined</strong>. [% IF ( CAN_user_parameters ) %]Please <a href="/cgi-bin/koha/admin/categorie.pl">add a patron category</a>.[% ELSE %]An administrator must define at least one patron category.</p>[% END %][% END %]</div>[% END %]
120 [% UNLESS ( no_add ) %]
123 Add[% IF ( categoryname ) %] [% categoryname %] patron[% ELSE %][% IF ( I ) %] Organization patron[% END %][% IF ( A ) %] Adult patron[% END %][% IF ( C ) %] Child patron[% END %][% IF ( P ) %] Professional patron[% END %][% IF ( S ) %] Staff patron[% END %][% END %] [% firstname %] [% surname %]
127 [% IF ( opduplicate ) %]Duplicate[% ELSE %]Modify[% END %][% IF ( categoryname ) %] [% categoryname %] patron[% ELSE %][% IF ( I ) %] Organization patron[% END %][% IF ( A ) %] Adult patron[% END %][% IF ( C ) %] Child patron[% END %][% IF ( P ) %] Professional patron[% END %][% IF ( S ) %] Staff patron[% END %][% END %]
128 [% firstname %] [% surname %]
132 [% IF ( check_member ) %]
133 <div class="dialog alert">
134 <h3>Duplicate patron record?</h3>
135 <p><a class="popup" href="javascript:Dopop('moremember.pl?print=brief&borrowernumber=[% check_member %]');" >View existing record</a></p>
136 <form action="/cgi-bin/koha/members/memberentry.pl" method="get"><input type="hidden" name="op" value="modify" /><input type="hidden" name="borrowernumber" value="[% check_member %]" /><input type="hidden" name="category_type" value="[% check_categorytype %]" /><input class="edit" type="submit" value="It is a duplicate. Edit existing record" /></form>
138 <form name="form_double" action="/cgi-bin/koha/members/memberentry.pl" method="post" autocomplete="off">
139 <input type="hidden" name="nodouble" value="1" />
140 <input class="new" type="submit" value="Not a duplicate. Save as new record" />
146 <div>Debug is on (level [% debug %])</div>
150 <div class="dialog alert">
151 <p>The following fields are wrong. Please fix them.</p>
153 [% IF ( ERROR_login_exist ) %]
154 <li id="ERROR_login_exist">Username/password already exists.</li>
156 [% IF ( ERROR_cardnumber ) %]
157 <li id="ERROR_cardnumber">Cardnumber already in use.</li>
159 [% IF ( ERROR_age_limitations ) %]
160 <li id="ERROR_age_limitations">Patron's age is incorrect for their category.
161 Ages allowed are [% age_low %]-[% age_high %].</li>
163 [% IF ( ERROR_branch ) %]
164 <li id="ERROR_branch">Library is invalid.</li>
166 [% IF ( ERROR_dateofbirth ) %]
167 <li id="ERROR_dateofbirth">Date of birth is invalid.</li>
169 [% IF ( ERROR_dateenrolled ) %]
170 <li id="ERROR_dateenrolled">Date of enrollment is invalid.</li>
172 [% IF ( ERROR_dateexpiry ) %]
173 <li id="ERROR_dateexpiry">Date of expiration is invalid.</li>
175 [% IF ( ERROR_short_password ) %]
176 <li id="ERROR_short_password">Password must be at least [% minPasswordLength %] characters long.</li>
178 [% IF ( ERROR_password_mismatch ) %]
179 <li id="ERROR_password_mismatch">Passwords do not match.</li>
181 [% IF ( ERROR_extended_unique_id_failed ) %]
182 <li id="ERROR_extended_unique_id_failed">The attribute value
183 [% ERROR_extended_unique_id_failed %] is already is use by another patron record.</li>
190 [% UNLESS ( check_member ) %]<form name="form" id="entryform" action="/cgi-bin/koha/members/memberentry.pl" method="post" autocomplete="off">
191 <input type="hidden" name="nodouble" value="[% nodouble %]" /> [% END %]
192 <!-- field always hidden in different form (1,2,3) -->
193 <input type="hidden" name="BorrowerMandatoryField" value="[% BorrowerMandatoryField %]" />
194 <input type="hidden" name="category_type" value="[% category_type %]" />
195 <input type="hidden" name="updtype" value="[% updtype %]" />
196 <input type="hidden" name="select_roadtype" value="[% select_roadtype %]" />
197 <input type="hidden" name="destination" value="[% destination %]" />
198 <input type="hidden" name="check_member" value="[% check_member %]" />
199 <input type="hidden" name="borrowernumber" value="[% IF ( opduplicate ) %][% ELSE %][% borrowernumber %][% END %]" />
200 <input type="hidden" name="nodouble" value="[% IF ( opduplicate ) %][% ELSE %][% nodouble %][% END %]" />
201 [% IF ( step ) %]<input type="hidden" name="step" value="[% step %]" />[% END %]
202 [% IF ( opadd ) %]<input type="hidden" name="op" value="insert" />
203 [% ELSIF ( opduplicate ) %]
204 <input type="hidden" name="op" value="insert" />
206 <input type="hidden" name="op" value="save" />
207 [% IF step == 4 || step == 5 || step == 6 || step == 2 || step == 1 %]
208 [%# Only put the cardnumber if we arent showing it in the form later %]
210 <input type="hidden" name="cardnumber" value="[% cardnumber %]" />
216 [%UNLESS notitle && nosurname && nofirstname && nodateofbirth && noinitials && noothernames &&nosex %]
217 <fieldset class="rows" id="memberentry_identity">
218 <legend id="identity_lgd">[% IF ( I ) %]Organization [% ELSE %]Patron [% END %]identity</legend>
222 [% IF ( title_cgipopup ) %]
224 [% IF ( mandatorytitle ) %]
225 <label for="btitle" class="required">
230 [% borrotitlepopup %]
231 [% IF ( mandatorytitle ) %]<span class="required">Required</span>[% END %]
236 [% UNLESS nosurname %]
238 [% IF ( mandatorysurname ) %]
239 <label for="surname" class="required">
241 <label for="surname">
244 [% IF ( uppercasesurnames ) %]
245 [% IF ( opduplicate ) %]
246 <input style="text-transform:uppercase;" type="text" id="surname" name="surname" size="20" value="[% surname %]" onclick="this.value=''" />
248 <input style="text-transform:uppercase;" type="text" id="surname" name="surname" size="20" value="[% surname %]" />
251 [% IF ( opduplicate ) %]
252 <input type="text" id="surname" name="surname" size="20" value="[% surname %]" onclick="this.value=''" />
254 <input type="text" id="surname" name="surname" size="20" value="[% surname %]" />
257 [% IF ( mandatorysurname ) %]<span class="required">Required</span>[% END %]
261 [% UNLESS nofirstname %]
263 [% IF ( mandatoryfirstname ) %]
264 <label for="firstname" class="required">
266 <label for="firstname">
269 <input type="text" id="firstname" name="firstname" size="20" value="[% IF ( opduplicate ) %][% ELSE %][% firstname %][% END %]" />
270 [% IF ( mandatoryfirstname ) %]<span class="required">Required</span>[% END %]
273 [% UNLESS nodateofbirth %]
275 [% IF ( mandatorydateofbirth ) %]
276 <label for="dateofbirth" class="required">
278 <label for="dateofbirth">
280 Date of birth: </label>
283 <input type="text" id="dateofbirth" name="dateofbirth" size="20" onchange="CheckDate(document.form.dateofbirth);" value="[% IF ( opduplicate ) %][% ELSE %][% dateofbirth %][% END %]" />
285 <input type="text" id="dateofbirth" name="dateofbirth" size="20" value="[% IF ( opduplicate ) %][% ELSE %][% dateofbirth %][% END %]" />
288 [% IF ( mandatorydateofbirth ) %]<span class="required">Required</span>[% END %]
289 [% IF ( ERROR_dateofbirth ) %]<span class="required">(Error)</span>[% END %]
290 <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
293 [% UNLESS noinitials %]
295 [% IF ( mandatoryinitials ) %]
296 <label for="initials" class="required">
298 <label for="initials">
301 [% IF ( opduplicate ) %]
302 <input type="text" id="initials" name="initials" size="20" value="[% initials %]" onclick="this.value=''" />
304 <input type="text" id="initials" name="initials" size="20" value="[% initials %]" />
306 [% IF ( mandatoryinitials ) %]<span class="required">Required</span>[% END %]
310 [% UNLESS noothernames %]
312 [% IF ( mandatoryothernames ) %]
313 <label for="othernames" class="required">
315 <label for="othernames">
318 [% IF ( opduplicate ) %]
319 <input type="text" id="othernames" name="othernames" size="20" value="[% othernames %]" onclick="this.value=''" />
321 <input type="text" id="othernames" name="othernames" size="20" value="[% othernames %]" />
323 [% IF ( mandatoryothernames ) %]<span class="required">Required</span>[% END %]
324 [% IF ( I ) %]<input type="hidden" name="sex" value="N" />[% END %]
332 <label for="sex-female">Female </label><input type="radio" name="sex" id="sex-female" value="F" checked="checked" />
334 <label for="sex-female">Female </label><input type="radio" name="sex" id="sex-female" value="F" />
337 <label for="sex-male">Male </label><input type="radio" name="sex" id="sex-male" value="M" checked="checked" />
339 <label for="sex-male">Male </label><input type="radio" name="sex" id="sex-male" value="M" />
342 <label for="sex-none">N/A </label><input type="radio" name="sex" id="sex-none" value="" checked="checked" />
344 <label for="sex-none">N/A </label><input type="radio" name="sex" id="sex-none" value="" />
351 [% END # hide fieldset %]
353 [% IF ( showguarantor ) %]<input type="hidden" id="guarantorid" name="guarantorid" value="[% guarantorid %]" />
354 <fieldset class="rows">
355 <legend>Guarantor information</legend>
358 [% IF ( guarantorid ) %]
359 <li id="contact-details">
361 <li id="contact-details" style="display: none">
363 <span class="label">Organization #:</span> [% IF ( guarantorid ) %] <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantorid %]" target="blank">[% guarantorid %]</a>[% END %]
366 <label for="contactname">Organization name: </label>
367 [% IF ( guarantorid ) %]
368 <span>[% contactname %]</span>
369 <input name="contactname" id="contactname" type="hidden" size="20" value="[% contactname %]" />
371 [% IF ( opduplicate ) %]
372 <input name="contactname" id="contactname" type="text" size="20" value="[% contactname %]" onclick="this.value=''" />
374 <input name="contactname" id="contactname" type="text" size="20" value="[% contactname %]" />
380 [% IF ( guarantorid ) %]
381 <li id="contact-details">
383 <li id="contact-details" style="display: none">
385 <span class="label">Patron #:</span> [% IF ( guarantorid ) %] <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantorid %]" target="blank">[% guarantorid %]</a>[% END %]
387 [% UNLESS nocontactname %]
389 <label for="contactname">Surname: </label>
390 [% IF ( guarantorid ) %]
391 <span>[% contactname %]</span>
392 <input name="contactname" id="contactname" type="hidden" size="20" value="[% contactname %]" />
394 [% IF ( opduplicate ) %]
395 <input name="contactname" id="contactname" type="text" size="20" value="[% contactname %]" onclick="this.value=''" />
397 <input name="contactname" id="contactname" type="text" size="20" value="[% contactname %]" />
402 [% UNLESS nocontactfirstname %]
404 <label for="contactfirstname">First name: </label>
405 [% IF ( guarantorid ) %]
406 <span>[% contactfirstname %]</span>
407 <input name="contactfirstname" id="contactfirstname" type="hidden" size="20" value="[% contactfirstname %]" />
409 [% IF ( opduplicate ) %]
410 <input name="contactfirstname" id="contactfirstname" type="text" size="20" value="[% contactfirstname %]" onclick="this.value=''" />
412 <input name="contactfirstname" id="contactfirstname" type="text" size="20" value="[% contactfirstname %]" />
417 [% IF ( relshiploop ) %]
419 <label for="relationship">Relationship: </label>
420 <select name="relationship" id="relationship" >
421 [% FOREACH relshiploo IN relshiploop %]
422 [% IF ( relshiploo.selected ) %]
423 <option value="[% relshiploo.relationship %]" selected="selected" >[% relshiploo.relationship %]</option>
425 <option value="[% relshiploo.relationship %]">[% relshiploo.relationship %]</option>
434 <span class="label"> </span>
435 [% IF ( guarantorid ) %]
436 <input id="guarantorsearch" type="button" value="Change" onclick="Dopopguarantor('guarantor_search.pl?category_type=[% category_type %]');" />
438 <input id="guarantorsearch" type="button" value="Set to patron" onclick="Dopopguarantor('guarantor_search.pl?category_type=[% category_type %]');" />
440 <input id="guarantordelete" type="button" value="Delete" />
446 [% UNLESS noaddress && noaddress2 && nocity && nostate && nozipcode && nocountry %]
447 <fieldset class="rows">
448 <legend id="main_address_lgd">Main address</legend><ol>
449 [% UNLESS nostreetnumber %]
451 [% IF ( mandatorystreetnumber ) %]
452 <label for="streetnumber" class="required">
454 <label for="streetnumber">
456 Street number: </label>
457 [% IF ( opduplicate ) %]
458 <input type="text" id="streetnumber" name="streetnumber" size="5" value="[% streetnumber %]" onclick="this.value=''" />
460 <input type="text" id="streetnumber" name="streetnumber" size="5" value="[% streetnumber %]" />
462 [% IF ( mandatorystreetnumber ) %]<span class="required">Required</span>[% END %]
465 [% UNLESS nostreettype %]
466 [% IF ( road_cgipopup ) %]
468 [% IF ( mandatorystreettype ) %]
469 <label for="streettype" class="required">
471 <label for="streettype">
473 Street type: </label>
475 [% IF ( mandatorystreettype ) %]<span class="required">Required</span>[% END %]
479 [% UNLESS noaddress %]
481 [% IF ( mandatoryaddress ) %]
482 <label for="address" class="required">
484 <label for="address">
487 [% IF ( opduplicate ) %]
488 <input type="text" id="address" name="address" size="35" value="[% address %]" onclick="this.value=''" />
490 <input type="text" id="address" name="address" size="35" value="[% address %]" />
492 [% IF ( mandatoryaddress ) %]<span class="required">Required</span>[% END %]
495 [% UNLESS noaddress2 %]
497 [% IF ( mandatoryaddress2 ) %]
498 <label for="address2" class="required">
500 <label for="address2">
503 [% IF ( opduplicate ) %]
504 <input type="text" id="address2" name="address2" size="35" value="[% address2 %]" onclick="this.value=''" />
506 <input type="text" id="address2" name="address2" size="35" value="[% address2 %]" />
508 [% IF ( mandatoryaddress2 ) %]<span class="required">Required</span>[% END %]
513 [% IF ( mandatorycity ) %]
514 <label for="city" class="required">
519 [% IF ( opduplicate ) %]
520 <input type="text" id="city" name="city" size="20" value="[% city %]" onclick="this.value=''" />
522 <input type="text" id="city" name="city" size="20" value="[% city %]" />
524 [% IF ( city_cgipopup ) %]or <strong>choose</strong>
525 <select id="select_city" name="select_city">
526 [% FOREACH city_loo IN city_loop %]
527 [% IF ( city_loo.selected ) %]
528 <option value="[% city_loo.city_zipcode %]|[% city_loo.city_name %]|[% city_loo.city_state %]|[% city_loo.city_country %]" selected="selected">
530 <option value="[% city_loo.city_zipcode %]|[% city_loo.city_name %]|[% city_loo.city_state %]|[% city_loo.city_country %]">
532 [% city_loo.city_name %] [% city_loo.city_state %] [% city_loo.city_zipcode %]
537 [% IF ( mandatorycity ) %]<span class="required">Required</span>[% END %]
542 [% IF ( mandatorystate ) %]
543 <label for="state" class="required">
548 <input type="text" name="state" id="state" size="20" value="[% state %]" />
549 [% IF ( mandatorystate ) %]<span class="required">Required</span>[% END %]
552 [% UNLESS nozipcode %]
554 [% IF ( mandatoryzipcode ) %]
555 <label for="zipcode" class="required">
557 <label for="zipcode">
559 Zip/Postal code: </label>
560 [% IF ( opduplicate ) %]
561 <input type="text" name="zipcode" id="zipcode" size="10" value="[% zipcode %]" onclick="this.value=''" />
563 <input type="text" name="zipcode" id="zipcode" size="10" value="[% zipcode %]" />
565 [% IF ( mandatoryzipcode ) %]<span class="required">Required</span>[% END %]
568 [% UNLESS nocountry %]
570 [% IF ( mandatorycountry ) %]
571 <label for="country" class="required">
573 <label for="country">
576 [% IF ( opduplicate ) %]
577 <input type="text" name="country" id="country" size="20" value="[% country %]" onclick="this.value=''" />
579 <input type="text" name="country" id="country" size="20" value="[% country %]" />
581 [% IF ( mandatorycountry ) %]<span class="required">Required</span>[% END %]
586 [% END # nostreet && nocity etc group%]
588 [% UNLESS nophone && nophonepro && nomobile && noemail && noemailpro && nofax %]
589 <fieldset class="rows" id="memberentry_contact">
590 <legend id="contact_lgd">Contact</legend><ol>
593 [% IF ( mandatoryphone ) %]
594 <label for="phone" class="required">
598 Primary phone: </label>
599 [% IF ( opduplicate ) %]
600 <input type="text" id="phone" name="phone" value="[% phone %]" onclick="this.value=''" />
602 <input type="text" id="phone" name="phone" value="[% phone %]" />
604 [% IF ( mandatoryphone ) %]<span class="required">Required</span>[% END %]<div class="hint">Shows on transit slips</div>
608 [% UNLESS nophonepro %]
610 [% IF ( mandatoryphonepro ) %]
611 <label for="phonepro" class="required">
613 <label for="phonepro">
615 Secondary phone: </label>
616 [% IF ( opduplicate ) %]
617 <input type="text" id="phonepro" name="phonepro" value="[% phonepro %]" onclick="this.value=''" />
619 <input type="text" id="phonepro" name="phonepro" value="[% phonepro %]" />
621 [% IF ( mandatoryphonepro ) %]<span class="required">Required</span>[% END %]
624 [% UNLESS nomobile %]
626 [% IF ( mandatorymobile ) %]
627 <label for="mobile" class="required">
631 Other phone: </label>
632 [% IF ( opduplicate ) %]
633 <input type="text" id="mobile" name="mobile" value="[% mobile %]" onclick="this.value=''" />
635 <input type="text" id="mobile" name="mobile" value="[% mobile %]" />
637 [% IF ( mandatorymobile ) %]<span class="required">Required</span>[% END %]
642 [% IF ( mandatoryemail ) %]
643 <label for="email" class="required">
647 Primary email: </label>
648 [% IF ( opduplicate ) %]
649 <input type="text" id="email" name="email" size="45" value="[% email %]" onclick="this.value=''" />
651 <input type="text" id="email" name="email" size="45" value="[% email %]" />
653 [% IF ( mandatoryemail ) %]<span class="required">Required</span>[% END %]<div class="hint">Shows on transit slips</div>
657 [% UNLESS noemailpro %]
659 [% IF ( mandatoryemailpro ) %]
660 <label for="emailpro" class="required">
662 <label for="emailpro">
664 Secondary email: </label>
665 [% IF ( opduplicate ) %]
666 <input type="text" id="emailpro" name="emailpro" size="45" value="[% emailpro %]" onclick="this.value=''" />
668 <input type="text" id="emailpro" name="emailpro" size="45" value="[% emailpro %]" />
670 [% IF ( mandatoryemailpro ) %]<span class="required">Required</span>[% END %]
675 [% IF ( mandatoryfax ) %]
676 <label for="fax" class="required">
681 [% IF ( opduplicate ) %]
682 <input type="text" id="fax" name="fax" value="[% fax %]" onclick="this.value=''" />
684 <input type="text" id="fax" name="fax" value="[% fax %]" />
686 [% IF ( mandatoryfax ) %]<span class="required">Required</span>[% END %]
691 [%END # hide fieldset %]
693 <!-- ************************ STEP_1 *********************** -->
697 [% UNLESS noB_address && noB_address2 && noB_city && noB_zipcode && noB_state && noB_country &&nocontactnote && noB_phone && noB_email %]
698 <fieldset class="rows" id="memberentry_address">
699 <legend id="alt_address_lgd">Alternate address</legend><ol>
700 [% UNLESS noB_address %]
702 [% IF ( mandatoryB_address ) %]
703 <label for="B_address" class="required">
705 <label for="B_address">
708 [% IF ( opduplicate ) %]
709 <input type="text" id="B_address" name="B_address" size="40" value="[% B_address %]" onclick="this.value=''" />
711 <input type="text" id="B_address" name="B_address" size="40" value="[% B_address %]" />
713 [% IF ( mandatoryB_address ) %]<span class="required">Required</span>[% END %]
716 [% UNLESS noB_address2 %]
718 [% IF ( mandatoryB_address2 ) %]
719 <label for="B_address2" class="required">
721 <label for="B_address2">
724 [% IF ( opduplicate ) %]
725 <input type="text" id="B_address2" name="B_address2" size="40" value="[% B_address2 %]" onclick="this.value=''" />
727 <input type="text" id="B_address2" name="B_address2" size="40" value="[% B_address2 %]" />
729 [% IF ( mandatoryB_address2 ) %]<span class="required">Required</span>[% END %]
732 [% UNLESS noB_city %]
734 [% IF ( mandatoryB_city ) %]
735 <label for="B_city" class="required" >
740 <input type="text" id="B_city" name="B_city" size="20" value="[% B_city %]" />
741 [% IF ( mandatoryB_city ) %]<span class="required">Required</span>[% END %]
744 [% UNLESS noB_state %]
746 [% IF ( mandatoryB_state ) %]
747 <label for="B_state" class="required" >
749 <label for="B_state">
752 <input type="text" id="B_state" name="B_state" size="20" value="[% B_state %]" />
753 [% IF ( mandatoryB_state ) %]<span class="required">Required</span>[% END %]
756 [% UNLESS noB_zipcode %]
758 [% IF ( mandatoryB_zipcode ) %]
759 <label for="B_zipcode" class="required">
761 <label for="B_zipcode">
763 Zip/Postal code: </label>
764 [% IF ( opduplicate ) %]
765 <input type="text" id="B_zipcode" name="B_zipcode" maxlength="10" size="10" value="[% B_zipcode %]" onclick="this.value=''" />
767 <input type="text" id="B_zipcode" name="B_zipcode" maxlength="10" size="10" value="[% B_zipcode %]" />
769 [% IF ( mandatoryB_zipcode ) %]<span class="required">Required</span>[% END %]
772 [% UNLESS noB_country %]
774 [% IF ( mandatoryB_country ) %]
775 <label for="B_country" class="required">
777 <label for="B_country">
780 [% IF ( opduplicate ) %]
781 <input type="text" id="B_country" name="B_country" size="20" value="[% B_country %]" onclick="this.value=''" />
783 <input type="text" id="B_country" name="B_country" size="20" value="[% B_country %]" />
785 [% IF ( mandatoryB_country ) %]<span class="required">Required</span>[% END %]
788 [% UNLESS noB_phone %]
790 [% IF ( mandatoryB_phone ) %]
791 <label for="B_phone" class="required">
793 <label for="B_phone">
796 [% IF ( opduplicate ) %]
797 <input type="text" id="B_phone" name="B_phone" value="[% B_phone %]" onclick="this.value=''" />
799 <input type="text" id="B_phone" name="B_phone" value="[% B_phone %]" />
801 [% IF ( mandatoryB_phone ) %]<span class="required">Required</span>[% END %]
804 [% UNLESS noB_email %]
806 [% IF ( mandatoryB_email ) %]
807 <label for="B_email" class="required">
809 <label for="B_email">
812 [% IF ( opduplicate ) %]
813 <input type="text" id="B_email" name="B_email" size="45" value="[% B_email %]" onclick="this.value=''" />
815 <input type="text" id="B_email" name="B_email" size="45" value="[% B_email %]" />
817 [% IF ( mandatoryB_email ) %]<span class="required">Required</span>[% END %] </li>
819 [% UNLESS nocontactnote %]
821 [% IF ( mandatorycontactnote ) %]
822 <label for="contactnote" class="required">
824 <label for="contactnote">
826 Contact note: </label>
827 <textarea id="contactnote" name="contactnote" cols="40" rows="2">[% contactnote %]</textarea>
828 [% IF ( mandatorycontactnote ) %]<span class="required">Required</span>[% END %]
833 [% END # UNLESS noB_address && noB_city && noB_state && noB_phone && noB_email %]
836 [% UNLESS noaltcontactsurname && noaltcontactfirstname && noaltcontactaddress1 && noaltcontactaddress2 && noaltcontactaddress3 && noaltcontactstate && noaltcontactzipcode && noaltcontactcountry && noaltcontactphone %]
837 <fieldset class="rows" id="memberentry_altaddress">
838 <legend id="alt_contact_lgd">Alternate contact</legend><ol>
839 [% UNLESS noaltcontactsurname %]
841 [% IF ( mandatoryaltcontactsurname ) %]
842 <label for="altcontactsurname" class="required">
844 <label for="altcontactsurname">
847 [% IF ( opduplicate ) %]
848 <input type="text" name="altcontactsurname" id="altcontactsurname" value="[% altcontactsurname %]" onclick="this.value=''" />
850 <input type="text" name="altcontactsurname" id="altcontactsurname" value="[% altcontactsurname %]" />
852 [% IF ( mandatoryaltcontactsurname ) %]<span class="required">Required</span>[% END %]
855 [% UNLESS noaltcontactfirstname %]
857 [% IF ( mandatoryaltcontactfirstname ) %]
858 <label for="altcontactfirstname" class="required">
860 <label for="altcontactfirstname">
863 [% IF ( opduplicate ) %]
864 <input type="text" name="altcontactfirstname" id="altcontactfirstname" value="[% altcontactfirstname %]" onclick="this.value=''" />
866 <input type="text" name="altcontactfirstname" id="altcontactfirstname" value="[% altcontactfirstname %]" />
868 [% IF ( mandatoryaltcontactfirstname ) %]<span class="required">Required</span>[% END %]
871 [% UNLESS noaltcontactaddress1 %]
873 [% IF ( mandatoryaltcontactaddress1 ) %]
874 <label for="altcontactaddress1" class="required">
876 <label for="altcontactaddress1">
879 [% IF ( opduplicate ) %]
880 <input type="text" name="altcontactaddress1" id="altcontactaddress1" value="[% altcontactaddress1 %]" onclick="this.value=''" size="40" />
882 <input type="text" name="altcontactaddress1" id="altcontactaddress1" value="[% altcontactaddress1 %]" size="40" />
884 [% IF ( mandatoryaltcontactaddress1 ) %]<span class="required">Required</span>[% END %]
887 [% UNLESS noaltcontactaddress2 %]
889 [% IF ( mandatoryaltcontactaddress2 ) %]
890 <label for="altcontactaddress2" class="required">
892 <label for="altcontactaddress2">
895 [% IF ( opduplicate ) %]
896 <input type="text" name="altcontactaddress2" id="altcontactaddress2" value="[% altcontactaddress2 %]" onclick="this.value=''" size="40" />
898 <input type="text" name="altcontactaddress2" id="altcontactaddress2" value="[% altcontactaddress2 %]" size="40" />
900 [% IF ( mandatoryaltcontactaddress2 ) %]<span class="required">Required</span>[% END %]
903 [% UNLESS noaltcontactaddress3 %]
905 [% IF ( mandatoryaltcontactaddress3 ) %]
906 <label for="altcontactaddress3" class="required">
908 <label for="altcontactaddress3">
911 <input type="text" name="altcontactaddress3" id="altcontactaddress3" value="[% altcontactaddress3 %]" size="20" />
912 [% IF ( mandatoryaltcontactaddress3 ) %]<span class="required">Required</span>[% END %]
915 [% UNLESS noaltcontactstate %]
917 [% IF ( mandatoryaltcontactstate ) %]
918 <label for="altcontactstate" class="required">
920 <label for="altcontactstate">
923 <input type="text" name="altcontactstate" id="altcontactstate" value="[% altcontactstate %]" size="20" />
924 [% IF ( mandatoryaltcontactstate ) %]<span class="required">Required</span>[% END %]
927 [% UNLESS noaltcontactzipcode %]
929 [% IF ( mandatoryaltcontactzipcode ) %]
930 <label for="altcontactzipcode" class="required">
932 <label for="altcontactzipcode">
934 Zip/Postal code:</label>
935 [% IF ( opduplicate ) %]
936 <input type="text" name="altcontactzipcode" id="altcontactzipcode" value="[% altcontactzipcode %]" onclick="this.value=''" size="5" />
938 <input type="text" name="altcontactzipcode" id="altcontactzipcode" value="[% altcontactzipcode %]" size="5" />
940 [% IF ( mandatoryaltcontactzipcode ) %]<span class="required">Required</span>[% END %]
943 [% UNLESS noaltcontactcountry %]
945 [% IF ( mandatoryaltcontactcountry ) %]
946 <label for="altcontactcountry" class="required">
948 <label for="altcontactcountry">
951 [% IF ( opduplicate ) %]
952 <input type="text" name="altcontactcountry" id="altcontactcountry" value="[% altcontactcountry %]" onclick="this.value=''" size="20" />
954 <input type="text" name="altcontactcountry" id="altcontactcountry" value="[% altcontactcountry %]" size="20" />
956 [% IF ( mandatoryaltcontactcountry ) %]<span class="required">Required</span>[% END %]
959 [% UNLESS noaltcontactphone %]
961 [% IF ( mandatoryaltcontactphone ) %]
962 <label for="altcontactphone" class="required">
964 <label for="altcontactphone">
967 [% IF ( opduplicate ) %]
968 <input type="text" name="altcontactphone" id="altcontactphone" value="[% altcontactphone %]" onclick="this.value=''" />
970 <input type="text" name="altcontactphone" id="altcontactphone" value="[% altcontactphone %]" />
972 [% IF ( mandatoryaltcontactphone ) %]<span class="required">Required</span>[% END %]
977 [% END # UNLESS noaltcontactsurname && noaltcontactfirstname etc %]
982 <fieldset class="rows" id="memberentry_library_management">
983 <legend id="library_management_lgd">Library management</legend><ol>
984 [% UNLESS nocardnumber %]
985 <li> [% IF ( mandatorycardnumber ) %]
986 <label for="cardnumber" class="required">
988 <label for="cardnumber">
990 Card number: </label>
991 <input type="text" id="cardnumber" name="cardnumber" size="20" value="[% cardnumber %]" />
992 [% IF ( mandatorycardnumber ) %]<span class="required">Required</span>[% END %]</li>
994 [% UNLESS nobranchcode %]
996 [% IF ( mandatorybranchcode ) %]
997 <label for="branchcode" class="required">
999 <label for="branchcode">
1003 [% IF ( mandatorybranchcode ) %]<span class="required">Required</span>[% END %]
1007 <label for="categorycode">Category: </label>
1008 <select id="categorycode" name="categorycode" onchange="update_category_code(this);">
1009 [% FOREACH typeloo IN typeloop %]
1010 [% FOREACH categoryloo IN typeloo.categoryloop %]
1011 [% IF ( loop.first ) %]
1012 [% IF ( typeloo.typename_C ) %]<optgroup label="Child" value="C">[% END %]
1013 [% IF ( typeloo.typename_A ) %]<optgroup label="Adult" value="A">[% END %]
1014 [% IF ( typeloo.typename_S ) %]<optgroup label="Staff" value="S">[% END %]
1015 [% IF ( typeloo.typename_I ) %]<optgroup label="Organization" value="I">[% END %]
1016 [% IF ( typeloo.typename_P ) %]<optgroup label="Professional" value="P">[% END %]
1017 [% IF ( typeloo.typename_X ) %]<optgroup label="Statistical" value="X">[% END %]
1019 [% IF ( categoryloo.categorycodeselected ) %]
1020 <option value="[% categoryloo.categorycode %]" selected="selected" data-typename="[% typeloo.typename %]">[% categoryloo.categoryname %]</option>
1022 <option value="[% categoryloo.categorycode %]" data-typename="[% typeloo.typename %]">[% categoryloo.categoryname %]</option>
1024 [% IF ( loop.last ) %]
1031 [% UNLESS nosort1 %]
1033 [% IF ( mandatorysort1 ) %]
1034 <label for="sort1" class="required">
1039 [% IF ( CGIsort1 ) %]
1042 <input type="text" id="sort1" name="sort1" size="20" value="[% sort1 %]" />
1043 [% IF ( mandatorysort1 ) %]<span class="required">Required</span>[% END %]
1047 [% UNLESS nosort2 %]
1049 [% IF ( mandatorysort2 ) %]
1050 <label for="sort2" class="required">
1055 [% IF ( CGIsort2 ) %]
1058 [% IF ( opduplicate ) %]
1059 <input type="text" id="sort2" name="sort2" size="20" value="[% sort2 %]" onclick="this.value=''" />
1061 <input type="text" id="sort2" name="sort2" size="20" value="[% sort2 %]" />
1063 [% IF ( mandatorysort2 ) %]<span class="required">Required</span>[% END %]
1069 [% UNLESS nodateenrolled && noopacnote && noborrowernotes %]
1070 <fieldset class="rows" id="memberentry_subscription">
1071 <legend id="library_setup_lgd">Library set-up</legend><ol>
1072 [% UNLESS nodateenrolled %]
1074 [% IF ( mandatorydateenrolled ) %]
1075 <label for="from" class="required">
1079 Registration date: </label>
1081 <input type="text" id="from" name="dateenrolled" maxlength="10" size="10" onchange="CheckDate(document.form.dateenrolled);check_manip_date('verify');" value="[% dateenrolled %]" class="datepickerfrom" />
1083 <input type="text" id="from" name="dateenrolled" maxlength="10" size="10" value="[% dateenrolled %]" class="datepickerfrom" />
1085 [% IF ( mandatorydateenrolled ) %]<span class="required">Required</span>[% END %]
1086 [% IF ( ERROR_dateenrolled ) %]<span class="required">(Error)</span>[% END %]
1087 <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
1090 [% UNLESS nodateexpiry %]
1093 <li style="display:none">
1095 [% IF ( mandatorydateexpiry ) %]
1096 <label for="to" class="required">
1100 Expiry date (leave blank for auto calc) </label>
1102 [% UNLESS ( opadd ) %]
1103 <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" onchange="CheckDate(document.form.dateexpiry);check_manip_date('verify');" value="[% dateexpiry %]" class="datepickerto" />
1105 <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" onchange="CheckDate(document.form.dateexpiry);check_manip_date('verify');" class="datepickerto" />
1108 [% UNLESS ( opadd ) %]
1109 <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" value="[% dateexpiry %]" class="datepickerto" />
1111 <input type="text" id="to" name="dateexpiry" maxlength="10" size="10" class="datepickerto" />
1114 [% IF ( mandatorydateexpiry ) %]<span class="required">Required</span>[% END %]
1115 [% IF ( ERROR_dateexpiry ) %]<span class="required">(Error)</span>[% END %]
1116 <div class="hint">[% INCLUDE 'date-format.inc' %]</div>
1118 [% UNLESS noopacnote %]
1120 [% IF ( mandatoryopacnote ) %]
1121 <label for="opacnote" class="required">
1123 <label for="opacnote">
1126 <textarea id="opacnote" name="opacnote" cols="55" rows="5">[% opacnote %]</textarea>
1127 <div class="hint">This message appears on this patron's user page in the OPAC</div>
1128 [% IF ( mandatoryopacnote ) %]<span class="required">Required</span>[% END %]
1131 [% UNLESS noborrowernotes %]
1133 [% IF ( mandatoryborrowernotes ) %]
1134 <label for="borrowernotes" class="required">
1136 <label for="borrowernotes">
1138 Circulation note: </label>
1139 <textarea id="borrowernotes" name="borrowernotes" cols="55" rows="5">[% borrowernotes %]</textarea>
1140 <div class="hint">This message displays when checking out to this patron</div>
1141 [% IF ( mandatoryborrowernotes ) %]<span class="required">Required</span>[% END %]
1146 [% END # hide fieldset %]
1148 [% UNLESS nouserid && nopassword %]
1149 <fieldset class="rows" id="memberentry_userid">
1150 <legend id="opac_staff_login_lgd">OPAC/Staff login</legend><ol>
1151 [% UNLESS nouserid %]
1153 [% IF ( mandatoryuserid ) %]
1154 <label for="userid" class="required">
1156 <label for="userid">
1160 [% IF ( NoUpdateLogin ) %]
1161 [% IF ( opduplicate ) %]
1162 <input type="text" id="userid" name="userid" size="20" disabled="disabled" />
1164 <input type="text" id="userid" name="userid" size="20" disabled="disabled" value="[% userid %]" />
1167 [% IF ( opduplicate ) %]
1168 <input type="text" id="userid" name="userid" size="20" value="" />
1170 <input type="text" id="userid" name="userid" size="20" value="[% userid %]" />
1174 [% IF ( mandatoryuserid ) %]<span class="required">Required</span>[% END %]
1177 [% UNLESS nopassword %]
1179 [% IF ( mandatorypassword ) %]
1180 <label for="password" class="required">
1182 <label for="password">
1186 [% IF ( NoUpdateLogin ) %]
1187 [% IF ( opduplicate ) %]
1188 <input type="password" id="password" name="password" size="20" disabled="disabled" />
1190 <input type="password" id="password" name="password" size="20" disabled="disabled" value="[% password %]" />
1193 [% IF ( opduplicate ) %]
1194 <input type="password" id="password" name="password" size="20" />
1196 <input type="password" id="password" name="password" size="20" value="[% password %]" />
1200 [% IF ( password ) %]
1201 [% IF ( NoUpdateLogin ) %]
1202 <input type="password" id="password" name="password" size="20" disabled="disabled" value="****" />
1204 [% IF ( opduplicate ) %]
1205 <input type="password" id="password" name="password" size="20" />
1207 <input type="password" id="password" name="password" size="20" value="****" />
1211 [% IF ( NoUpdateLogin ) %]
1212 <input type="password" id="password" name="password" size="20" disabled="disabled" value="" />
1214 <input type="password" id="password" name="password" size="20" value="" />
1218 [% IF ( mandatorypassword ) %]<span class="required">Required</span>[% END %][% IF ( ERROR_short_password ) %]<span class="required">Password is too short</span>[% END %]
1219 [% IF ( minPasswordLength ) %]<div class="hint">Minimum password length: [% minPasswordLength %]</div>[% END %]
1222 [% IF ( mandatorypassword ) %]
1223 <label for="password2" class="required">
1225 <label for="password2">
1227 Confirm password: </label>
1229 [% IF ( NoUpdateLogin ) %]
1230 [% IF ( opduplicate ) %]
1231 <input type="password" id="password2" name="password2" size="20" disabled="disabled" />
1233 <input type="password" id="password2" name="password2" size="20" disabled="disabled" value="[% password %]" />
1236 [% IF ( opduplicate ) %]
1237 <input type="password" id="password2" name="password2" size="20" />
1239 <input type="password" id="password2" name="password2" size="20" value="[% password %]" />
1243 [% IF ( password ) %]
1244 [% IF ( NoUpdateLogin ) %]
1245 <input type="password" id="password2" name="password2" size="20" disabled="disabled" value="****" />
1247 [% IF ( opduplicate ) %]
1248 <input type="password" id="password2" name="password2" size="20" />
1250 <input type="password" id="password2" name="password2" size="20" value="****" />
1254 [% IF ( NoUpdateLogin ) %]
1255 <input type="password" id="password2" name="password2" size="20" disabled="disabled" value="" />
1257 <input type="password" id="password2" name="password2" size="20" value="" />
1261 [% IF ( mandatorypassword ) %]<span class="required">Required</span>[% END %][% IF ( ERROR_password_mismatch ) %]<span class="required">Passwords do not match</span>[% END %]
1265 [% END # hide fieldset %][% END %]
1266 <!--this zones are not necessary in modif mode -->
1267 [% UNLESS ( opadd ) %]
1268 <fieldset class="rows">
1269 <legend>Patron account flags</legend>
1271 [% FOREACH flagloo IN flagloop %]
1272 <li><label class="radio" for="yes[% flagloo.name %]">
1273 [% IF ( flagloo.key == 'gonenoaddress' ) %]Gone no address:[% END %]
1274 [% IF ( flagloo.key == 'debarred' ) %]Restricted:[% END %]
1275 [% IF ( flagloo.key == 'lost' ) %]Lost card:[% END %]
1277 <label for="yes[% flagloo.name %]">Yes </label>
1278 [% IF ( flagloo.yes ) %]
1279 <input type="radio" id="yes[% flagloo.name %]" name="[% flagloo.name %]" value="1" checked="checked" />
1281 <input type="radio" id="yes[% flagloo.name %]" name="[% flagloo.name %]" value="1" />
1283 <label for="no[% flagloo.name %]">No </label>
1284 [% IF ( flagloo.no ) %]
1285 <input type="radio" id="no[% flagloo.name %]" name="[% flagloo.name %]" value="0" checked="checked"/>
1287 <input type="radio" id="no[% flagloo.name %]" name="[% flagloo.name %]" value="0" />
1293 <label for="yesdebarred" class="radio">Restricted: </label>
1294 [% IF ( debarred ) %]
1295 <label for="yesdebarred">Yes </label>
1296 <input type="radio" id="yesdebarred" name="debarred" value="1" checked="checked"/>
1297 <label for="nodebarred">No </label>
1298 <input type="radio" id="nodebarred" name="debarred" value="0"/>
1300 <label for="yesdebarred">Yes </label>
1301 <input type="radio" id="yesdebarred" name="debarred" value="1" />
1302 <label for="nodebarred">No </label>
1303 <input type="radio" id="nodebarred" name="debarred" value="0" checked="checked"/>
1306 <span id="debarreduntil"><label for="datedebarred" class="inline">Until:</label>
1307 [% IF opduplicate %]
1308 <input type="text" name="datedebarred" id="datedebarred" class="debarred datepicker" value="[% datedebarred %]" onclick="this.value=''" />
1310 <input type="text" name="datedebarred" id="datedebarred" class="debarred datepicker" value="[% datedebarred %]" />
1312 <span class="hint">(optional)</span> </span>
1315 <label for="debarredcomment" class="radio">Comment:</label>
1316 [% IF ( opduplicate ) %]
1317 <textarea id="debarredcomment" name="debarredcomment" cols="55" rows="3" onclick="this.value=''">[% debarredcomment %]</textarea>
1319 <textarea id="debarredcomment" name="debarredcomment" cols="55" rows="3">[% debarredcomment %]</textarea>
1330 [% IF ( step_4 ) %][% IF ( ExtendedPatronAttributes ) %][% UNLESS ( no_patron_attribute_types ) %]
1331 <fieldset class="rows" id="memberentry_patron_attributes">
1332 <input type="hidden" name="setting_extended_patron_attributes" value="1" />
1333 <legend>Additional attributes and identifiers</legend>
1334 [% FOREACH pa_loo IN patron_attributes %]
1335 [% IF pa_loo.class %]
1336 <fieldset id="aai_[% pa_loo.class %]">
1337 <legend>[% pa_loo.lib %]</legend>
1339 <ol class="attributes_table">
1340 [% FOREACH patron_attribute IN pa_loo.items %]
1341 <li data-category_code="[% patron_attribute.category_code %]">
1342 <label for="[% patron_attribute.form_id %]">[% patron_attribute.description %]: </label>
1343 <input type="hidden" id="[% patron_attribute.form_id %]_code" name="[% patron_attribute.form_id %]_code" value="[% patron_attribute.code |html %]" />
1344 [% IF ( patron_attribute.use_dropdown ) %]
1345 <select id="[% patron_attribute.form_id %]" name="[% patron_attribute.form_id %]">
1347 [% FOREACH auth_val_loo IN patron_attribute.auth_val_loop %]
1348 [% IF ( auth_val_loo.selected ) %]
1349 <option value="[% auth_val_loo.authorised_value %]" selected="selected">
1350 [% auth_val_loo.lib %]
1353 <option value="[% auth_val_loo.authorised_value %]" >
1354 [% auth_val_loo.lib %]
1360 [% IF ( opduplicate ) %]
1361 <textarea rows="2" cols="30" id="[% patron_attribute.form_id %]" name="[% patron_attribute.form_id %]" onclick="this.value=''" >[% patron_attribute.value %]</textarea>
1363 <textarea rows="2" cols="30" id="[% patron_attribute.form_id %]" name="[% patron_attribute.form_id %]">[% patron_attribute.value %]</textarea>
1366 [% IF ( patron_attribute.password_allowed ) %]
1367 (<label class="yesno" for="[% patron_attribute.form_id %]_password">Password:</label> <input type="password" maxlength="64" value="[% patron_attribute.password %]"
1368 id="[% patron_attribute.form_id %]_password" name="[% patron_attribute.form_id %]_password" />)
1370 <a href="#" class="clear-field" onclick="clear_entry(this); return false;">Clear</a>
1371 [% IF ( patron_attribute.repeatable ) %]
1372 <a href="#" class="clone-field" onclick="clone_entry(this); return false;">New</a>
1377 [% IF pa_loo.class %]</fieldset>[% END %]
1380 [% END %][% END %][% END %]
1382 [% IF ( step_5 ) %][% IF ( EnhancedMessagingPreferences ) %]
1383 <fieldset class="rows" id="memberentry_messaging_prefs">
1385 <!-- handle changing prefs if creating new patron and changing
1388 <script language="javascript" type="text/javascript">//<![CDATA[
1389 $(document).ready(function(){
1390 var message_prefs_dirty = false;
1391 $('#memberentry_messaging_prefs > *').change(function() {
1392 message_prefs_dirty = true;
1394 $('#categorycode').change(function() {
1395 var categorycode = $(this).val();
1396 if (message_prefs_dirty) {
1397 if (!confirm('Change messaging preferences to default for this category?')) {
1401 $.getJSON('/cgi-bin/koha/members/default_messageprefs.pl?categorycode=' + categorycode,
1403 $.each(data.messaging_preferences, function(i, item) {
1404 var attrid = item.message_attribute_id;
1405 var transports = ['email', 'rss', 'sms'];
1406 $.each(transports, function(j, transport) {
1407 if (item['transport-' + transport] != ' ') {
1408 $('#' + transport + attrid).attr('checked', item['transport-' + transport]);
1410 $('#' + transport + attrid).removeAttr('checked');
1413 if (item.digest && item.digest != ' ') {
1414 $('#digest' + attrid).attr('checked', item.digest);
1416 $('#digest' + attrid).removeAttr('checked');
1418 if (item.takes_days == '1') {
1419 $('[name=' + attrid + '-DAYS]').val('' + item.days_in_advance);
1422 message_prefs_dirty = false;
1430 <input type="hidden" name="setting_messaging_prefs" value="1" />
1431 <legend id="patron_messaging_prefs_lgd">Patron messaging preferences</legend>
1433 <p>If no preferences are selected, the default preferences for the category chosen will be applied on save, otherwise your selection here is saved</p>
1435 [% INCLUDE 'messaging-preference-form.inc' %]
1436 [% IF ( SMSSendDriver ) %]
1437 <p><label for="SMSnumber">SMS number:</label>
1438 [% IF ( opduplicate ) %]
1439 <input type="text" id="SMSnumber" name="SMSnumber" value="[% SMSnumber %]" onclick="this.value=''" />
1441 <input type="text" id="SMSnumber" name="SMSnumber" value="[% SMSnumber %]" />
1448 [% UNLESS ( check_member ) %]
1449 <fieldset class="action">
1450 <input type="submit" name="save" onclick="return check_form_borrowers();" value="Save" />
1452 <a class="cancel" href="/cgi-bin/koha/members/member.pl">Cancel</a>
1454 <a class="cancel" href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% borrowernumber %]">Cancel</a>
1463 [% UNLESS ( opadd ) %]<div class="yui-b">
1464 [% INCLUDE 'members-menu.inc' %]
1468 [% INCLUDE 'intranet-bottom.inc' %]