Koha/koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt
Julian Maurice fdc06dec2a Bug 15471: Add column settings and filters to Holds queue table
Add column visibility menu using DataTables Buttons
Add a text filter on top of each column
Also extend page width so that the large table is better centered

Depends on bug 15285

Test plan
1. Go to Holds queue page (circ/view_holdsqueue.pl)
2. Check that table sorting and filtering work well and that you can
   hide each column
3. Go to Admin > Configure columns and change the settings for this
   table (Circulation > view_holdsqueue > holds-table). Verify that the
   settings work by going again to the Holds queue page
4. Check that filters continue to work after hiding some columns

Tested on top of 15285, works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
2016-02-24 04:00:52 +00:00

224 lines
8.8 KiB
Text

[% USE KohaDates %]
[% USE ItemTypes %]
[% USE Branches %]
[% USE AuthorisedValues %]
[% USE ColumnsSettings %]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Circulation &rsaquo; Holds queue</title>
[% INCLUDE 'doc-head-close.inc' %]
<style type="text/css"> p { margin-top: 0; }</style>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
[% INCLUDE 'datatables.inc' %]
[% INCLUDE 'columns_settings.inc' %]
<script type="text/javascript">//<![CDATA[
$(document).ready(function() {
var holdst;
// Setup filters before DataTables initialisation, in case some columns are
// hidden by default
var filterColumnTimeoutId;
var filterColumn = function(e) {
clearTimeout(filterColumnTimeoutId);
filterColumnTimeoutId = setTimeout(function() {
var input = $(e.target);
var idx = input.parents('td').index();
holdst.api().column(idx + ':visible').search(input.val()).draw();
}, 200);
};
$('#holdst thead input').on('change keyup keydown', filterColumn);
var columns_settings = [% ColumnsSettings.GetColumns('circ', 'view_holdsqueue', 'holds-table', 'json') %];
var holdst = KohaTable("#holdst", {
"aaSorting": [[ 3, "asc" ]],
"aoColumns": [
{ "sType": "anti-the" },null,null,null,null,null,null,null,null,{ "sType": "title-string" },null
],
"sDom": 'B<"clearfix">t',
"bSortCellsTop": true,
"bPaginate": false
}, columns_settings);
});
//]]>
</script>
</head>
<body id="circ_view_holdsqueue" class="circ">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'cat-search.inc' %]
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a>
&rsaquo; <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a>
&rsaquo; <a href="/cgi-bin/koha/circ/view_holdsqueue.pl">Holds queue</a>
[% IF ( run_report ) %] &rsaquo; Results[% END %]
</div>
<div id="doc2" class="yui-t7">
<div id="bd">
<div id="yui-main">
<div class="yui-g">
<h1>Holds queue</h1>
[% IF ( run_report ) %]
[% IF ( total ) %]
<div class="results">[% total %] items found for
[% IF ( branchlimit ) %][% Branches.GetName( branchlimit ) %][% ELSE %]All libraries[% END %]
</div>
[% ELSE %]
<div class="dialog message">No items found.</div>
[% END %]
[% IF ( itemsloop ) %]
<table id="holdst">
<thead>
<tr>
<th class="hq-title">Title</th>
<th class="hq-collection">Collection</th>
<th class="hq-itemtype">Item type</th>
<th class="hq-callnumber">Call number</th>
<th class="hq-copynumber">Copy number</th>
<th class="hq-enumchron">Enumeration</th>
<th class="hq-barcode">Barcode</th>
<th class="hq-patron">Patron</th>
<th class="hq-sendto">Send to</th>
<th class="hq-date">Date</th>
<th class="hq-notes">Notes</th>
</tr>
<tr>
<td class="hq-title">
<span class="filter_column filter_text">
<input class="text_filter" type="text" placeholder="Title">
</span>
</td>
<td class="hq-collection">
<span class="filter_column filter_text">
<input type="text" placeholder="Collection">
</span>
</td>
<td class="hq-itemtype">
<span class="filter_column filter_text">
<input type="text" placeholder="Item type">
</span>
</td>
<td class="hq-callnumber">
<span class="filter_column filter_text">
<input type="text" placeholder="Call number">
</span>
</td>
<td class="hq-copynumber">
<span class="filter_column filter_text">
<input type="text" placeholder="Copy number">
</span>
</td>
<td class="hq-enumchron">
<span class="filter_column filter_text">
<input type="text" placeholder="Enumeration">
</span>
</td>
<td class="hq-barcode">
<span class="filter_column filter_text">
<input type="text" placeholder="Barcode">
</span>
</td>
<td class="hq-patron">
<span class="filter_column filter_text">
<input type="text" placeholder="Patron">
</span>
</td>
<td class="hq-sendto">
<span class="filter_column filter_text">
<input type="text" placeholder="Send to">
</span>
</td>
<td class="hq-date">
<span class="filter_column filter_text">
<input type="text" placeholder="Date">
</span>
</td>
<td class="hq-notes">
<span class="filter_column filter_text">
<input type="text" placeholder="Notes">
</span>
</td>
</tr>
</thead>
<tbody>[% FOREACH itemsloo IN itemsloop %]
<tr>
<td class="hq-title">
<p><a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% itemsloo.biblionumber %]"><strong>[% itemsloo.title | html %]</strong> [% FOREACH s IN itemsloo.subtitle %] [% s %][% END %]</a></p>
<p>
<div class="hq-biblionumber content_hidden">[% itemsloo.biblionumber %]</div>
<div class="hq-author">[% itemsloo.author %]</div>
<div class="hq-pubdata">
[% IF ( itemsloo.publishercode ) %][% itemsloo.publishercode %][% END %]
[% IF ( itemsloo.publicationyear ) %]
, [% itemsloo.publicationyear %]
[% ELSIF ( itemsloo.copyrightdate ) %]
, [% itemsloo.copyrightdate %]
[% END %]
[% IF ( itemsloo.pages ) %]: [% itemsloo.pages %] [% END %]
[% IF ( itemsloo.item('size') ) %][% itemsloo.item('size') %][% END %]
[% IF ( itemsloo.isbn ) %]ISBN: [% itemsloo.isbn %][% END %]
</div>
</p>
</td>
<td class="hq-collection">[% AuthorisedValues.GetByCode( 'CCODE', itemsloo.ccode ) %]</td>
<td class="hq-itemtype">[% ItemTypes.GetDescription( itemsloo.itype ) %]</td>
<td class="hq-callnumber">[% IF ( itemsloo.location ) %]<em>[% AuthorisedValues.GetByCode( 'LOC', itemsloo.location ) %]</em> [% END %][% itemsloo.itemcallnumber %]</td>
<td class="hq-copynumber">[% itemsloo.copynumber %]</td>
<td class="hq-enumchron">[% itemsloo.enumchron %]</td>
<td class="hq-barcode">
[% IF ( itemsloo.item_level_request ) %]
<em>Only Item:</em> <strong>[% itemsloo.barcode %]</strong>
[% ELSE %]
<strong>[% itemsloo.barcode %]</strong> <em>or any available</em>
[% END %]
</td>
<td class="hq-patron"><p><a href="/cgi-bin/koha/circ/circulation.pl?findborrower=[% itemsloo.cardnumber %]#reserves">[% itemsloo.surname %], [% itemsloo.firstname %] ([% itemsloo.cardnumber %])</a></p> <p>[% itemsloo.phone %]</p></td>
<td class="hq-sendto">[% Branches.GetName( itemsloo.pickbranch ) %]</td>
<td class="hq-date"><span title="[% itemsloo.reservedate %]">[% itemsloo.reservedate | $KohaDates %]</span></td>
<td class="hq-notes">[% itemsloo.notes %]</td>
</tr>
[% END %]</tbody>
</table>
[% END %]
[% END %]
[% UNLESS ( total ) %]
<form name="f" action="/cgi-bin/koha/circ/view_holdsqueue.pl" method="post">
<fieldset class="rows">
<ol>
<li><label for="branchlimit">Library: </label><select name="branchlimit" id="branchlimit">
<option value="">All</option>
[% FOREACH branchloo IN branchloop %]
[% IF ( branchloo.selected ) %]<option value="[% branchloo.value %]" selected="selected">[% branchloo.branchname %]</option>
[% ELSE %]
<option value="[% branchloo.value %]">[% branchloo.branchname %]</option>
[% END %]
[% END %]
</select></li>
<!-- FIXME Not working yet
<li><label for="itemtypeslimit">Item Type: </label><select name="itemtypeslimit" id="itemtypeslimit">
<option value="">All</option>
[% FOREACH itemtypeloo IN itemtypeloop %]
[% IF ( itemtypeloo.selected ) %]<option value="[% itemtypeloo.value %]" selected="selected">[% itemtypeloo.description %]</option>
[% ELSE %]
<option value="[% itemtypeloo.value %]">[% itemtypeloo.description %]</option>
[% END %]
[% END %]
</select></li>
-->
</ol></fieldset>
<fieldset class="action"> <input type="submit" value="Submit" />
<input type="hidden" name="run_report" value="1" /></fieldset>
</form>
[% END %]
</div>
</div>
</div>
[% INCLUDE 'intranet-bottom.inc' %]