64b0984a51
This patch introduces 2 sysprefs : RestrictionBlockRenewing to allow/block renewal of items when patron is restricted. OverduesBlockRenewing to allow, block only the late ones or block all checked out items Default is "allow" in both case. Signed-off-by: Matthias Meusburger <matthias.meusburger@biblibre.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
752 lines
57 KiB
Text
752 lines
57 KiB
Text
[% USE Koha %]
|
||
[% USE KohaDates %]
|
||
|
||
[% INCLUDE 'doc-head-open.inc' %]
|
||
<title>[% IF ( LibraryNameTitle ) %][% LibraryNameTitle %][% ELSE %]Koha online[% END %] catalog › Your library home</title>
|
||
[% INCLUDE 'doc-head-close.inc' %]
|
||
[% BLOCK cssinclude %][% END %]
|
||
</head>
|
||
[% INCLUDE 'bodytag.inc' bodyid='opac-user' bodyclass='scrollto' %]
|
||
[% INCLUDE 'masthead.inc' %]
|
||
|
||
<div class="main">
|
||
<ul class="breadcrumb">
|
||
<li><a href="/cgi-bin/koha/opac-main.pl">Home</a> <span class="divider">›</span></li>
|
||
<li>[% FOREACH BORROWER_INF IN BORROWER_INFO %]<a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' category_type = BORROWER_INF.category_type firstname = BORROWER_INF.firstname surname = BORROWER_INF.surname othernames = BORROWER_INF.othernames cardnumber = BORROWER_INF.cardnumber %]</a>[% END %] <span class="divider">›</span></li>
|
||
<li><a href="#">Your summary</a></li>
|
||
</ul>
|
||
|
||
<div class="container-fluid">
|
||
<div class="row-fluid">
|
||
<div class="span2">
|
||
<div id="navigation">
|
||
[% INCLUDE 'navigation.inc' IsPatronPage=1 %]
|
||
</div>
|
||
</div>
|
||
<div class="span10">
|
||
<div id="userdetails" class="maincontent">
|
||
[% IF ( bor_messages ) %]
|
||
<div class="alert alert-info">
|
||
<h3>Messages for you</h3>
|
||
<ul>
|
||
[% FOREACH bor_messages_loo IN bor_messages_loop %]
|
||
<li>
|
||
<strong>[% bor_messages_loo.message %]</strong><br>
|
||
<i>Written on [% bor_messages_loo.message_date | $KohaDates %] by [% bor_messages_loo.branchname %]</i>
|
||
</li>
|
||
[% END %]
|
||
|
||
[% IF ( opacnote ) %]<li>[% opacnote %]</li>[% END %]
|
||
</ul>
|
||
</div>
|
||
[% END # / IF bor_messages %]
|
||
[% FOREACH BORROWER_INF IN BORROWER_INFO %]
|
||
<h2>Hello, [% INCLUDE 'patron-title.inc' category_type = BORROWER_INF.category_type firstname = BORROWER_INF.firstname surname = BORROWER_INF.surname othernames = BORROWER_INF.othernames cardnumber = BORROWER_INF.cardnumber %]
|
||
</h2>
|
||
|
||
<p><a href="/cgi-bin/koha/opac-main.pl?logout.x=1">Click here if you're not [% BORROWER_INF.title %] [% INCLUDE 'patron-title.inc' category_type = BORROWER_INF.category_type firstname = BORROWER_INF.firstname surname = BORROWER_INF.surname othernames = BORROWER_INF.othernames cardnumber = BORROWER_INF.cardnumber %]</a></p>
|
||
|
||
[% IF ( patronupdate ) %]<div class="alert alert-info"><h3>Thank you!</h3><p>Your corrections have been submitted to the library, and a staff member will update your record as soon as possible.</p></div>[% END %]
|
||
|
||
[% IF failed_holds %]
|
||
<div class="alert alert-info">
|
||
<h3>Notice:</h3>
|
||
<p>One or more holds were not placed due to existing holds.</p>
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( BORROWER_INF.warndeparture ) %]
|
||
<div class="alert" id="warndeparture">
|
||
<strong>Please note:</strong><span> Your card will expire on <span id="warndeparture_date">[% BORROWER_INF.warndeparture | $KohaDates %]</span>. Please contact the library for more information.</span>
|
||
[% IF ( BORROWER_INF.returnbeforeexpiry ) %]<span id="warndeparture_returnbeforeexpiry"> Also note that you must return all checked out items before your card expires.</span>[% END %]
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( BORROWER_INF.warnexpired ) %]
|
||
<div class="alert" id="warnexpired">
|
||
<strong>Please note: </strong><span>Your account has expired as of [% BORROWER_INF.warnexpired | $KohaDates %]. Please contact the library if you wish to renew your account.</span>
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( RENEW_ERROR ) %]
|
||
<div class="dialog alert">
|
||
<strong>Please note:</strong>
|
||
<span>
|
||
Your loan renewal failed because of the following reason(s):
|
||
[% FOREACH error IN RENEW_ERROR.split('\|') %]
|
||
[% IF error == 'card_expired' %]
|
||
Your account has expired. Please contact the library for more information.
|
||
[% ELSIF error == 'too_many' %]
|
||
You have renewed this item the maximum number of times allowed.
|
||
[% ELSIF error == 'on_reserve' %]
|
||
This item is on hold for another patron.
|
||
[% END %]
|
||
[% END %]
|
||
</span>
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( patron_flagged ) %]
|
||
<div class="alert">
|
||
<ul>
|
||
[% IF ( userdebarred ) %]
|
||
<li id="userdebarred"><strong>Please note:</strong> Your account has been frozen[% IF ( BORROWER_INF.userdebarreddate ) %] until <span id="userdebarred_date">[% BORROWER_INF.userdebarreddate | $KohaDates %]</span>[% END %][% IF ( BORROWER_INF.debarredcomment ) %] with the comment <span id="userdebarred_comment">"[% BORROWER_INF.debarredcomment %]"</span>[% END %]. Usually the reason for freezing an account is old overdues or damage fees. If <a href="/cgi-bin/koha/opac-user.pl">your account page</a> shows your account to be clear, please contact the library.</li>
|
||
[% END %]
|
||
[% IF ( BORROWER_INF.gonenoaddress ) %]
|
||
<li id="gonenoaddress"><strong>Please note:</strong> According to our records, we don't have up-to-date [% UNLESS ( BORROWER_INF.OPACPatronDetails ) %]<a href="/cgi-bin/koha/opac-userupdate.pl">contact information</a>[% ELSE %]contact information[% END %] on file. Please contact the library[% IF ( BORROWER_INF.OPACPatronDetails ) %] or use the <a href="/cgi-bin/koha/opac-userupdate.pl">online update form</a> to submit current information (<em>Please note:</em> there may be a delay in restoring your account if you submit online)[% END %].</li>
|
||
[% END %]
|
||
[% IF ( BORROWER_INF.lost ) %]
|
||
<li id="lost"><strong>Please note: </strong> Your library card has been marked as lost or stolen. If this is an error, please contact the library.</li>
|
||
[% END %]
|
||
[% IF ( renewal_blocked_fines ) && ( OpacRenewalAllowed ) %]
|
||
<li id="renewal_blocked_fines"><strong>Please note: </strong> Since you have <a href="/cgi-bin/koha/opac-account.pl">[% IF renewal_blocked_fines != "0.00" %] more than <span id="renewal_blocked_fines_amount">[% renewal_blocked_fines %]</span> in [% END %] fines</a>, you cannot renew your books online. Please pay your fines if you wish to renew your books.</li>
|
||
[% END %]
|
||
</ul>
|
||
</div>
|
||
[% END # / IF patron_flagged %]
|
||
|
||
[% SET OPACMySummaryNote = Koha.Preference('OPACMySummaryNote') %]
|
||
[% IF OPACMySummaryNote %][% OPACMySummaryNote %][% END %]
|
||
|
||
<div id="opac-user-views" class="toptabs">
|
||
<ul>
|
||
<li><a href="#opac-user-checkouts">Checked out ([% issues_count %])</a></li>
|
||
[% IF ( overdues_count ) %]<li><a href="#opac-user-overdues">Overdue ([% overdues_count %])</a></li>[% END %]
|
||
[% IF ( OPACFinesTab ) %]
|
||
[% IF ( BORROWER_INF.amountoverfive ) %]<li><a href="#opac-user-fines">Fines ([% BORROWER_INF.amountoutstanding %])</a></li>[% END %]
|
||
[% IF ( BORROWER_INF.amountoverzero ) %]<li><a href="#opac-user-fines">Fines ([% BORROWER_INF.amountoutstanding %])</a></li>[% END %]
|
||
[% IF ( BORROWER_INF.amountlessthanzero ) %]<li><a href="#opac-user-fines">Credits ([% BORROWER_INF.amountoutstanding %])</a></li>[% END %]
|
||
[% END %]
|
||
[% IF ( waiting_count ) %][% IF ( BORROWER_INF.atdestination ) %]<li><a href="#opac-user-waiting">Waiting ([% waiting_count %])</a></li>[% END %][% END %]
|
||
[% IF ( reserves_count ) %]<li><a href="#opac-user-holds">Holds ([% reserves_count %])</a></li>[% END %]
|
||
</ul>
|
||
|
||
<div id="opac-user-checkouts">
|
||
[% IF ( issues_count ) %]
|
||
<form id="renewselected" action="/cgi-bin/koha/opac-renew.pl" method="post">
|
||
<input type="hidden" name="borrowernumber" value="[% borrowernumber %]">
|
||
<input type="hidden" name="from" value="opac_user" />
|
||
<table id="checkoutst" class="table table-bordered table-striped">
|
||
<caption>[% issues_count %] Item(s) checked out</caption>
|
||
<thead>
|
||
<tr>
|
||
[% IF ( JacketImages ) %]<th class="nosort"> </th>[% END %]
|
||
<th class="anti-the">Title</th>
|
||
<th class="title-string psort">Due</th>
|
||
[% UNLESS ( item_level_itypes ) %]
|
||
<th>Item type</th>
|
||
[% END %]
|
||
[% IF ( show_barcode ) %]
|
||
<th>Barcode</th>
|
||
[% END %]
|
||
<th>Call No.</th>
|
||
[% IF ( OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
|
||
<th class="nosort">Renew</th>
|
||
[% END %]
|
||
[% IF ( OPACFinesTab ) %]
|
||
<th>Fines</th>
|
||
[% END %]
|
||
[% IF ( OPACMySummaryHTML ) %]
|
||
<th class="nosort">Links</th>
|
||
[% END %]
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
[% FOREACH ISSUE IN ISSUES %]
|
||
[% IF ( ISSUE.overdue ) %]<tr class="overdue">[% ELSE %]<tr>[% END %]
|
||
[% IF ( JacketImages ) %]<td class="jacketcell">
|
||
|
||
[% IF ( OPACAmazonCoverImages ) %]
|
||
[% IF ( ISSUE.normalized_isbn ) %]
|
||
<a href="http://www.amazon.com/gp/reader/[% ISSUE.normalized_isbn %]/ref=sib_dp_pt/002-7879865-0184864#reader-link" title="View on Amazon.com"><img src="https://images-na.ssl-images-amazon.com/images/P/[% ISSUE.normalized_isbn %].01.THUMBZZZ.jpg" alt="View on Amazon.com" class="item-thumbnail"/></a>
|
||
[% ELSE %]
|
||
<a href="#"><span class="no-image">No cover image available</span></a>
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( GoogleJackets ) %]
|
||
[% IF ( ISSUE.normalized_isbn ) %]
|
||
<div style="display:block;" title="Click to view in Google Books" class="[% ISSUE.normalized_isbn %]" id="gbs-thumbnail[% loop.count %]"></div>
|
||
[% ELSE %]
|
||
<a href="http://books.google.com/books?q=[% ISSUE.title |url %]"><span class="no-image">No cover image available</span></a>
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( BakerTaylorEnabled ) %]
|
||
[% bt_id = ( ISSUE.normalized_upc || ISSUE.normalized_isbn ) %]
|
||
[% IF ( bt_id ) %]
|
||
<a href="https://[% BakerTaylorBookstoreURL |html %][% bt_id %]"><img alt="See Baker & Taylor" src="[% BakerTaylorImageURL |html %][% bt_id %]" /></a>
|
||
[% ELSE %]
|
||
<span class="no-image">No cover image available</span><!-- BakerTaylor needs normalized_upc or normalized_isbn! -->
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( SyndeticsEnabled && SyndeticsCoverImages ) %]
|
||
[% IF ( using_https ) %]
|
||
<img src="https://secure.syndetics.com/index.aspx?isbn=[% ISSUE.normalized_isbn %]/SC.GIF&client=[% SyndeticsClientCode %]&type=xw10&upc=[% ISSUE.normalized_upc %]&oclc=[% ISSUE.normalized_oclc %]" alt="" class="item-thumbnail" />
|
||
[% ELSE %]
|
||
<img src="http://www.syndetics.com/index.aspx?isbn=[% ISSUE.normalized_isbn %]/SC.GIF&client=[% SyndeticsClientCode %]&type=xw10&upc=[% ISSUE.normalized_upc %]&oclc=[% ISSUE.normalized_oclc %]" alt="" class="item-thumbnail" />
|
||
[% END %]
|
||
[% END %]
|
||
|
||
</td>[% END # / IF JacketImages %]
|
||
|
||
<td class="title">
|
||
<a class="title" href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% ISSUE.biblionumber %]">[% ISSUE.title |html %] [% FOREACH subtitl IN ISSUE.subtitle %] [% subtitl.subfield %][% END %]</a>
|
||
<span class="item-details">[% ISSUE.author %]</span>
|
||
</td>
|
||
[% IF ( ISSUE.overdue ) %]
|
||
<td class="date_due overdue">
|
||
<span title="[% ISSUE.date_due %]">
|
||
<span class="tdlabel">Date due:</span>
|
||
[% ISSUE.date_due_sql | $KohaDates as_due_date => 1 %]
|
||
</span>
|
||
</td>
|
||
[% ELSE %]
|
||
<td class="date_due">
|
||
<span title="[% ISSUE.date_due %]">
|
||
<span class="tdlabel">Date due:</span>
|
||
[% ISSUE.date_due_sql | $KohaDates as_due_date => 1 %]
|
||
</span>
|
||
</td>
|
||
[% END %]
|
||
[% UNLESS ( item_level_itypes ) %]
|
||
<td class="itype">
|
||
<span class="tdlabel">Item type:</span>
|
||
[% IF ( ISSUE.imageurl ) %]
|
||
<img src="[% ISSUE.imageurl %]" title="[% ISSUE.description %]" alt="[% ISSUE.description %]" />
|
||
[% END %] [% ISSUE.description %]
|
||
</td>
|
||
[% END %]
|
||
[% IF ( show_barcode ) %]
|
||
<td class="barcode">
|
||
<span class="tdlabel">Barcode:</span>
|
||
[% ISSUE.barcode %]
|
||
</td>
|
||
[% END %]
|
||
<td class="call_no">
|
||
<span class="tdlabel">Call number:</span>
|
||
[% ISSUE.itemcallnumber %]
|
||
</td>
|
||
[% IF ( OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
|
||
<td class="renew">
|
||
[% IF ISSUE.renewed %]<span class="blabel label-success">Renewed!</span><br />[% END %]
|
||
[% IF ( ISSUE.status ) %]
|
||
[% IF ( canrenew ) %]
|
||
<input type="checkbox" name="item" value="[% ISSUE.itemnumber %]"/> <a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&item=[% ISSUE.itemnumber %]&borrowernumber=[% ISSUE.borrowernumber %]">Renew</a>
|
||
[% END %]
|
||
<span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>
|
||
[% ELSIF ( ISSUE.too_many ) %]
|
||
Not renewable
|
||
[% ELSIF ( ISSUE.norenew_overdue ) %]
|
||
Not allowed <span class="renewals">(overdue on a document)</span>
|
||
[% ELSIF ( ISSUE.auto_renew || ISSUE.auto_too_soon ) %]
|
||
Automatic renewal
|
||
<span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>
|
||
[% ELSIF ( ISSUE.too_soon ) %]
|
||
No renewal before [% ISSUE.soonestrenewdate %]
|
||
<span class="renewals">([% ISSUE.renewsleft %] of [% ISSUE.renewsallowed %] renewals remaining)</span>
|
||
[% ELSIF ( ISSUE.on_reserve ) %]
|
||
<span class="renewals">(On hold)</span>
|
||
[% END %]
|
||
</td>
|
||
[% END %]
|
||
[% IF ( OPACFinesTab ) %]
|
||
<td class="fines">
|
||
<span class="tdlabel">Fines:</span>
|
||
[% IF ( ISSUE.charges ) %]
|
||
Yes
|
||
[% ELSE %]
|
||
No
|
||
[% END %]
|
||
</td>
|
||
[% END %]
|
||
[% IF ( OPACMySummaryHTML ) %]
|
||
<td class="links">[% ISSUE.MySummaryHTML %]</td>
|
||
[% END %]
|
||
</tr>
|
||
[% END # /FOREACH ISSUES %]
|
||
</tbody>
|
||
</table>
|
||
[% IF ( canrenew && !userdebarred && OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
|
||
<input type="submit" class="btn" value="Renew selected" />
|
||
[% END %]
|
||
</form>
|
||
|
||
[% IF ( canrenew && !userdebarred && OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
|
||
<form id="renewall" action="/cgi-bin/koha/opac-renew.pl" method="post">
|
||
<input type="hidden" name="from" value="opac_user" />
|
||
<input type="hidden" name="borrowernumber" value="[% borrowernumber %]" />
|
||
[% FOREACH ISSUE IN ISSUES %]
|
||
<input type="hidden" name="item" value="[% ISSUE.itemnumber %]" />
|
||
[% END %]
|
||
<input type="submit" class="btn" value="Renew all" />
|
||
</form>
|
||
[% END %]
|
||
[% ELSE %]
|
||
<table class="table table-bordered table-striped">
|
||
<tr><td>You have nothing checked out</td></tr>
|
||
</table>
|
||
[% END # IF issues_count %]
|
||
</div> <!-- / .opac-user-checkouts -->
|
||
|
||
[% IF ( OPACFinesTab ) %]
|
||
<!-- FINES BOX -->
|
||
[% IF ( BORROWER_INF.amountoverfive ) %]
|
||
<div id="opac-user-fines"> <h3>Fines and charges</h3>
|
||
<table class="table table-bordered table-striped">
|
||
<thead><tr><th colspan="2">Amount</th></tr></thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>You currently owe fines and charges amounting to:</td>
|
||
<td><a href="/cgi-bin/koha/opac-account.pl">[% BORROWER_INF.amountoutstanding %]</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( BORROWER_INF.amountoverzero ) %]
|
||
<div id="opac-user-fines"> <h3>Fines and charges</h3>
|
||
<table class="table table-bordered table-striped">
|
||
<thead><tr><th colspan="2">Amount</th></tr></thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>You currently owe fines and charges amounting to:</td>
|
||
<td><a href="/cgi-bin/koha/opac-account.pl">[% BORROWER_INF.amountoutstanding %]</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
[% END %]
|
||
|
||
[% IF ( BORROWER_INF.amountlessthanzero ) %]
|
||
<div id="opac-user-fines"> <h3>Credits</h3>
|
||
<table class="table table-bordered table-striped">
|
||
<thead><tr><th colspan="2">Amount</th></tr></thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>You have a credit of:</td><td><a href="/cgi-bin/koha/opac-account.pl">[% BORROWER_INF.amountoutstanding %]</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
[% END %]
|
||
[% END # / OPACFinesTab %]
|
||
|
||
[% END # / FOREACH BORROWER_INFO %]
|
||
|
||
[% IF ( waiting_count && atdestination ) %]
|
||
<div id="opac-user-waiting">
|
||
<table id="waitingt" class="table table-bordered table-striped">
|
||
<caption>Holds waiting</caption>
|
||
<thead>
|
||
<tr>
|
||
<th class="anti-the">Title</th>
|
||
<th>Hold date</th>
|
||
<th>Pick up library</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
[% FOREACH WAITIN IN WAITING %]
|
||
<tr>
|
||
<td><img src="[% themelang %]/images/[% WAITIN.itemtype %].gif" alt="[% WAITIN.itemtype %]" title="[% WAITIN.itemtype %]" /></td>
|
||
<td>
|
||
<a class="title" href="opac-detail.pl?biblionumber=[% WAITIN.biblionumber %]">
|
||
[% WAITIN.waiting_title %] [% FOREACH subtitl IN WAITIN.subtitle %] [% subtitl.subfield %][% END %]
|
||
</a>
|
||
<span class="item-details">
|
||
[% WAITIN.author %]
|
||
</span></td>
|
||
<td>
|
||
<span class="tdlabel">Hold date:</span>
|
||
[% WAITIN.reservedate | $KohaDates %]</td>
|
||
<td>
|
||
[% IF ( WAITIN.atdestination ) %]
|
||
<strong>Waiting</strong> at [% WAITIN.branch %]
|
||
[% ELSE %]
|
||
In transit from [% WAITIN.holdingbranch %] to [% WAITIN.branch %]
|
||
[% END %]
|
||
</td>
|
||
</tr>
|
||
[% END %]
|
||
</tbody>
|
||
</table>
|
||
</div> <!-- /#opac-user-waiting -->
|
||
[% END # waiting_count && atdestination %]
|
||
|
||
|
||
[% IF ( overdues_count ) %]
|
||
<div id="opac-user-overdues">
|
||
<table id="overduest" class="table table-bordered table-striped">
|
||
<caption>Overdues <span class="count">([% overdues_count %] total)</span></caption>
|
||
<!-- OVERDUES TABLE ROWS -->
|
||
<thead>
|
||
<tr>
|
||
[% IF ( JacketImages ) %]<th class="nosort"> </th>[% END %]
|
||
<th class="anti-the">Title</th>
|
||
[% UNLESS ( item_level_itypes ) %]<th>Item type</th> [% END %]
|
||
[% IF ( show_barcode ) %]<th>Barcode</th>[% END %]
|
||
<th>Call no.</th>
|
||
<th class="title-string psort">Due</th>
|
||
[% IF ( OpacRenewalAllowed ) %]
|
||
<th class="nosort">Renew</th>
|
||
[% END %]
|
||
[% IF ( OPACFinesTab ) %]
|
||
<th>Fines</th>
|
||
[% END %]
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
[% FOREACH OVERDUE IN OVERDUES %]
|
||
<tr>
|
||
[% IF ( JacketImages ) %]
|
||
<td class="jacketcell">
|
||
[% IF ( OPACAmazonCoverImages ) %]
|
||
[% IF ( OVERDUE.normalized_isbn ) %]
|
||
<a href="http://www.amazon.com/gp/reader/[% OVERDUE.normalized_isbn %]/ref=sib_dp_pt/002-7879865-0184864#reader-link" title="View on Amazon.com"><img src="https://images-na.ssl-images-amazon.com/images/P/[% OVERDUE.normalized_isbn %].01.THUMBZZZ.jpg" alt="View on Amazon.com" class="item-thumbnail" /></a>
|
||
[% ELSE %]
|
||
<a href="#"><span class="no-image">No cover image available</span></a>
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( GoogleJackets ) %]
|
||
[% IF ( OVERDUE.normalized_isbn ) %]
|
||
<div style="display:block;" title="Click to view in Google Books" class="[% OVERDUE.normalized_isbn %]" id="gbs-thumbnail[% loop.count %]"></div>
|
||
[% ELSE %]
|
||
<a href="http://books.google.com/books?q=[% OVERDUE.title |url %]"><span class="no-image">No cover image available</span></a>
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( BakerTaylorEnabled ) %]
|
||
[% bt_id = ( OVERDUE.normalized_upc || OVERDUE.normalized_isbn ) %]
|
||
[% IF ( bt_id ) %]
|
||
<a href="https://[% BakerTaylorBookstoreURL |html %][% bt_id %]"><img alt="See Baker & Taylor" src="[% BakerTaylorImageURL |html %][% bt_id %]" /></a>
|
||
[% ELSE %]
|
||
<span class="no-image">No cover image available</span><!-- BakerTaylor needs normalized_upc or normalized_isbn! -->
|
||
[% END %]
|
||
[% END %]
|
||
|
||
[% IF ( SyndeticsCoverImages ) %]
|
||
[% IF ( using_https ) %]
|
||
<img src="https://secure.syndetics.com/index.aspx?isbn=[% OVERDUE.normalized_isbn %]/SC.GIF&client=[% SyndeticsClientCode %]&upc=[% OVERDUE.normalized_upc %]&oclc=[% OVERDUE.normalized_oclc %]&type=xw10" alt="" class="item-thumbnail" />
|
||
[% ELSE %]
|
||
<img src="http://www.syndetics.com/index.aspx?isbn=[% OVERDUE.normalized_isbn %]/SC.GIF&client=[% SyndeticsClientCode %]&upc=[% OVERDUE.normalized_upc %]&oclc=[% OVERDUE.normalized_oclc %]&type=xw10" alt="" class="item-thumbnail" />
|
||
[% END %]
|
||
[% END %]
|
||
</td>
|
||
[% END # /IF jacketcell %]
|
||
|
||
<td>
|
||
<a class="title" href="/cgi-bin/koha/opac-detail.pl?bib=[% OVERDUE.biblionumber %]">[% OVERDUE.title |html %] [% FOREACH subtitl IN OVERDUE.subtitle %] [% subtitl.subfield %][% END %]
|
||
</a>
|
||
<span class="item-details">[% OVERDUE.author %]</span></td>
|
||
|
||
[% UNLESS ( item_level_itypes ) %]
|
||
<td>
|
||
[% IF ( OVERDUE.imageurl ) %]
|
||
<img src="[% OVERDUE.imageurl %]" title="[% OVERDUE.description %]" alt="[% OVERDUE.description %]" />
|
||
[% END %] [% OVERDUE.description %]
|
||
</td>
|
||
[% END %]
|
||
[% IF ( show_barcode ) %]
|
||
<td>
|
||
<span class="tdlabel">Barcode:</span>
|
||
[% OVERDUE.barcode %]
|
||
</td>
|
||
[% END %]
|
||
<td>
|
||
<span class="tdlabel">Call number:</span>
|
||
[% OVERDUE.itemcallnumber %]
|
||
</td>
|
||
<td>
|
||
<span title="[% OVERDUE.date_due %]">
|
||
<span class="tdlabel">Date due:</span>
|
||
[% OVERDUE.date_due_sql | $KohaDates as_due_date => 1 %]
|
||
</span>
|
||
</td>
|
||
[% IF ( OpacRenewalAllowed ) %]
|
||
<td>
|
||
[% IF ( OVERDUE.debarred ) %]
|
||
Account frozen
|
||
[% ELSIF ( OVERDUE.status ) %]
|
||
[% IF ( canrenew ) %]
|
||
<a href="/cgi-bin/koha/opac-renew.pl?from=opac_user&item=[% OVERDUE.itemnumber %]&bornum=[% OVERDUE.borrowernumber %]">Renew</a>
|
||
[% END %]
|
||
<span class="renewals">([% OVERDUE.renewsleft %] of [% OVERDUE.renewsallowed %] renewals remaining)</span>
|
||
[% ELSIF ( OVERDUE.norenew_overdue ) %]
|
||
Not allowed<span class="renewals">(overdue on a document)</span>
|
||
[% ELSIF ( OVERDUE.onreserve ) %]
|
||
On hold
|
||
[% ELSE %]
|
||
No renewals left
|
||
[% END %]
|
||
</td>
|
||
[% END %]
|
||
[% IF ( OPACFinesTab ) %]
|
||
<td>
|
||
<span class="tdlabel">Fines:</span>
|
||
[% IF ( OVERDUE.charges ) %]
|
||
Yes
|
||
[% ELSE %]
|
||
No
|
||
[% END %]
|
||
</td>
|
||
[% END %]
|
||
</tr>
|
||
[% END %]
|
||
</tbody>
|
||
</table>
|
||
</div> <!-- / #opac-user-overdues -->
|
||
[% END # /overdues_count %]
|
||
|
||
|
||
[% IF ( reserves_count ) %]
|
||
<div id="opac-user-holds">
|
||
<table id="holdst" class="table table-bordered table-striped">
|
||
<caption>Holds <span class="count">([% reserves_count %] total)</span></caption>
|
||
<!-- RESERVES TABLE ROWS -->
|
||
<thead>
|
||
<tr>
|
||
<th class="anti-the">Title</th>
|
||
<th class="psort">Placed on</th>
|
||
<th>Expires on</th>
|
||
<th>Pick up location</th>
|
||
[% IF ( showpriority ) %]
|
||
<th>Priority</th>
|
||
[% END %]
|
||
<th>Status</th>
|
||
[% IF SuspendHoldsOpac %]
|
||
<th class="nosort" >Suspend</th>
|
||
[% END %]
|
||
<th class="nosort">Modify</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
[% FOREACH RESERVE IN RESERVES %]
|
||
[% IF ( RESERVE.wait ) %]
|
||
[% IF ( RESERVE.atdestination ) %]
|
||
[% IF ( RESERVE.found ) %]
|
||
<tr class="reserved">
|
||
[% ELSE %]
|
||
<tr>
|
||
[% END %]
|
||
[% ELSE %]
|
||
<tr class="transfered">
|
||
[% END %]
|
||
[% ELSE %]
|
||
<tr>
|
||
[% END %]
|
||
<td class="title">
|
||
<a class="title" href="/cgi-bin/koha/opac-detail.pl?biblionumber=[% RESERVE.biblionumber %]">
|
||
[% RESERVE.reserves_title %]
|
||
[% FOREACH subtitl IN RESERVE.subtitle %]
|
||
[% subtitl.subfield %]
|
||
[% END %]
|
||
[% RESERVE.enumchron %]
|
||
</a>
|
||
[% RESERVE.author %]
|
||
</td>
|
||
<td class="reservedate">
|
||
<span title="[% RESERVE.reservedate %]">
|
||
<span class="tdlabel">Hold date:</span>
|
||
[% RESERVE.reservedate | $KohaDates %]
|
||
</span>
|
||
</td>
|
||
<td class="expirationdate">
|
||
[% IF ( RESERVE.expirationdate ) %]
|
||
<span>
|
||
<span class="tdlabel">Expiration:</span>
|
||
[% RESERVE.expirationdate | $KohaDates %]
|
||
</span>
|
||
[% ELSE %]
|
||
<span class="tdlabel">Expiration:</span>
|
||
Never expires
|
||
[% END %]
|
||
</td>
|
||
<td class="branch">
|
||
<span class="tdlabel">Pick up location:</span>
|
||
[% RESERVE.branch %]
|
||
</td>
|
||
[% IF ( showpriority ) %]
|
||
<td class="priority">
|
||
<span class="tdlabel">Priority:</span>
|
||
[% RESERVE.priority %]
|
||
</td>
|
||
[% END %]
|
||
<td class="status">
|
||
<span class="tdlabel">Status:</span>
|
||
[% IF ( RESERVE.wait ) %]
|
||
[% IF ( RESERVE.atdestination ) %]
|
||
[% IF ( RESERVE.found ) %]
|
||
Item waiting at <b> [% RESERVE.wbrname %]</b>[% IF ( RESERVE.waitingdate ) %] since [% RESERVE.waitingdate | $KohaDates %][% END %]
|
||
<input type="hidden" name="pickup" value="[% RESERVE.wbrcd %]" />
|
||
[% ELSE %]
|
||
Item waiting to be pulled from <b> [% RESERVE.wbrname %]</b>
|
||
[% END %]
|
||
[% ELSE %]
|
||
Item in transit to <b> [% RESERVE.wbrname %]</b> <input type="hidden" name="pickup" value="[% RESERVE.wbrcd %]" />
|
||
[% END %]
|
||
[% ELSE %]
|
||
[% IF ( RESERVE.intransit ) %]
|
||
Item in transit from <b> [% RESERVE.frombranch %]</b> since
|
||
[% RESERVE.datesent | $KohaDates %]
|
||
[% ELSIF ( RESERVE.suspend ) %]
|
||
Suspended [% IF ( RESERVE.suspend_until ) %] until [% RESERVE.suspend_until %] [% END %]
|
||
[% ELSE %]
|
||
Pending
|
||
[% END %]
|
||
[% END %]
|
||
</td>
|
||
[% IF SuspendHoldsOpac %]
|
||
<td>
|
||
[% IF ( RESERVE.cancelable ) %]
|
||
[% IF RESERVE.suspend %]
|
||
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
|
||
<input type="hidden" name="reserve_id" value="[% RESERVE.reserve_id %]" />
|
||
<button class="btn btn-link" type="submit" name="submit"><i class="icon-play"></i> Resume</button>
|
||
</form>
|
||
[% ELSE %]
|
||
[% IF AutoResumeSuspendedHolds %]
|
||
<a class="btn btn-link js-show" href="#suspendModal[% RESERVE.reserve_id %]" role="button" data-toggle="modal"><i class="icon-pause"></i> Suspend</a>
|
||
[% # hold suspend modal form %]
|
||
<div id="suspendModal[% RESERVE.reserve_id %]" class="modal-nojs" tabindex="-1" role="dialog" aria-labelledby="suspendModal[% RESERVE.reserve_id %]Label" aria-hidden="true">
|
||
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
|
||
<div class="modal-header">
|
||
<button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
|
||
[% IF RESERVE.suspend %]
|
||
<h3 id="suspendModal[% RESERVE.reserve_id %]Label">Resume your hold on <i>[% RESERVE.reserves_title %]</i></h3>
|
||
[% ELSE %]
|
||
<h3 id="suspendModal[% RESERVE.reserve_id %]Label">Suspend your hold on <i>[% RESERVE.reserves_title %]</i></h3>
|
||
[% END %]
|
||
</div>
|
||
<div class="modal-body">
|
||
<input type="hidden" name="reserve_id" value="[% RESERVE.reserve_id %]" />
|
||
<label for="suspend_until_[% RESERVE.reserve_id %]">Suspend until:</label>
|
||
<input name="suspend_until" id="suspend_until_[% RESERVE.reserve_id %]" class="suspend-until" size="10" />
|
||
[% INCLUDE 'date-format.inc' %]
|
||
<p class="js-show"><a href="#" onclick="document.getElementById('suspend_until_[% RESERVE.reserve_id %]').value='';return false;">Clear date to suspend indefinitely</a></p>
|
||
<button class="btn btn-mini js-hide" type="submit" name="submit">Suspend</button>
|
||
</div>
|
||
<div class="modal-footer">
|
||
<button class="btn btn-primary" type="submit" name="submit">Suspend</button>
|
||
<a href="#" data-dismiss="modal" aria-hidden="true" class="cancel">Cancel</a>
|
||
</div>
|
||
</form>
|
||
</div> <!-- /#suspendModal[% RESERVE.reserve_id %] -->
|
||
[% ELSE %]
|
||
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
|
||
<input type="hidden" name="reserve_id" value="[% RESERVE.reserve_id %]" />
|
||
<button class="btn btn-link" type="submit" name="submit"><i class="icon-pause"></i> Suspend</button>
|
||
</form>
|
||
[% END # / IF AutoResumeSuspendedHolds %]
|
||
[% END # / IF RESERVE.suspend %]
|
||
[% END # / IF ( RESERVE.cancelable )%]
|
||
</td>
|
||
[% END # / IF SuspendHoldsOpac %]
|
||
<td class="modify">
|
||
[% IF ( RESERVE.cancelable ) %]
|
||
<form action="/cgi-bin/koha/opac-modrequest.pl" method="post">
|
||
<input type="hidden" name="biblionumber" value="[% RESERVE.biblionumber %]" />
|
||
<input type="hidden" name="reserve_id" value="[% RESERVE.reserve_id %]" />
|
||
<button type="submit" name="submit" class="btn btn-mini btn-danger" onclick="return confirmDelete(MSG_CONFIRM_DELETE_HOLD);"><i class="icon-remove icon-white"></i> Cancel</button></form>
|
||
[% END %]
|
||
</td>
|
||
</tr>
|
||
[% END # /FOREACH RESERVES %]
|
||
</tbody>
|
||
</table>
|
||
|
||
[% IF SuspendHoldsOpac %]
|
||
<div>
|
||
<form class="form-inline" action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
|
||
<button type="submit" name="submit" class="btn" onclick="return confirmDelete(MSG_CONFIRM_SUSPEND_HOLDS);"><i class="icon-pause"></i> Suspend all holds</button>
|
||
<input type="hidden" name="suspend" value="1" />
|
||
|
||
[% IF AutoResumeSuspendedHolds %]
|
||
<label for="suspend_until"> until </label>
|
||
<input name="suspend_until" id="suspend_until" class="suspend-until" readonly="readonly" size="10" />
|
||
<a href="#" style="font-size:85%;text-decoration:none;" onclick="document.getElementById('suspend_until').value='';return false;">Clear date to suspend indefinitely</a>
|
||
[% END %]
|
||
</form>
|
||
</div>
|
||
<br/>
|
||
<div>
|
||
<form action="/cgi-bin/koha/opac-modrequest-suspend.pl" method="post">
|
||
<button type="submit" name="submit" class="btn" onclick="return confirmDelete(MSG_CONFIRM_RESUME_HOLDS);"><i class="icon-play"></i> Resume all suspended holds</button>
|
||
<input type="hidden" name="suspend" value="0" />
|
||
</form>
|
||
</div>
|
||
[% END %]
|
||
</div> <!-- / #opac-user-holds -->
|
||
[% END # / #reserves_count %]
|
||
</div> <!-- /#opac-user-views -->
|
||
</div> <!-- /#userdetails -->
|
||
</div> <!-- /.span10 -->
|
||
</div> <!-- /.row-fluid -->
|
||
</div> <!-- /.container-fluid -->
|
||
</div> <!-- /#main -->
|
||
|
||
[% INCLUDE 'opac-bottom.inc' %]
|
||
|
||
|
||
[% BLOCK jsinclude %]
|
||
[% INCLUDE 'calendar.inc' %]
|
||
[% INCLUDE 'datatables.inc' %]
|
||
<script type="text/JavaScript">
|
||
//<![CDATA[
|
||
var MSG_CONFIRM_DELETE_HOLD = _("Are you sure you want to cancel this hold?");
|
||
var MSG_CONFIRM_SUSPEND_HOLDS = _("Are you sure you want to suspend all holds?");
|
||
var MSG_CONFIRM_RESUME_HOLDS = _("Are you sure you want to resume all suspended holds?");
|
||
|
||
$(document).ready(function(){
|
||
$('#opac-user-views').tabs();
|
||
$(".js-show").show();
|
||
$(".js-hide").hide();
|
||
$(".modal-nojs").addClass("modal").addClass("hide").removeClass("modal-nojs");
|
||
$(".suspend-until").prop("readonly",1);
|
||
var dTables = $("#checkoutst,#holdst,#overduest");
|
||
dTables.each(function(){
|
||
var thIndex = $(this).find("th.psort").index();
|
||
$(this).dataTable($.extend(true, {}, dataTablesDefaults, {
|
||
"aaSorting" : [[ thIndex, 'asc' ]],
|
||
"aoColumnDefs": [
|
||
{ "aTargets": [ "nosort" ],"bSortable": false,"bSearchable": false },
|
||
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] },
|
||
{ "sType": "title-string", "aTargets" : [ "title-string" ] }
|
||
]
|
||
}));
|
||
});
|
||
|
||
[% IF ( GoogleJackets ) %]KOHA.Google.GetCoverFromIsbn();[% END %]
|
||
[% IF ( OpacRenewalAllowed && canrenew && !userdebarred ) %]
|
||
$("#renewselected").submit(function(){
|
||
valid = false;
|
||
$("input[type=checkbox]").each(function(){
|
||
if($(this).is(':checked')){
|
||
valid = true;
|
||
}
|
||
});
|
||
if(!valid){
|
||
alert(_("Nothing has been selected. Check the box for each item you want to renew"));
|
||
}
|
||
return valid;
|
||
});
|
||
$("body").on("click","#renewselected_link",function(e){
|
||
e.preventDefault();
|
||
$("#renewselected").submit();
|
||
});
|
||
$("body").on("click","#renewall_link",function(e){
|
||
e.preventDefault();
|
||
$("#renewall").submit();
|
||
});
|
||
[% IF ( canrenew && !userdebarred && OpacRenewalAllowed && !( borrower.is_expired && borrower.BlockExpiredPatronOpacActions ) ) %]
|
||
$("#checkoutst caption").append("<div id=\"renewcontrols\"><a id=\"renewselected_link\" href=\"#\">"+_("Renew selected")+"</a> <a id=\"renewall_link\" href=\"#\">"+_("Renew all")+"</a></div>");
|
||
[% END %]
|
||
[% END %]
|
||
|
||
$( ".suspend-until" ).datepicker({ minDate: 1 }); // Require that "until date" be in the future
|
||
});
|
||
//]]>
|
||
</script>
|
||
[% END %]
|