6 [% USE AuthorisedValues %]
7 [% USE TablesSettings %]
9 [% PROCESS 'member-display-address-style.inc' %]
10 [% PROCESS 'member-display-alt-address-style.inc' %]
11 [% SET footerjs = 1 %]
12 [% INCLUDE 'doc-head-open.inc' %]
13 [% Asset.css("lib/jquery/plugins/rowGroup/stylesheets/rowGroup.dataTables.min.css") | $raw %]
15 [% UNLESS blocking_error %]
16 Patron details for [% INCLUDE 'patron-title.inc' no_html = 1 %]
17 [% END %] › Patrons › Koha
19 [% INCLUDE 'doc-head-close.inc' %]
22 <body id="pat_moremember" class="pat">
23 [% INCLUDE 'header.inc' %]
24 [% INCLUDE 'patron-search.inc' %]
26 <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
29 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
32 [% IF blocking_error %]
34 <a href="#" aria-current="page">
40 <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
43 <a href="#" aria-current="page">
44 Patron details for [% INCLUDE 'patron-title.inc' %]
51 <div class="main container-fluid">
53 <div class="col-sm-10 col-sm-push-2">
57 [% INCLUDE 'members-toolbar.inc' %]
60 <div class="dialog alert">
61 [% IF ( error == 'CANT_DELETE_STAFF' ) %]
62 <h3>Unable to delete staff user</h3>
63 <p>Insufficient privileges.</p>
65 [% IF ( error == 'CANT_DELETE_YOURSELF' ) %]
66 <h3>Not allowed to delete own account</h3>
67 <p>Deleting your own account would lock you out of Koha.</p>
69 [% IF ( error == 'CANT_DELETE_OTHERLIBRARY' ) %]
70 <h3>Unable to delete patrons from other libraries with current settings</h3>
71 <p>Insufficient privileges.</p>
73 [% IF ( error == 'CANT_DELETE_ANONYMOUS_PATRON' ) %]
74 <h3>Unable to delete patron that is set as AnonymousPatron</h3>
75 <p>This patron cannot be deleted while set as AnonymousPatron in the system preferences.</p>
77 [% IF ( error == 'CANT_DELETE' ) %]
78 <h3>Unable to delete patron</h3>
79 <p>Insufficient privileges.</p>
86 [% IF ( was_renewed ) %]
87 <div class="dialog message">
88 Patron's account has been renewed until [% patron.dateexpiry | $KohaDates %]
92 [% IF fines || age_limitations %]
93 <div id="circmessages" class="circmessage attention">
96 [% INCLUDE 'blocked-fines.inc' %]
98 [% IF age_limitations %]
99 [% INCLUDE 'category-out-of-age-limit.inc' %]
105 [% IF ( patron_messages ) %]
106 <div id="messages" class="circmessage">
109 [% FOREACH patron_message IN patron_messages %]
111 [% IF(patron_message.message_type == "L") %]
112 <span class="circ-hlt">
116 [% patron_message.message_date | $KohaDates %]
117 [% Branches.GetName( patron_message.branchcode ) | html %]
118 [% IF patron_message.manager_id %]
119 ( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron_message.manager_id | uri %]">[% patron_message.get_column('manager_firstname') | html %] [% patron_message.get_column('manager_surname') | html %]</a> )
121 <em>"[% patron_message.message | html %]"</em>
123 [% IF patron_message.branchcode == patron.branchcode OR Koha.Preference('AllowAllMessageDeletion') %]
124 <a class="btn btn-link" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% patron_message.message_id | html %]&borrowernumber=[% patron_message.borrowernumber | html %]&from=moremember" onclick='return confirm(_("Are you sure you want to delete this message? This cannot be undone."));'><i class="fa fa-trash"></i> Delete</a>
129 <a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a>
133 [% IF ( patron.borrowernotes ) %]
134 <div id="circnotes" class="circmessage">
137 <span class="circ-hlt">
138 [% patron.borrowernotes | $raw | html_line_break %]
145 <div id="circmessages" class="circmessage attention">
147 [% IF ( patron.is_debarred ) %]
148 <li class="blocker">Patron's account is restricted
149 [% IF ( userdebarreddate ) %]
150 until [% userdebarreddate | $KohaDates %]
153 [% IF ( patron.debarredcomment ) %]
154 with the explanation: <em>
155 [% IF patron.debarredcomment.search('OVERDUES_PROCESS') %]
156 Restriction added by overdues process [% patron.debarredcomment.remove('OVERDUES_PROCESS ') | html_line_break %]
158 [% patron.debarredcomment | html_line_break %]
162 <a href="#reldebarments" id="view_restrictions">View restrictions</a>
165 [% IF ( patron.gonenoaddress ) %]
166 <li class="blocker">Patron's address is in doubt.</li>
168 [% IF ( patron.lost ) %]
169 <li class="blocker">Patron's card has been reported lost.</li>
171 [% IF ( patron.is_expired ) %]
173 <span class="circ-hlt">Expiration:</span>
174 [% IF ( patron.dateexpiry ) %]
175 Patron's card expired on [% patron.dateexpiry | $KohaDates %].
177 Patron's card has expired.
179 <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a>
181 [% ELSIF ( patron.is_going_to_expire ) %]
183 <span class="circ-hlt">Expiration:</span> Patron's card will expire soon.
184 Patron's card expires on [% patron.dateexpiry | $KohaDates %]
185 <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a>
195 [% patron.title | html %] [% patron.firstname | html %]
197 [% patron.surname | html %] ([% patron.cardnumber | html %])
199 <div class="col-sm-6">
201 <div id="patron-information" class="patroninfo-section">
203 <div class="patroninfo-heading">
204 <h3>Contact information</h3>
205 [% IF ( guarantor.borrowernumber ) %]
206 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=1&guarantorid=[% guarantor.borrowernumber | html %]"><i class="fa fa-pencil"></i> Edit</a>
208 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=1"><i class="fa fa-pencil"></i> Edit</a>
212 [% IF ( patron.othernames ) %]“[% patron.othernames | html %]”[% END %]
214 <div class="address">
216 [% PROCESS 'display-address-style' %]
222 [% IF ( patron.phone ) %]
224 <span class="label">Primary phone: </span>
225 <a href="tel:[% patron.phone | uri %]">[% patron.phone | html %]</a>
228 [% IF ( patron.phonepro ) %]
230 <span class="label">Secondary phone: </span>
231 <a href="tel:[% patron.phonepro | uri %]">[% patron.phonepro | html %]</a>
234 [% IF ( patron.mobile ) %]
236 <span class="label">Other phone: </span>
237 <a href="tel:[% patron.mobile | uri %]">[% patron.mobile | html %]</a>
240 [% IF ( patron.fax ) %]
242 <span class="label">Fax: </span>
243 [% patron.fax | html %]
246 [% IF ( patron.email ) %]
248 <span class="label">Primary email:</span>
249 <a title="[% patron.email | html %]" href="mailto:[% patron.email | url %]">[% patron.email | html %]</a>
252 [% IF ( patron.emailpro ) %]
254 <span class="label">Secondary email: </span>
255 <a title="[% patron.emailpro | html %]" href="mailto:[% patron.emailpro | url %]">[% patron.emailpro | html %]</a>
259 [% IF ( patron.initials ) %]
261 <span class="label">Initials: </span>
262 [% patron.initials | html %]
265 [% IF ( patron.dateofbirth ) %]
267 <span class="label">Date of birth:</span>
268 [% INCLUDE 'patron-age.inc' %]
271 [% IF ( patron.sex ) %]
273 <span class="label">Gender:</span>
274 [% IF ( patron.sex == 'F' ) %]<span class="patronsex-female">Female</span>[% ELSIF ( patron.sex == 'M' ) %]<span class="patronsex-male">Male</span>[% ELSIF (patron.sex == 'O' ) %]<span class="patronsex-other">Other</span>[% ELSE %][% patron.sex | html %][% END %]
278 <li id="patron-privacyguarantor">
279 <span class="label">Show checkouts to guarantor</span>
280 [% IF patron.privacy_guarantor_checkouts %]
288 <span class="label">Show fines to guarantor</span>
289 [% IF patron.privacy_guarantor_fines %]
298 <span class="label">Guarantees:</span>
300 [% FOREACH guarantee IN guarantees %]
301 [% IF logged_in_user.can_see_patron_infos( guarantee ) %]
302 <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantee.borrowernumber | uri %]">[% guarantee.firstname | html %] [% guarantee.surname | html %]</a></li>
304 <li>[% guarantee.firstname | html %] [% guarantee.surname | html %]</li>
309 [% ELSIF guarantor_relationships.count > 0 OR ( patron.contactfirstname OR patron.contactname ) %]
311 [% IF guarantor_relationships.count > 1 OR guarantor_relationships.count == 0 AND ( patron.contactfirstname OR patron.contactname ) %]
312 <span class="label">Guarantors:</span>
314 <span class="label">Guarantor:</span>
317 [% FOREACH gr IN guarantor_relationships %]
318 [% SET guarantor = gr.guarantor %]
319 [% IF logged_in_user.can_see_patron_infos( guarantor ) %]
320 <li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantor.id | uri %]">[% guarantor.firstname | html %] [% guarantor.surname | html %][% IF gr.relationship %] ([% gr.relationship | html %])[% END %]</a></li>
323 [% IF patron.contactfirstname OR patron.contactname %]
324 <li>[% patron.contactfirstname | html %] [% patron.contactname | html %][% IF patron.relationship %] ([% patron.relationship | html %])[% END %]</li>
330 </div> [% # /div.rows %]
331 </div> [% # /div#patron-information %]
333 [% IF ( patronimages ) %]
334 [% IF ( CAN_user_tools_batch_upload_patron_images ) %]
335 <div id="manage-patron-image" class="patroninfo-section">
336 [% IF ( patron.image ) %]
337 <div class="patroninfo-heading">
338 <h3>Manage patron image</h3>
339 <a class="btn btn-default btn-xs" id="show-picture-upload" href="#"><i class="fa fa-pencil"></i> Edit</a>
342 <div class="patroninfo-heading">
343 <h3>Upload patron image</h3>
344 <a class="btn btn-default btn-xs" id="show-picture-upload" href="#"><i class="fa fa-plus"></i> Add</a>
347 <form method="post" id="picture-upload" style="display:none;" action="/cgi-bin/koha/tools/picture-upload.pl" enctype="multipart/form-data">
348 [% IF ( patron.image ) %]
349 <div class="hint">To update the image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], select a new image file and click 'Upload.' <br />Click the 'Delete' button to remove the current image.</div>
351 <div class="hint">[% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %] does not currently have an image available. To import an image for [% patron.title | html %] [% patron.firstname | html %] [% patron.surname | html %], enter the name of an image file to upload.</div>
353 <p>Only PNG, GIF, JPEG, XPM formats are supported.</p>
354 <label for="uploadfile">Select the file to upload: </label>
355 <input type="file" id="uploadfile" name="uploadfile" required="required" />
357 <input type="hidden" name="csrf_token" value="[% csrf_token | html %]" />
358 <input type="hidden" id="image" name="filetype" value="image" />
359 <input type="hidden" id="cardnumber" name="cardnumber" value="[% patron.cardnumber | html %]" />
360 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
361 <button type="submit" class="btn btn-default btn-xs"><i class="fa fa-upload"></i> Upload</button>
362 <input name="op" type="hidden" value="Upload" />
363 [% IF ( patron.image ) %]
364 <a id="delpicture" href="/cgi-bin/koha/tools/picture-upload.pl?op=Delete&borrowernumber=[% patron.borrowernumber | html %]&csrf_token=[% csrf_token | html %]" class="btn btn-default btn-xs delete"><i class="fa fa-trash"></i> Delete</a>
366 <a href="#" id="cancel-picture-upload" class="cancel">Cancel</a>
369 </div> [% # /div#manage-patron-image %]
373 [% IF Koha.Preference('HouseboundModule') %]
374 <div id="houseboundroles" class="patroninfo-section">
375 [% IF ( housebound_role.housebound_chooser == 1 OR housebound_role.housebound_deliverer == 1 ) %]
376 <div class="patroninfo-heading">
377 <h3>Housebound roles</h3>
378 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=7"><i class="fa fa-pencil"></i> Edit</a>
383 <span class="label">Chooser:</span>
384 [% IF ( housebound_role.housebound_chooser == 1 ) %]
391 <span class="label">Deliverer:</span>
392 [% IF ( housebound_role.housebound_deliverer == 1 ) %]
401 <div class="patroninfo-heading">
402 <h3>Housebound roles</h3>
403 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=7"><i class="fa fa-plus"></i> Add</a>
406 </div> [% #/ div#houseboundroles %]
409 [% IF Koha.Preference('ExtendedPatronAttributes') %]
410 [% UNLESS ( no_patron_attribute_types ) %]
411 <div id="patron-extended-attributes" class="patroninfo-section">
412 [% IF ( attributes_loop ) %]
413 <div class="patroninfo-heading">
414 <h3>Additional attributes and identifiers</h3>
415 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=4"><i class="fa fa-pencil"></i> Edit</a>
417 [% FOREACH attribute IN attributes_loop %]
418 [% IF attribute.class %]
419 <div id="aai_[% attribute.class | html %]" class="rows">
421 <div id="aai" class="rows">
423 <h4>[% attribute.lib | html %]</h4>
425 [% FOREACH item IN attribute.items %]
427 <span class="label">[% item.type.description | html %]: </span>
428 [% item.description | html_line_break %]
437 <div class="patroninfo-heading">
438 <h3>Additional attributes and identifiers</h3>
439 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=4"><i class="fa fa-plus"></i> Add</a>
442 </div> [% # /div#patron-extended-attributes %]
446 [% IF ( EnhancedMessagingPreferences ) %]
447 <div id="patron-messaging-prefs" class="patroninfo-section">
448 <div class="patroninfo-heading">
449 <h3>Patron messaging preferences</h3>
450 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=5"><i class="fa fa-pencil"></i> Edit</a>
452 [% INCLUDE 'messaging-preference-form.inc' %]
453 [% IF Koha.Preference('SMSSendDriver') %]
457 <span class="label">SMS number:</span>
458 <a href="sms:[% patron.smsalertnumber | uri %]">[% patron.smsalertnumber | html %]</a>
461 <span class="label">SMS provider:</span>
462 [% patron.sms_provider.name | html %]
467 </div> [% # /div#patron-messaging-prefs %]
470 </div> <!-- /.col-sm-6 -->
472 <div class="col-sm-6">
473 <div id="patron-library-details" class="patroninfo-section">
474 <div class="patroninfo-heading">
476 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=3"><i class="fa fa-pencil"></i> Edit</a>
480 <li id="patron-cardnumber">
481 <span class="label">Card number: </span>
482 [% patron.cardnumber | html %]
484 <li id="patron-borrowernumber">
485 <span class="label">Borrowernumber: </span>
486 [% patron.borrowernumber | html %]
488 <li id="patron-categorydescription">
489 <span class="label">Category: </span>
490 [% patron.category.description | html %] ([% patron.categorycode | html %])
492 <li id="patron-dateenrolled">
493 <span class="label">Registration date: </span>
494 [% patron.dateenrolled | $KohaDates %]
497 [% IF ( patron.date_renewed ) %]
498 <li id="patron-daterenewed">
499 <span class="label">Renewal date: </span>
500 [% patron.date_renewed | $KohaDates %]
504 <li id="patron-expirationdate">
505 <span class="label">Expiration date: </span>
506 [% IF ( was_renewed ) %]
507 <strong class="reregistrinfo">[% patron.dateexpiry | $KohaDates %]</strong>
508 [% ELSIF ( patron.is_expired ) %]
509 <span class="blocker">
510 [% patron.dateexpiry | $KohaDates %]
511 <strong><em>Expired</em></strong>
512 <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a>
514 [% ELSIF ( patron.is_going_to_expire ) %]
515 [% patron.dateexpiry | $KohaDates %]
516 <strong><em>Patron expires soon</em></strong>
517 <a href="/cgi-bin/koha/members/setstatus.pl?borrowernumber=[% patron.borrowernumber | uri %]&reregistration=y">Renew</a> or <a href="/cgi-bin/koha/members/memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]">Edit details</a>
519 [% patron.dateexpiry | $KohaDates %]
522 <li id="patron-branchname">
523 <span class="label">Library: </span>
524 [% Branches.GetName( patron.branchcode ) | html %]
527 [% IF Koha.Preference( 'OPACPrivacy') %]
528 <li id="patron-privacypref">
529 <span class="label">Privacy Pref:</span>
530 [% IF ( patron.privacy == 0 ) %]Forever[% END %]
531 [% IF ( patron.privacy == 1 ) %]Default[% END %]
532 [% IF ( patron.privacy == 2 ) %]Never[% END %]
536 [% IF ( patron.sort1 ) %]
537 <li id="patron-sort1">
538 <span class="label">Sort field 1:</span>
539 [% AuthorisedValues.GetByCode('Bsort1', patron.sort1) | html %]
542 [% IF ( patron.sort2 ) %]
543 <li id="patron-sort2">
544 <span class="label">Sort field 2:</span>
545 [% AuthorisedValues.GetByCode('Bsort2', patron.sort2) | html %]
548 [% UNLESS ( patron.autorenew_checkouts ) %]
549 <li id="patron-autorenew_checkouts">
550 <span class="label">Auto-renewal:</span>
554 <li id="patron-username">
555 <span class="label">Username: </span>
556 [% patron.userid | html %]
558 <li id="patron-password">
559 <span class="label">Password: </span>
560 [% IF ( patron.password ) %]
563 <i class="fa fa-exclamation-circle problem" aria-hidden="true"></i> <a href="/cgi-bin/koha/members/member-password.pl?member=[% patron.borrowernumber | uri %]">Undefined</a>
567 [% IF ( patron.borrowernotes ) %]
568 <li id="patron-borrowernotes">
569 <span class="label">Circulation note: </span><br />
570 [% patron.borrowernotes | $raw | html_line_break %]
574 [% IF ( patron.opacnote ) %]
575 <li id="patron-opacnote">
576 <span class="label">OPAC note:</span><br />
577 [% patron.opacnote | html | html_line_break %]
581 [% IF ( Koha.Preference('CheckPrevCheckout') == 'softyes' || Koha.Preference('CheckPrevCheckout') == 'softno' ) %]
582 <li id="patron-checkprev">
583 <span class="label">Check previous checkouts: </span>
584 [% IF ( patron.checkprevcheckout == 'yes' ) %]
586 [% ELSIF ( patron.checkprevcheckout == 'no' ) %]
594 [% IF Koha.Preference('TranslateNotices') %]
595 <li id="patron-translatenotices">
596 <span class="label">Preferred language for notices: </span>
597 [% translated_language | html %]
601 </div> [% # /div.rows %]
602 </div> [% # /div#patron-library-details %]
604 <div id="patron-alternate-address" class="patroninfo-section">
605 [% IF ( patron.B_phone || patron.B_email || patron.contactnote || patron.B_address || patron.B_address2 || patron.B_city || patron.B_zipcode || patron.B_country ) %]
606 <div class="patroninfo-heading">
607 <h3>Alternate address</h3>
608 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=6"><i class="fa fa-pencil"></i> Edit</a>
610 <div class="address">
612 [% PROCESS 'display-alt-address-style' %]
617 [% IF ( patron.B_phone ) %]
618 <li id="patron-bphone">
619 <span class="label">Phone: </span>
620 <a href="tel:[% patron.B_phone | uri %]">[% patron.B_phone |html %]</a>
624 [% IF ( patron.B_email ) %]
625 <li id="patron-bemail" class="email">
626 <span class="label">Email: </span>
627 <a title="[% patron.B_email | html %]" href="mailto:[% patron.B_email | url %]">[% patron.B_email |html %]</a>
631 [% IF ( patron.contactnote ) %]
632 <li id="patron-contactnote">
633 <span class="label">Contact note: </span>
634 [% patron.contactnote |html %]
640 <div class="patroninfo-heading">
641 <h3 class="inline">Alternate address</h3>
642 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=6"><i class="fa fa-plus"></i> Add</a>
645 </div> [% # /div#patron-alternate-address %]
647 <div id="patron-alternative-contact" class="patroninfo-section">
648 [% IF ( patron.altcontactsurname || patron.altcontactfirstname || patron.altcontactaddress1 || patron.altcontactaddress2 || patron.altcontactaddress3 || patron.altcontactstate || patron.altcontactzipcode || patron.altcontactcountry || patron.altcontactphone ) %]
649 <div class="patroninfo-heading">
650 <h3>Alternative contact</h3>
651 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=2"><i class="fa fa-pencil"></i> Edit</a>
655 [% IF ( patron.altcontactsurname ) %]
656 <li id="patron-altcontactsurname">
657 <span class="label">Surname: </span>
658 [% patron.altcontactsurname | html %]
661 [% IF ( patron.altcontactfirstname ) %]
662 <li id="patron-altcontactfirstname">
663 <span class="label">First name: </span>
664 [% patron.altcontactfirstname | html %]
667 [% IF ( patron.altcontactaddress1 ) %]
668 <li id="patron-altcontactaddress1">
669 <span class="label">Address: </span>
670 [% patron.altcontactaddress1 | html %]
673 [% IF ( patron.altcontactaddress2 ) %]
674 <li id="patron-altcontactaddress2">
675 <span class="label">Address 2: </span>
676 [% patron.altcontactaddress2 | html %]
679 [% IF ( patron.altcontactaddress3 ) %]
680 <li id="patron-altcontactaddress3">
681 <span class="label">City: </span>
682 [% patron.altcontactaddress3 | html %]
686 [% IF ( patron.altcontactstate ) %]
687 <li id="patron-altcontactstate">
688 <span class="label">State: </span>
689 [% patron.altcontactstate | html %]
692 [% IF ( patron.altcontactzipcode ) %]
693 <li id="patron-altcontactzipcode">
694 <span class="label">ZIP/Postal code: </span>
695 [% patron.altcontactzipcode | html %]
698 [% IF ( patron.altcontactcountry ) %]
699 <li id="patron-altcontactcountry">
700 <span class="label">Country: </span>
701 [% patron.altcontactcountry | html %]
704 [% IF ( patron.altcontactphone ) %]
705 <li id="patron-altcontactphone">
706 <span class="label">Phone: </span>
707 <a href="tel:[% patron.altcontactphone | url %]">[% patron.altcontactphone | html %]</a>
711 </div> [% # /div.rows %]
713 <div class="patroninfo-heading">
714 <h3>Alternative contact</h3>
715 <a class="btn btn-default btn-xs" href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber | html %]&step=2"><i class="fa fa-plus"></i> Add</a>
718 </div> [% # /div#patron-alternative-contact %]
720 [% IF Koha.Preference('EnableBorrowerFiles') %]
721 <div id="patron-files" class="patroninfo-section">
722 <div class="patroninfo-heading">
724 <a class="btn btn-default btn-xs" href="/cgi-bin/koha/members/files.pl?borrowernumber=[% patron.borrowernumber | uri %]"><i class="fa fa-list"></i> Manage</a>
729 [% FOREACH f IN files %]
731 <a href="/cgi-bin/koha/members/files.pl?borrowernumber=[% patron.borrowernumber | uri %]&op=download&file_id=[% f.file_id | uri %]">[% f.file_name | html %]</a>
732 [% IF ( f.file_description ) %]
733 - [% f.file_description | html %]
736 [% END # /FOREACH f %]
739 [% END # /IF files %]
741 </div> <!-- /.patroninfo-heading -->
742 </div> <!-- /#patron-files -->
743 [% END # /IF EnableBorrowerFiles %]
745 </div> <!-- /div.col-sm-6 -->
746 </div> <!-- /div.row -->
748 <div id="finesholdsissues" class="toptabs">
751 <a href="#checkouts">[% issuecount | html %] Checkout(s)</a>
753 [% IF relatives_issues_count %]
755 <a href="#relatives-issues" id="relatives-issues-tab">[% relatives_issues_count | html %] Relatives' checkouts</a>
760 <a href="#finesandcharges">Charges ([% fines | $Price %])</a>
763 [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
765 [% IF ( holds_count ) %]
766 <a href="#reserves" id="holds-tab">[% holds_count | html %] Hold(s)</a>
768 <a href="#reserves" id="holds-tab">0 Holds</a>
772 [% IF Koha.Preference('ArticleRequests') %]
774 <a href="#article-requests" id="article-requests-tab"> [% patron.article_requests_current.count | html %] Article requests</a>
778 [% IF Koha.Preference('ClaimReturnedLostValue') %]
780 [% IF ( patron.return_claims.count ) %]
781 <a href="#return-claims" id="return-claims-tab">
783 [% IF patron.return_claims.resolved.count == 0 %]
784 <span title="Resolved claims" class="label label-default" id="return-claims-count-resolved">[% patron.return_claims.resolved.count | html %]</span>
786 <span title="Resolved claims" class="label label-success" id="return-claims-count-resolved">[% patron.return_claims.resolved.count | html %]</span>
788 [% IF patron.return_claims.unresolved.count == 0 %]
789 <span title="Unresolved claims" class="label label-default" id="return-claims-count-unresolved">[% patron.return_claims.unresolved.count | html %]</span>
791 <span title="Unresolved claims" class="label label-warning" id="return-claims-count-unresolved">[% patron.return_claims.unresolved.count | html %]</span>
796 <a href="#return-claims" id="return-claims-tab">
798 <span title="Resolved claims" class="label label-default" id="return-claims-count-resolved">0</span>
799 <span title="Unresolved claims" class="label label-default" id="return-claims-count-unresolved">0</span>
806 <a id="debarments-tab-link" href="#reldebarments">[% debarments.size | html %] Restrictions</a>
808 [% SET enrollments = patron.get_club_enrollments(1) %]
809 [% SET enrollable = patron.get_enrollable_clubs(0,1) %]
810 [% IF CAN_user_clubs && ( enrollable.count || enrollments.count ) %]
812 <a id="clubs-tab-link" href="#clubs-tab">
813 Clubs ([% enrollments.count | html %]/[% enrollable.count | html %])
819 [% INCLUDE "checkouts-table.inc" %]
821 [% INCLUDE "relatives-issues-table.inc" %]
824 <div id="finesandcharges">
826 <p>Total due: [% fines | $Price %]</p>
828 <p>No outstanding charges</p>
833 [% IF CAN_user_clubs && ( enrollments.count || enrollable.count ) %]
839 [% INCLUDE borrower_debarments.inc %]
841 [% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
843 [% IF ( holds_count ) %]
844 <form action="/cgi-bin/koha/reserve/modrequest.pl" method="post">
845 <input type="hidden" name="from" value="circ" />
846 <table id="holds-table" style="width: 100% !Important;">
863 <fieldset class="action">
864 <input type="submit" class="cancel" name="submit" value="Cancel marked holds" />
866 [% SET hold_cancellation = AuthorisedValues.GetAuthValueDropbox('HOLD_CANCELLATION') %]
867 [% IF hold_cancellation %]
868 <label for="cancellation-reason">Cancellation reason:</label>
869 <select name="cancellation-reason">
870 <option value="">No reason given</option>
871 [% FOREACH reason IN hold_cancellation %]
872 <option value="[% reason.authorised_value | html %]">[% reason.lib | html %]</option>
879 [% IF Koha.Preference('SuspendHoldsIntranet') %]
880 <form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
881 <fieldset class="action">
882 <input type="hidden" name="from" value="borrower" />
883 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
884 <input type="submit" value="Suspend all holds" />
886 [% IF Koha.Preference('AutoResumeSuspendedHolds') %]
887 <label for="suspend_until">until</label>
888 <input type="text" size="10" id="suspend_until" name="suspend_until" class="datepicker futuredate"/>
889 <span class="hint">Specify date on which to resume [% INCLUDE 'date-format.inc' %]: </span>
894 <form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
895 <fieldset class="action">
896 <input type="hidden" name="from" value="borrower" />
897 <input type="hidden" name="borrowernumber" value="[% patron.borrowernumber | html %]" />
898 <input type="hidden" name="suspend" value="0" />
899 <input type="submit" value="Resume all suspended holds" />
902 [% END # IF SuspendHoldsIntranet %]
905 <p>Patron has nothing on hold.</p>
907 </div> [% # /div#reserves %]
910 [% IF Koha.Preference('ClaimReturnedLostValue') %]
911 [% INCLUDE 'patron-return-claims.inc' %]
914 [% IF Koha.Preference('ArticleRequests') %]
915 [% INCLUDE 'patron-article-requests.inc' %]
918 </div> <!-- /div#finesholdsissues -->
920 </div> <!-- /.col-sm-10.col-sm-push-2 -->
922 <div class="col-sm-2 col-sm-pull-10">
924 [% INCLUDE 'circ-menu.inc' %]
926 </div> <!-- /.col-sm-2.col-sm-pull-10 -->
927 </div> <!-- /.row -->
929 [% MACRO jsinclude BLOCK %]
930 [% INCLUDE 'datatables.inc' %]
931 [% Asset.js("lib/jquery/plugins/rowGroup/dataTables.rowGroup.min.js") | $raw %]
932 [% INCLUDE 'columns_settings.inc' %]
933 [% INCLUDE 'calendar.inc' %]
934 [% Asset.js("lib/jquery/plugins/jquery-ui-timepicker-addon.min.js") | $raw %]
935 [% INCLUDE 'timepicker.inc' %]
937 /* Set some variable needed in circulation.js */
938 var logged_in_user_borrowernumber = "[% logged_in_user.borrowernumber | html %]";
939 var ClaimReturnedLostValue = "[% Koha.Preference('ClaimReturnedLostValue') | html %]";
940 var ClaimReturnedChargeFee = "[% Koha.Preference('ClaimReturnedChargeFee') | html %]";
941 var ClaimReturnedWarningThreshold = "[% Koha.Preference('ClaimReturnedWarningThreshold') | html %]";
942 var UnseenRenewals = "[% Koha.Preference('UnseenRenewals') | html %]";
943 var interface = "[% interface | html %]";
944 var theme = "[% theme | html %]";
945 var borrowernumber = "[% patron.borrowernumber | html %]";
946 var branchcode = "[% Branches.GetLoggedInBranchcode() | html %]";
947 var exports_enabled = "[% Koha.Preference('ExportCircHistory') | html %]";
948 var AllowCirculate = [% (CAN_user_circulate_circulate_remaining_permissions)? 1 : 0 | html %]
949 var AllowRenewalLimitOverride = [% (CAN_user_circulate_override_renewals && Koha.Preference('AllowRenewalLimitOverride') )? 1: 0 | html %];
950 var AllowRenewalOnHoldOverride = [% (CAN_user_circulate_override_renewals && Koha.Preference('AllowRenewalOnHoldOverride') )? 1: 0 | html %];
951 var script = "moremember";
952 var relatives_borrowernumbers = new Array();
953 [% FOREACH b IN relatives_borrowernumbers %]
954 relatives_borrowernumbers.push("[% b | html %]");
956 var SuspendHoldsIntranet = [% ( Koha.Preference('SuspendHoldsIntranet') ) ? 1 : 0 | html %];
958 [% Asset.js("js/pages/circulation.js") | $raw %]
959 [% Asset.js("js/checkouts.js") | $raw %]
960 [% Asset.js("js/holds.js") | $raw %]
961 [% INCLUDE 'str/members-menu.inc' %]
962 [% Asset.js("js/members-menu.js") | $raw %]
963 [% Asset.js("js/messaging-preference-form.js") | $raw %]
966 columns_settings_issues_table = [% TablesSettings.GetColumns( 'members', 'moremember', 'issues-table', 'json' ) | $raw %]
968 $(document).ready(function() {
970 if ( $('#clubs-tab').length ) {
971 $('#clubs-tab-link').on('click', function() {
972 $('#clubs-tab').text(_("Loading..."));
973 $('#clubs-tab').load('/cgi-bin/koha/clubs/patron-clubs-tab.pl?borrowernumber=[% patron.borrowernumber | html %]');
977 $('#finesholdsissues').tabs({
978 // Correct table sizing for tables hidden in tabs
979 // http://www.datatables.net/examples/api/tabs_and_scrolling.html
980 "show": function(event, ui) {
981 var oTable = $('div.dataTables_wrapper>table', ui.panel).dataTable();
982 if ( oTable.length > 0 ) {
983 oTable.fnAdjustColumnSizing();
986 "activate": function( event, ui ) {
987 $('#'+ui.newTab.context.id).click();
991 $("#view_restrictions").on("click",function(){
992 $('#debarments-tab-link').click();
995 $("#show-picture-upload").on("click", function(e){
998 $("#picture-upload").toggle();
1001 $("#cancel-picture-upload").on("click", function(e){
1003 $("#picture-upload, #show-picture-upload").toggle();
1007 function uncheck_sibling(me){
1008 nodename=me.getAttribute("name");
1009 if (nodename =="barcodes[]"){
1010 var Node=me.parentNode.previousSibling;
1011 while (Node.nodeName!="TD"){Node=Node.previousSibling}
1012 var Nodes=Node.childNodes;
1013 for (var i=0;i < Nodes.length;i++){
1014 if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
1015 Nodes[i].checked=false;
1019 var Node=me.parentNode.nextSibling;
1020 while (Node.nodeName!="TD"){Node=Node.nextSibling}
1021 var Nodes=Node.childNodes;
1022 for (var i=0;i<Nodes.length;i++){
1023 if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
1024 Nodes[i].checked=false;
1030 function validate1(date) {
1031 var today = new Date();
1032 if ( date < today ) {
1041 [% INCLUDE 'intranet-bottom.inc' %]