Koha/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-holdshistory.tt
Tomas Cohen Arazi 9e28725966
Bug 22456: (QA follow-up) Consider cancellation requested as cancelled in OPAC
This patch adds a helper method for filtering out cancellation
requested-holds from resultsets, and makes use of it in the OPAC to
filter out those in the current holds tab. Holds history now shows
'Waiting (cancellation requested)' on those.

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
2022-07-29 15:28:45 -03:00

204 lines
10 KiB
Text

[% USE raw %]
[% USE Koha %]
[% USE Branches %]
[% USE KohaDates %]
[% USE TablesSettings %]
[% USE ItemTypes %]
[% USE AdditionalContents %]
[% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %]
[% SET OpacNavBottom = AdditionalContents.get( location => "OpacNavBottom", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Your holds history &rsaquo; [% IF ( LibraryNameTitle ) %][% LibraryNameTitle | html %][% ELSE %]Koha online[% END %] catalog</title>
[% INCLUDE 'doc-head-close.inc' %]
[% BLOCK cssinclude %]
<style>
.controls .paginate_button {
font-family: 'FontAwesome';
text-decoration: none;
}
.controls .paginate_button:not(.disabled) {
cursor: pointer;
}
.controls .paginate_button.disabled {
color: grey;
}
.controls .previous:before {
content: "\f104";
padding-right: .5em;
}
.controls .next:after {
content: "\f105";
padding-left: .5em;
}
</style>
[% END %]
</head>
[% INCLUDE 'bodytag.inc' bodyid='opac-holdshistory' %]
[% INCLUDE 'masthead.inc' %]
<div class="main">
<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumbs">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="/cgi-bin/koha/opac-main.pl">Home</a>
</li>
<li class="breadcrumb-item">
<a href="/cgi-bin/koha/opac-user.pl">[% INCLUDE 'patron-title.inc' patron = logged_in_user %]</a>
</li>
<li class="breadcrumb-item active">
<a href="#" aria-current="page">Your holds history</a>
</li>
</ol>
</nav> <!-- /#breadcrumbs -->
<div class="container-fluid">
<div class="row">
<div class="col col-lg-2 order-2 order-lg-1">
<div id="navigation">
[% INCLUDE 'navigation.inc' IsPatronPage=1 %]
</div>
</div>
<div class="col-md-12 col-lg-10 order-1">
<div id="userholdshistory">
<h1>Holds history</h1>
[% IF !holds %]
No data available
[% ELSE %]
[% SET show_itemtype_column = Koha.Preference('AllowHoldItemTypeSelection') %]
<div id="opac-user-holdsrec">
<div id="tabs-container">
<div class="controls">
<div class="resultscontrol resort">
<form id="sortform" action="/cgi-bin/koha/opac-holdshistory.pl" method="get">
[% IF ( unlimit ) %]<input type="hidden" name="unlimit" value="1" />[% END %]
<select name="sort" id="sort">
[% IF ( sort == 'reservedate' ) %]<option value="reservedate" selected="selected">Order by date</option>[% ELSE %]<option value="reservedate">Order by date</option>[% END %]
[% IF ( sort == 'biblio.title' ) %]<option value="biblio.title" selected="selected">Order by title</option>[% ELSE %]<option value="biblio.title">Order by title</option>[% END %]
[% IF ( sort == 'biblio.author' ) %]<option value="biblio.author" selected="selected">Order by author</option>[% ELSE %]<option value="biblio.author">Order by author</option>[% END %]
</select>
<input type="submit" value="Go" id="sortsubmit" class="submit clearfix" />
</form>
</div>
[% UNLESS unlimit %]
<p>
Showing 50 items. <a href="/cgi-bin/koha/opac-holdshistory.pl?unlimit=1[% IF ( sort ) %]&amp;sort=[% sort | url %][% END %]">Show all items</a>
</p>
[% ELSE %]
<p>
Showing all items. <a href="/cgi-bin/koha/opac-holdshistory.pl[% IF ( sort ) %]?sort=[% sort | url %][% END %]">Show 50 items</a>
</p>
[% END %]
</div>
<table id="table_holdshistory" class="table table-bordered table-striped">
<caption class="sr-only">Holds history</caption>
<thead>
<tr>
<th class="anti-the">Title</th>
<th>Author</th>
<th>Barcode</th>
<th>Library</th>
<th>Hold date</th>
<th>Expiration date</th>
<th>Waiting date</th>
<th>Cancellation date</th>
[% IF show_itemtype_column %]
<th>Requested item type</th>
[% END %]
<th>Status</th>
</tr>
</thead>
<tbody>
[% FOREACH hold IN holds %]
<tr>
<td>[% INCLUDE 'biblio-title.inc' biblio=hold.biblio link=>1 %]</td>
<td>[% hold.biblio.author | html %]</td>
<td>[% hold.item.barcode | html %]</td>
<td>[% Branches.GetName( hold.branchcode ) | html %]</td>
<td data-order="[% hold.reservedate | html %]">[% hold.reservedate | $KohaDates %]</td>
<td data-order="[% hold.expirationdate | html %]">
[% IF hold.expirationdate %]
[% hold.expirationdate | $KohaDates %]
[% END %]
</td>
<td data-order="[% hold.waitingdate | html %]">
[% IF hold.waitingdate %]
[% hold.waitingdate | $KohaDates %]
[% END %]
</td>
<td data-order="[% hold.cancellationdate | html %]">
[% IF hold.cancellationdate %]
[% hold.cancellationdate | $KohaDates %]
[% END %]
</td>
[% IF show_itemtype_column %]
<td>
[% IF hold.itemtype %]
[% ItemTypes.GetDescription( hold.itemtype ) | html %]
[% ELSE %]
<span>Any item type</span>
[% END %]
</td>
[% END %]
<td>
[% IF hold.found == 'F' %]
<span>Fulfilled</span>
[% ELSIF hold.cancellationdate %]
<span>Cancelled</span>
[% ELSIF hold.found == 'W' %]
[% IF hold.cancellation_requests.count == 0 %]
<span>Waiting</span>
[% ELSE %]
<span>Cancelled</span>
[% END %]
[% ELSIF hold.found == 'T' %]
<span>In transit</span>
[% ELSE %]
<span>Pending</span>
[% END %]
</td>
</tr>
[% END %]
</tbody>
</table>
</div> <!-- / .tabs-container -->
</div> <!-- / .opac-user-holdsrec -->
[% END # / IF old_holds_count %]
</div> <!-- / .userholdshistory -->
</div> <!-- / .span10 -->
</div> <!-- / .row-fluid -->
</div> <!-- / .container-fluid -->
</div> <!-- / .main -->
[% INCLUDE 'opac-bottom.inc' %]
[% BLOCK jsinclude %]
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
<script>
$(document).ready(function() {
$('#sort').change(function() {
$('#sortform').submit();
});
var columns_settings = []; // Empty because there are no columns we want to be configurable
var table = KohaTable("#table_holdshistory", {
"dom": '<"top"<"table_entries"i><"table_controls"fB>>t',
"autoWidth": false,
"sorting": [[4, 'desc']],
"columnDefs": [
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] }
],
"language": {
"search": "_INPUT_",
"searchPlaceholder": _("Search")
}
}, columns_settings);
});
</script>
[% END %]