Owen Leonard
14f54d4e13
This patch reindents the template for the patron detail page, moremember.tt: - Trailing spaces removed - Indentation changed to a consistent 4 spaces - Markup indentation made more consistent To test, view the patron detail page. There should be no visible difference before and after the applying the patch. HTML validation before and after the patch should return the same results. Signed-off-by: Mark Tompsett <mtompset@hotmail.com> Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
884 lines
52 KiB
Text
884 lines
52 KiB
Text
[% USE Asset %]
|
|
[% USE Koha %]
|
|
[% USE Branches %]
|
|
[% USE KohaDates %]
|
|
[% USE AuthorisedValues %]
|
|
[% USE ColumnsSettings %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Patrons ›
|
|
[% UNLESS blocking_error %]
|
|
Patron details for [% INCLUDE 'patron-title.inc' no_html = 1 %]
|
|
[% END %]
|
|
</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% Asset.css("css/datatables.css") %]
|
|
</head>
|
|
|
|
<body id="pat_moremember" class="pat">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'patron-search.inc' %]
|
|
|
|
<div id="breadcrumbs">
|
|
<a href="/cgi-bin/koha/mainpage.pl">Home</a>
|
|
› <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
|
|
› [% UNLESS blocking_error %]Patron details for [% INCLUDE 'patron-title.inc' %][% END %]
|
|
</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
[% INCLUDE 'members-toolbar.inc' %]
|
|
|
|
[% IF ( error ) %]
|
|
<div class="dialog alert">
|
|
[% IF ( error == 'CANT_DELETE_STAFF' ) %]
|
|
<h3>Unable to delete staff user</h3>
|
|
<p>Insufficient privileges.</p>
|
|
[% END %]
|
|
[% IF ( error == 'CANT_DELETE_YOURSELF' ) %]
|
|
<h3>Not allowed to delete own account</h3>
|
|
<p>Deleting your own account would lock you out of Koha.</p>
|
|
[% END %]
|
|
[% IF ( error == 'CANT_DELETE_OTHERLIBRARY' ) %]
|
|
<h3>Unable to delete patrons from other libraries with current settings</h3>
|
|
<p>Insufficient privileges.</p>
|
|
[% END %]
|
|
[% IF ( error == 'CANT_DELETE' ) %]
|
|
<h3>Unable to delete patron</h3>
|
|
<p>Insufficient privileges.</p>
|
|
[% END %]
|
|
</div>
|
|
[% END %]
|
|
|
|
<div class="yui-g">
|
|
|
|
[% IF ( was_renewed ) %]
|
|
<div class="dialog message">
|
|
Patron's account has been renewed until [% patron.dateexpiry | $KohaDates %]
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF fines %]
|
|
<div id="circmessages" class="circmessage attention">
|
|
<ul>
|
|
[% INCLUDE 'blocked-fines.inc' %]
|
|
</ul>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( patron_messages ) %]
|
|
<div id="messages" class="circmessage">
|
|
<h4>Messages:</h4>
|
|
<ul>
|
|
[% FOREACH patron_message IN patron_messages %]
|
|
<li>
|
|
[% IF(patron_message.message_type == "L") %]
|
|
<span class="circ-hlt">
|
|
[% ELSE %]
|
|
<span>
|
|
[% END %]
|
|
[% patron_message.message_date | $KohaDates %]
|
|
[% Branches.GetName( patron_message.branchcode ) %]
|
|
[% IF patron_message.manager_id %]
|
|
( <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron_message.manager_id %]">[% patron_message.get_column('manager_firstname') %] [% patron_message.get_column('manager_surname') %]</a> )
|
|
[% END %]
|
|
<i>"[% patron_message.message | html %]"</i>
|
|
</span>
|
|
[% IF patron_message.branchcode == branchcode OR Koha.Preference('AllowAllMessageDeletion') %]
|
|
<a class="btn btn-link btn-sm" href="/cgi-bin/koha/circ/del_message.pl?message_id=[% patron_message.message_id %]&borrowernumber=[% patron_message.borrowernumber %]&from=moremember" onclick="return confirm(MSG_CONFIRM_DELETE_MESSAGE);"><i class="fa fa-trash"></i> Delete</a>
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
<a id="addnewmessageLabel" href="#add_message_form" class="btn btn-link btn-sm" data-toggle="modal"><i class="fa fa-plus"></i> Add a new message</a>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( flagged ) %]
|
|
<div id="circmessages" class="circmessage attention">
|
|
<ul>
|
|
[% IF ( userdebarred ) %]
|
|
<li class="blocker">Patron's account is restricted
|
|
[% IF ( userdebarreddate ) %]
|
|
until [% userdebarreddate %]
|
|
[% END %]
|
|
|
|
[% IF ( debarredcomment ) %]
|
|
with the explanation: <i>
|
|
[% IF debarredcomment.search('OVERDUES_PROCESS') %]
|
|
Restriction added by overdues process [% debarredcomment.remove('OVERDUES_PROCESS ') | html_line_break %]
|
|
[% ELSE %]
|
|
[% debarredcomment | html_line_break %]
|
|
[% END %]
|
|
</i>
|
|
[% END %]
|
|
<a href="#reldebarments" id="view_restrictions">View restrictions</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.gonenoaddress ) %]
|
|
<li class="blocker">Patron's address is in doubt.</li>
|
|
[% END %]
|
|
[% IF ( lost ) %]
|
|
<li class="blocker">Patron's card has been reported lost.</li>
|
|
[% END %]
|
|
</ul>
|
|
</div>
|
|
[% END %]
|
|
|
|
<h3>
|
|
[% UNLESS ( I ) %]
|
|
[% patron.title | html %] [% patron.firstname | html %]
|
|
[% END %]
|
|
[% patron.surname | html %] ([% patron.cardnumber | html %])
|
|
</h3>
|
|
<div class="yui-u first">
|
|
|
|
<div id="patron-information" style="padding : .5em;">
|
|
[% IF ( patron.othernames ) %]“[% patron.othernames | html %]”[% END %]
|
|
|
|
<div class="address">
|
|
[% IF Koha.Preference( 'AddressFormat' ) %]
|
|
[% INCLUDE "member-display-address-style-${ Koha.Preference( 'AddressFormat' ) }.inc" %]
|
|
[% ELSE %]
|
|
[% INCLUDE 'member-display-address-style-us.inc' %]
|
|
[% END %]
|
|
</div>
|
|
|
|
<div class="rows">
|
|
<ol>
|
|
[% IF ( patron.phone ) %]
|
|
<li>
|
|
<span class="label">Primary phone: </span>
|
|
<a href="tel:[% patron.phone %]">[% patron.phone | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.phonepro ) %]
|
|
<li>
|
|
<span class="label">Secondary phone: </span>
|
|
<a href="tel:[% patron.phonepro %]">[% patron.phonepro | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.mobile ) %]
|
|
<li>
|
|
<span class="label">Other phone: </span>
|
|
<a href="tel:[% patron.mobile %]">[% patron.mobile | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.fax ) %]
|
|
<li>
|
|
<span class="label">Fax: </span>
|
|
[% patron.fax |html %]
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.email ) %]
|
|
<li class="email">
|
|
<span class="label">Primary email:</span>
|
|
<a title="[% patron.email %]" href="mailto:[% patron.email | url %]">[% patron.email | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.emailpro ) %]
|
|
<li class="email">
|
|
<span class="label">Secondary email: </span>
|
|
<a title="[% patron.emailpro %]" href="mailto:[% patron.emailpro | url %]">[% patron.emailpro | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% UNLESS ( I ) %]
|
|
[% IF ( patron.initials ) %]
|
|
<li>
|
|
<span class="label">Initials: </span>
|
|
[% patron.initials | html %]
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.dateofbirth ) %]
|
|
<li>
|
|
<span class="label">Date of birth:</span>
|
|
[% patron.dateofbirth | $KohaDates %] ([% age %] years)
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.sex ) %]
|
|
<li>
|
|
<span class="label">Gender:</span>
|
|
[% IF ( patron.sex == 'F' ) %]Female[% ELSIF ( patron.sex == 'M' ) %]Male[% ELSE %][% patron.sex %][% END %]
|
|
</li>
|
|
[% END %]
|
|
[% END %]
|
|
[% IF guarantees %]
|
|
<li>
|
|
<span class="label">Guarantees:</span>
|
|
<ul>
|
|
[% FOREACH guarantee IN guarantees %]
|
|
[% IF logged_in_user.can_see_patron_infos( guarantee ) %]
|
|
<li><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantee.borrowernumber %]">[% guarantee.firstname | html %] [% guarantee.surname | html %]</a></li>
|
|
[% ELSE %]
|
|
<li>[% guarantee.firstname | html %] [% guarantee.surname | html %]</li>
|
|
[% END %]
|
|
[% END %]
|
|
</ul>
|
|
</li>
|
|
[% ELSIF guarantor %]
|
|
<li>
|
|
<span class="label">Guarantor:</span>
|
|
[% IF guarantor.borrowernumber AND logged_in_user.can_see_patron_infos( guarantor ) %]
|
|
<a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% guarantor.borrowernumber %]">[% guarantor.firstname | html %] [% guarantor.surname | html %]</a>
|
|
[% ELSE %]
|
|
[% guarantor.firstname | html %] [% guarantor.surname | html %]
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</div> [% # /div.rows %]
|
|
<div class="action">
|
|
[% IF ( guarantor.borrowernumber ) %]
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=1&guarantorid=[% guarantor.borrowernumber %]">Edit</a>
|
|
[% ELSE %]
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=1">Edit</a>
|
|
[% END %]
|
|
</div>
|
|
|
|
</div> [% # /div#patron-information %]
|
|
|
|
[% IF ( patronimages ) %]
|
|
[% IF ( CAN_user_tools_batch_upload_patron_images ) %]
|
|
<div id="manage-patron-image">
|
|
<form method="post" action="/cgi-bin/koha/tools/picture-upload.pl" enctype="multipart/form-data">
|
|
<fieldset class="brief">
|
|
[% IF ( patron.image ) %]
|
|
<legend>Manage patron image</legend>
|
|
<div class="hint">To update the image for [% patron.title | html %] [% patron.surname | html %], select a new image file and click 'Upload.' <br />Click the 'Delete' button to remove the current image.
|
|
[% ELSE %]
|
|
<legend>Upload patron image</legend>
|
|
<div class="hint">[% patron.title %] [% patron.firstname | html %] [% patron.surname | html %] does not currently have an image available. To import an image for [% patron.title %] [% patron.surname | html %], enter the name of an image file to upload.
|
|
[% END %]
|
|
<br />Only PNG, GIF, JPEG, XPM formats are supported.
|
|
</div>
|
|
<input type="hidden" id="image" name="filetype" value="image" />
|
|
<input type="hidden" id="cardnumber" name="cardnumber" value="[% patron.cardnumber | html %]" />
|
|
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber %]" />
|
|
<ol>
|
|
<li>
|
|
<label for="uploadfile">Select the file to upload: </label>
|
|
<input type="file" id="uploadfile" name="uploadfile" />
|
|
</li>
|
|
</ol>
|
|
<fieldset class="action">
|
|
<input type="hidden" name="csrf_token" value="[% csrf_token %]" />
|
|
<input type="submit" value="Upload" class="submit" />
|
|
<input name="op" type="hidden" value="Upload" />
|
|
[% IF ( patron.image ) %]
|
|
<a id="delpicture" href="/cgi-bin/koha/tools/picture-upload.pl?op=Delete&borrowernumber=[% patron.borrowernumber %]&csrf_token=[% csrf_token %]" class="delete">Delete</a>
|
|
[% END %]
|
|
</fieldset>
|
|
</fieldset>
|
|
</form>
|
|
</div> [% # /div#manage-patron-image %]
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF Koha.Preference('HouseboundModule') %]
|
|
<div id="houseboundroles">
|
|
<h3>Housebound roles</h3>
|
|
<div class="rows">
|
|
<ol>
|
|
<li>
|
|
<span class="label">Chooser:</span>
|
|
[% IF ( housebound_role.housebound_chooser == 1 ) %]
|
|
Yes
|
|
[% ELSE %]
|
|
No
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Deliverer:</span>
|
|
[% IF ( housebound_role.housebound_deliverer == 1 ) %]
|
|
Yes
|
|
[% ELSE %]
|
|
No
|
|
[% END %]
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=4">Edit</a>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( ExtendedPatronAttributes ) %]
|
|
[% UNLESS ( no_patron_attribute_types ) %]
|
|
<div id="patron-extended-attributes" style="padding-top: 1em;">
|
|
<h3>Additional attributes and identifiers</h3>
|
|
[% FOREACH attribute IN attributes_loop %]
|
|
[% IF attribute.class %]
|
|
<div id="aai_[% attribute.class %]" class="rows">
|
|
[% ELSE %]
|
|
<div id="aai" class="rows">
|
|
[% END %]
|
|
<h4>[% attribute.lib %]</h4>
|
|
<ol>
|
|
[% FOREACH item IN attribute.items %]
|
|
<li>
|
|
<span class="label">[% item.description %]: </span>
|
|
[% IF ( item.value_description ) %]
|
|
[% item.value_description %]
|
|
[% ELSE %]
|
|
[% item.value| html_line_break %]
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</div>
|
|
[% END %]
|
|
</div>
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=4">Edit</a>
|
|
</div>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF ( EnhancedMessagingPreferences ) %]
|
|
<div id="patron-messaging-prefs" style="padding-top: 1em;">
|
|
<h3>Patron messaging preferences</h3>
|
|
[% INCLUDE 'messaging-preference-form.inc' %]
|
|
[% IF ( SMSSendDriver ) %]
|
|
<div class="rows">
|
|
<ol>
|
|
<li>
|
|
<span class="label">SMS number:</span>
|
|
<a href="sms:[% patron.smsalertnumber %]">[% patron.smsalertnumber %]</a>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
[% END %]
|
|
</div>
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=5">Edit</a>
|
|
</div>
|
|
[% END %]
|
|
|
|
</div> [% # /div.yui-u.first %]
|
|
|
|
<div class="yui-u">
|
|
<div id="patron-library-details">
|
|
<h3>Library use</h3>
|
|
<div class="rows">
|
|
<ol>
|
|
<li>
|
|
<span class="label">Card number: </span>
|
|
[% patron.cardnumber %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Borrowernumber: </span>
|
|
[% patron.borrowernumber %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Category: </span>
|
|
[% patron.category.description %] ([% patron.categorycode %])
|
|
</li>
|
|
<li>
|
|
<span class="label">Registration date: </span>
|
|
[% patron.dateenrolled | $KohaDates %]
|
|
</li>
|
|
|
|
[% IF ( patron.date_renewed ) %]
|
|
<li>
|
|
<span class="label">Renewal date: </span>
|
|
[% patron.date_renewed | $KohaDates %]
|
|
</li>
|
|
[% END %]
|
|
|
|
<li>
|
|
<span class="label">Expiration date: </span>
|
|
[% IF ( was_renewed ) %]
|
|
<strong class="reregistrinfo">[% patron.dateexpiry | $KohaDates %]</strong>
|
|
[% ELSE %]
|
|
[% patron.dateexpiry | $KohaDates %]
|
|
[% END %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Library: </span>
|
|
[% branchname %]
|
|
</li>
|
|
|
|
[% IF ( OPACPrivacy ) %]
|
|
<li>
|
|
<span class="label">Privacy Pref:</span>
|
|
[% IF ( privacy0 ) %]Forever[% END %]
|
|
[% IF ( privacy1 ) %]Default[% END %]
|
|
[% IF ( privacy2 ) %]Never[% END %]
|
|
</li>
|
|
[% END %]
|
|
|
|
<li>
|
|
<span class="label">Show checkouts to guarantor</span>
|
|
[% IF privacy_guarantor_checkouts %]
|
|
Yes
|
|
[% ELSE %]
|
|
No
|
|
[% END %]
|
|
</li>
|
|
|
|
[% IF ( patron.sort1 ) %]
|
|
<li>
|
|
<span class="label">Sort field 1:</span>
|
|
[% AuthorisedValues.GetByCode('Bsort1', patron.sort1) |html %]
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.sort2 ) %]
|
|
<li>
|
|
<span class="label">Sort field 2:</span>
|
|
[% AuthorisedValues.GetByCode('Bsort2', patron.sort2) |html %]
|
|
</li>
|
|
[% END %]
|
|
<li>
|
|
<span class="label">Username: </span>
|
|
[% patron.userid |html %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Password: </span>
|
|
[% IF ( patron.password ) %]
|
|
*******
|
|
[% ELSE %]
|
|
<span class="problem"><a href="/cgi-bin/koha/members/member-password.pl?member=[% patron.borrowernumber %]">Undefined</a></span>
|
|
[% END %]
|
|
</li>
|
|
|
|
[% IF ( patron.borrowernotes ) %]
|
|
<li>
|
|
<span class="label">Circulation note: </span>
|
|
[% patron.borrowernotes |html %]
|
|
</li>
|
|
[% END %]
|
|
|
|
[% IF ( patron.opacnote ) %]
|
|
<li>
|
|
<span class="label">OPAC note:</span>
|
|
[% patron.opacnote |html %]
|
|
</li>
|
|
[% END %]
|
|
|
|
[% IF Koha.Preference( 'NorwegianPatronDBEnable' ) == 1 %]
|
|
[% IF ( sync == 1 ) %]
|
|
<li>
|
|
<span class="label">Activate sync: </span>
|
|
Yes
|
|
</li>
|
|
[% IF ( syncstatus ) %]
|
|
<li>
|
|
<span class="label">Sync status: </span>
|
|
[% syncstatus %]
|
|
</li>
|
|
[% END %]
|
|
[% IF ( lastsync ) %]
|
|
<li>
|
|
<span class="label">Last sync: </span>
|
|
[% lastsync | $KohaDates %]
|
|
</li>
|
|
[% END %]
|
|
[% ELSE %]
|
|
<li>
|
|
<span class="label">Activate sync: </span>
|
|
No
|
|
</li>
|
|
[% END %]
|
|
[% END %]
|
|
|
|
[% IF ( Koha.Preference('CheckPrevCheckout') == 'softyes' || Koha.Preference('CheckPrevCheckout') == 'softno' ) %]
|
|
<li>
|
|
<span class="label">Check previous checkouts: </span>
|
|
[% IF ( patron.checkprevcheckout == 'yes' ) %]
|
|
Yes
|
|
[% ELSIF ( patron.checkprevcheckout == 'no' ) %]
|
|
No
|
|
[% ELSE %]
|
|
Inherited
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
|
|
[% IF Koha.Preference('TranslateNotices') %]
|
|
<li>
|
|
<span class="label">Preferred language for notices: </span>
|
|
[% translated_language %]
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</div> [% # /div.rows %]
|
|
</div> [% # /div#patron-library-details %]
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=3">Edit</a>
|
|
</div>
|
|
|
|
<div id="patron-alternate-address" style="padding-top: 1em;">
|
|
<h3>Alternate address</h3>
|
|
|
|
[% IF Koha.Preference( 'AddressFormat' ) %]
|
|
[% INCLUDE "member-display-alt-address-style-${ Koha.Preference( 'AddressFormat' ) }.inc" %]
|
|
[% ELSE %]
|
|
[% INCLUDE 'member-display-alt-address-style-us.inc' %]
|
|
[% END %]
|
|
|
|
<div class="rows">
|
|
<ol>
|
|
[% IF ( patron.B_phone ) %]
|
|
<li>
|
|
<span class="label">Phone: </span>
|
|
<a href="tel:[% patron.B_phone %]">[% patron.B_phone |html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.B_email ) %]
|
|
<li class="email">
|
|
<span class="label">Email: </span>
|
|
<a title="[% patron.B_email %]" href="mailto:[% patron.B_email | url %]">[% B_email |html %]</a>
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.contactnote ) %]
|
|
<li>
|
|
<span class="label">Contact note: </span>
|
|
[% patron.contactnote |html %]
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</div>
|
|
</div> [% # /div#patron-alternate-address %]
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=6">Edit</a>
|
|
</div>
|
|
|
|
<div id="patron-alternative-contact" style="padding-top: 1em;">
|
|
<h3>Alternative contact</h3>
|
|
<div class="rows">
|
|
<ol>
|
|
<li>
|
|
<span class="label">Surname: </span>
|
|
[% patron.altcontactsurname | html %]
|
|
</li>
|
|
<li>
|
|
<span class="label">First name: </span>
|
|
[% patron.altcontactfirstname | html %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Address: </span>
|
|
[% patron.altcontactaddress1 | html %]
|
|
</li>
|
|
<li>
|
|
<span class="label">Address 2: </span>
|
|
[% patron.altcontactaddress2 | html %]
|
|
</li>
|
|
<li>
|
|
<span class="label">City: </span>
|
|
[% patron.altcontactaddress3 | html %]
|
|
</li>
|
|
|
|
[% IF ( patron.altcontactstate ) %]
|
|
<li>
|
|
<span class="label">State: </span>
|
|
[% patron.altcontactstate | html %]
|
|
</li>
|
|
[% END %]
|
|
|
|
<li>
|
|
<span class="label">ZIP/Postal code: </span>
|
|
[% patron.altcontactzipcode | html %]
|
|
</li>
|
|
[% IF ( patron.altcontactcountry ) %]
|
|
<li>
|
|
<span class="label">Country: </span>
|
|
[% patron.altcontactcountry | html %]
|
|
</li>
|
|
[% END %]
|
|
[% IF ( patron.altcontactphone ) %]
|
|
<li>
|
|
<span class="label">Phone: </span>
|
|
<a href="tel:[% patron.altcontactphone | url %]">[% patron.altcontactphone | html %]</a>
|
|
</li>
|
|
[% END %]
|
|
</ol>
|
|
</div> [% # /div.rows %]
|
|
</div> [% # /div#patron-alternative-contact %]
|
|
<div class="action">
|
|
<a href="memberentry.pl?op=modify&borrowernumber=[% patron.borrowernumber %]&step=2">Edit</a>
|
|
</div>
|
|
</div> [% # /div.yui-u %]
|
|
</div> [% # /div.yui-g %]
|
|
|
|
<div id="finesholdsissues" class="toptabs">
|
|
<ul>
|
|
<li>
|
|
<a href="#checkouts">[% issuecount %] Checkout(s)</a>
|
|
</li>
|
|
[% IF relatives_issues_count %]
|
|
<li>
|
|
<a href="#relatives-issues" id="relatives-issues-tab">Relatives' checkouts</a>
|
|
</li>
|
|
[% END %]
|
|
<li>
|
|
<a href="#finesandcharges">Fines & Charges</a>
|
|
</li>
|
|
[% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
|
|
<li>
|
|
[% IF ( holds_count ) %]
|
|
<a href="#reserves" id="holds-tab">[% holds_count %] Hold(s)</a>
|
|
[% ELSE %]
|
|
<a href="#reserves" id="holds-tab">0 Holds</a>
|
|
[% END %]
|
|
</li>
|
|
[% END %]
|
|
[% IF Koha.Preference('ArticleRequests') %]
|
|
<li>
|
|
<a href="#article-requests" id="article-requests-tab"> [% patron.article_requests_current.count %] Article requests</a>
|
|
</li>
|
|
[% END %]
|
|
<li>
|
|
<a id="debarments-tab-link" href="#reldebarments">[% debarments.size %] Restrictions</a>
|
|
</li>
|
|
[% SET enrollments = patron.get_club_enrollments(1) %]
|
|
[% SET enrollable = patron.get_enrollable_clubs(0,1) %]
|
|
[% IF CAN_user_clubs && ( enrollable.count || enrollments.count ) %]
|
|
<li>
|
|
<a id="clubs-tab-link" href="#clubs-tab">
|
|
Clubs ([% enrollments.count %]/[% enrollable.count %])
|
|
</a>
|
|
</li>
|
|
[% END %]
|
|
</ul>
|
|
|
|
[% INCLUDE "checkouts-table.inc" %]
|
|
|
|
[% IF ( relatives_issues_count ) %]
|
|
<div id="relatives-issues">
|
|
<table id="relatives-issues-table" style="width: 100% !Important;">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Due date hidden not formatted</th>
|
|
<th scope="col">Due date</th>
|
|
<th scope="col">Title</th>
|
|
<th scope="col">Item type</th>
|
|
<th scope="col">Location</th>
|
|
<th scope="col">Checked out on</th>
|
|
<th scope="col">Checked out from</th>
|
|
<th scope="col">Call no</th>
|
|
<th scope="col">Charge</th>
|
|
<th scope="col">Fine</th>
|
|
<th scope="col">Price</th>
|
|
<th scope="col">Patron</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
</div>
|
|
[% END %]
|
|
|
|
<div id="finesandcharges">
|
|
[% IF ( totaldue_raw ) %]
|
|
<p>Total due: [% totaldue %]</p>
|
|
[% ELSE %]
|
|
<p>No outstanding charges</p>
|
|
[% END %]
|
|
</div>
|
|
|
|
[% IF CAN_user_clubs && ( enrollments.count || enrollable.count ) %]
|
|
<div id="clubs-tab">
|
|
Loading...
|
|
</div>
|
|
[% END %]
|
|
|
|
[% INCLUDE borrower_debarments.inc %]
|
|
|
|
[% IF ( CAN_user_circulate_circulate_remaining_permissions ) %]
|
|
<div id="reserves">
|
|
[% IF ( holds_count ) %]
|
|
<form action="/cgi-bin/koha/reserve/modrequest.pl" method="post">
|
|
<input type="hidden" name="from" value="circ" />
|
|
<table id="holds-table" style="width: 100% !Important;">
|
|
<thead>
|
|
<tr>
|
|
<th>Hold date</th>
|
|
<th>Title</th>
|
|
<th>Call number</th>
|
|
<th>Barcode</th>
|
|
<th>Pickup at</th>
|
|
<th>Expiration</th>
|
|
<th>Priority</th>
|
|
<th>Delete?</th>
|
|
<th>Suspend?</th>
|
|
</tr>
|
|
</thead>
|
|
</table>
|
|
|
|
<fieldset class="action">
|
|
<input type="submit" class="cancel" name="submit" value="Cancel marked holds" />
|
|
</fieldset>
|
|
</form>
|
|
|
|
[% IF Koha.Preference('SuspendHoldsIntranet') %]
|
|
<form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
|
|
<fieldset class="action">
|
|
<input type="hidden" name="from" value="borrower" />
|
|
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber %]" />
|
|
<input type="submit" value="Suspend all holds" />
|
|
|
|
[% IF Koha.Preference('AutoResumeSuspendedHolds') %]
|
|
<label for="suspend_until">until</label>
|
|
<input type="text" size="10" id="suspend_until" name="suspend_until" class="datepicker"/>
|
|
<span class="hint">Specify date on which to resume [% INCLUDE 'date-format.inc' %]: </span>
|
|
[% END %]
|
|
</fieldset>
|
|
</form>
|
|
|
|
<form action="/cgi-bin/koha/reserve/modrequest_suspendall.pl" method="post">
|
|
<fieldset class="action">
|
|
<input type="hidden" name="from" value="borrower" />
|
|
<input type="hidden" name="borrowernumber" value="[% patron.borrowernumber %]" />
|
|
<input type="hidden" name="suspend" value="0" />
|
|
<input type="submit" value="Resume all suspended holds" />
|
|
</fieldset>
|
|
</form>
|
|
[% END # IF SuspendHoldsIntranet %]
|
|
|
|
[% ELSE %]
|
|
<p>Patron has nothing on hold.</p>
|
|
[% END %]
|
|
</div> [% # /div#reserves %]
|
|
[% END %]
|
|
|
|
[% IF Koha.Preference('ArticleRequests') %]
|
|
[% INCLUDE 'patron-article-requests.inc' %]
|
|
[% END %]
|
|
|
|
</div> [% # /div#finesholdsissues %]
|
|
</div> [% # /div.yui-b %]
|
|
</div> [% # /div#yui-main %]
|
|
|
|
<div class="yui-b">
|
|
[% INCLUDE 'circ-menu.inc' %]
|
|
</div>
|
|
</div> [% # /div#bd %]
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
[% INCLUDE 'columns_settings.inc' %]
|
|
[% INCLUDE 'strings.inc' %]
|
|
[% INCLUDE 'calendar.inc' %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") %]
|
|
[% Asset.js("lib/jquery/plugins/jquery-ui-timepicker-addon.min.js") %]
|
|
[% INCLUDE 'timepicker.inc' %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.dataTables.rowGrouping.js") %]
|
|
[% Asset.js("js/pages/circulation.js") %]
|
|
[% Asset.js("js/checkouts.js") %]
|
|
[% Asset.js("js/holds.js") %]
|
|
[% Asset.js("js/members-menu.js") %]
|
|
[% Asset.js("js/messaging-preference-form.js") %]
|
|
<script>
|
|
/* Set some variable needed in circulation.js */
|
|
var interface = "[% interface %]";
|
|
var theme = "[% theme %]";
|
|
var borrowernumber = "[% patron.borrowernumber %]";
|
|
var branchcode = "[% Branches.GetLoggedInBranchcode() %]";
|
|
var exports_enabled = "[% Koha.Preference('ExportCircHistory') %]";
|
|
var AllowCirculate = [% (CAN_user_circulate_circulate_remaining_permissions)? 1 : 0 %]
|
|
var AllowRenewalLimitOverride = [% (CAN_user_circulate_override_renewals && Koha.Preference('AllowRenewalLimitOverride') )? 1: 0 %];
|
|
var script = "moremember";
|
|
var relatives_borrowernumbers = new Array();
|
|
[% FOREACH b IN relatives_borrowernumbers %]
|
|
relatives_borrowernumbers.push("[% b %]");
|
|
[% END %]
|
|
|
|
var MSG_EXPORT_SELECT_CHECKOUTS = _("You must select checkout(s) to export");
|
|
var MSG_CONFIRM_DELETE_MESSAGE = _("Are you sure you want to delete this message? This cannot be undone.");
|
|
|
|
columns_settings = [% ColumnsSettings.GetColumns( 'members', 'moremember', 'issues-table', 'json' ) %]
|
|
|
|
$(document).ready(function() {
|
|
if ( $('#clubs-tab').length ) {
|
|
$('#clubs-tab-link').on('click', function() {
|
|
$('#clubs-tab').text(_("Loading..."));
|
|
$('#clubs-tab').load('/cgi-bin/koha/clubs/patron-clubs-tab.pl?borrowernumber=[% borrowernumber %]');
|
|
});
|
|
}
|
|
|
|
$('#finesholdsissues').tabs({
|
|
// Correct table sizing for tables hidden in tabs
|
|
// http://www.datatables.net/examples/api/tabs_and_scrolling.html
|
|
"show": function(event, ui) {
|
|
var oTable = $('div.dataTables_wrapper>table', ui.panel).dataTable();
|
|
if ( oTable.length > 0 ) {
|
|
oTable.fnAdjustColumnSizing();
|
|
}
|
|
},
|
|
"activate": function( event, ui ) {
|
|
$('#'+ui.newTab.context.id).click();
|
|
}
|
|
} );
|
|
$("#holdst").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"sDom": 't',
|
|
"aoColumnDefs": [
|
|
{ "aTargets": [ -1,-2 ], "bSortable": false, "bSearchable": false }
|
|
],
|
|
"aoColumns": [
|
|
{ "sType": "title-string" },{ "sType": "anti-the" },null,null,null,null,null,null
|
|
],
|
|
"bPaginate": false
|
|
}));
|
|
[% IF ( patron.image ) %]
|
|
$('#delpicture').click(function(){
|
|
return confirm(_("Are you sure you want to delete this patron image? This cannot be undone."));
|
|
});
|
|
$('#manage-patron-image').find("input[value*=Upload]").click(function(){
|
|
if($("#uploadfile").val() == ""){
|
|
alert(_("Please choose a file to upload"));
|
|
return false;
|
|
}
|
|
return confirm(_("Are you sure you want to replace the current patron image? This cannot be undone."));
|
|
});
|
|
[% END %]
|
|
|
|
$("#suspend_until").datepicker({
|
|
onClose: function(dateText, inst) {
|
|
validate_date(dateText, inst);
|
|
},
|
|
minDate: 1, // require that hold suspended until date is after today
|
|
}).on("change", function(e, value) {
|
|
if ( ! is_valid_date( $(this).val() ) ) {$(this).val("");}
|
|
});
|
|
|
|
$("#view_restrictions").on("click",function(){
|
|
$('#debarments-tab-link').click();
|
|
});
|
|
});
|
|
function uncheck_sibling(me){
|
|
nodename=me.getAttribute("name");
|
|
if (nodename =="barcodes[]"){
|
|
var Node=me.parentNode.previousSibling;
|
|
while (Node.nodeName!="TD"){Node=Node.previousSibling}
|
|
var Nodes=Node.childNodes;
|
|
for (var i=0;i < Nodes.length;i++){
|
|
if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
|
|
Nodes[i].checked=false;
|
|
}
|
|
}
|
|
} else {
|
|
var Node=me.parentNode.nextSibling;
|
|
while (Node.nodeName!="TD"){Node=Node.nextSibling}
|
|
var Nodes=Node.childNodes;
|
|
for (var i=0;i<Nodes.length;i++){
|
|
if (Nodes[i].nodeName=="INPUT" && Nodes[i].getAttribute("type")=="checkbox"){
|
|
Nodes[i].checked=false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function validate1(date) {
|
|
var today = new Date();
|
|
if ( date < today ) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
};
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|