+[% USE raw %]
+[% USE Asset %]
+[% USE KohaDates %]
+[% USE AuthorisedValues %]
+[% USE Branches %]
+[% USE ItemTypes %]
+[% USE TablesSettings %]
+[% SET footerjs = 1 %]
[% INCLUDE 'doc-head-open.inc' %]
-<title>Koha › Circulation › Hold ratios</title>
+<title>Hold ratios › Circulation › Koha</title>
[% INCLUDE 'doc-head-close.inc' %]
-<!-- Additions to enable Calendar system -->
-<link rel="stylesheet" type="text/css" href="[% themelang %]/lib/calendar/calendar-system.css" />
-<!-- End of additions --><!-- Additions to enable Calendar system -->
-<script type="text/javascript" src="[% themelang %]/lib/calendar/calendar.js"></script>
-<script type="text/javascript" src="[% themelang %]/lib/calendar/calendar-en.js"></script>
-<script type="text/javascript" src="[% themelang %]/lib/calendar/calendar-setup.js"></script>
-<!-- End of additions -->
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
-<script type="text/javascript">
-//<![CDATA[
-$.tablesorter.addParser({
- id: 'articles',
- is: function(s) {return false; },
- format: function(s) { return s.toLowerCase().replace(/^(the|an|a) /,''); },
- type: 'text'
-});
- $(document).ready(function() {
- $("th a").hide();
- $(".ratiolimit").click(function () {
- $("#ratio").val($(this).html());
- });
- $(".ratiolimit").hover(
- function () { $(this).toggleClass("ulined") },
- function () { $(this).toggleClass("ulined") }
- );
- $.tablesorter.defaults.widgets = ['zebra'];
- $("#holdst:has(tbody tr)").tablesorter({ // only add sort if the table has a body and rows
- sortList: [[0,1]],
- headers: { 1: { sorter: 'articles' }}
- });
- });
-//]]>
-</script>
-<style type="text/css">
+<style>
.sql { display: none; }
.ulined { text-decoration: underline; }
- .ratiolimit { color: blue; cursor: pointer; }
+ #holdst ul li { list-style: outside url("[% interface | html %]/[% theme | html %]/img/item-bullet.svg") disc; }
</style>
</head>
+
<body id="circ_reserveratios" class="circ">
[% INCLUDE 'header.inc' %]
[% INCLUDE 'circ-search.inc' %]
-<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a> › Hold ratios</div>
+<nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
+ <ol>
+ <li>
+ <a href="/cgi-bin/koha/mainpage.pl">Home</a>
+ </li>
+ <li>
+ <a href="/cgi-bin/koha/circ/circulation-home.pl">Circulation</a>
+ </li>
+ <li>
+ <a href="#" aria-current="page">
+ Hold ratios
+ </a>
+ </li>
+ </ol>
+</nav>
+
+<div class="main container-fluid">
+ <div class="row">
+ <div class="col-sm-10 col-sm-push-2">
+ <main>
-<div id="doc3" class="yui-t2">
-
- <div id="bd">
- <div id="yui-main">
- <div class="yui-b">
<h1>Hold ratios to calculate items needed</h1>
- <h3>Calculated on [% todaysdate %]. From [% from %]
- to [% to %]</h3>
-<p>These items have a hold ratio ≥ [% ratio %].</p>
-<div class="sql">[% sql %]</div>
+ <h3>Calculated on [% todaysdate | $KohaDates %]. From [% from | $KohaDates %]
+ to [% to | $KohaDates %]</h3>
+<p>These items have a hold ratio ≥ [% ratio | html %].</p>
+<div class="sql">[% sql | html %]</div>
[% IF ( reserveloop ) %]
<table id="holdst">
-<thead> <tr>
- <th>Holds
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=reservecount&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Items
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=itemcount&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Hold ratio</th>
- <th>Title
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=biblio&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Holding libraries
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=branch&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Location
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=location&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Itype
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=itype&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Call numbers
- <a href="/cgi-bin/koha/circ/reserveratios.pl?ratio=[% ratio %]&order=callnumber&from=[% from %]&to=[% to %]">Sort</a>
- </th>
- <th>Items needed
- </th>
- </tr></thead>
-
- <tbody>[% FOREACH reserveloo IN reserveloop %]
+ <thead>
<tr>
- <td><p>[% reserveloo.reservecount %]</p></td>
- <td><p>[% reserveloo.itemcount %]</p></td>
- <td><p class="ratiolimit">[% reserveloo.thisratio %]</p></td>
- <td> [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %][% reserveloo.title |html %] [% IF ( reserveloo.subtitle ) %][% FOREACH subtitl IN reserveloo.subtitle %][% subtitl.subfield %][% END %][% END %]</a>[% IF ( reserveloo.author ) %] by [% reserveloo.author %][% END %]
+ <th>Holds</th>
+ <th>Items</th>
+ <th>Hold ratio</th>
+ <th class="anti-the">Title</th>
+ <th>Home libraries</th>
+ <th>Holding libraries</th>
+ <th>Location</th>
+ <th>Itype</th>
+ <th class="natural">Call numbers</th>
+ <th>Items needed</th>
+ </tr>
+ </thead>
+ <tbody>
+ [% FOREACH reserveloo IN reserveloop %]
+ <tr>
+ <td><p>[% reserveloo.reservecount | html %]</p></td>
+ <td><p>[% reserveloo.itemcount | html %]</p></td>
+ <td><a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% reserveloo.biblionumber | uri %]" >[% reserveloo.thisratio | html %]</a></td>
+ <td>
+ [% INCLUDE 'biblio-title.inc' biblio=reserveloo link = 1 %][% IF ( reserveloo.author ) %] by [% reserveloo.author | html %][% END %]
+ </td>
+ <td>
+ <ul>
+ [% FOREACH homebranch IN reserveloo.homebranch_list %]
+ <li>[% Branches.GetName ( homebranch ) | html %]</li>
+ [% END %]
+ </ul>
+ </td>
+ <td>
+ <ul>
+ [% FOREACH holdingbranch IN reserveloo.holdingbranch_list %]
+ <li>[% Branches.GetName ( holdingbranch ) | html %]</li>
+ [% END %]
+ </ul>
+ </td>
+ <td>
+ <ul>
+ [% FOREACH location IN reserveloo.location %]
+ <li>[% AuthorisedValues.GetDescriptionByKohaField( kohafield => 'items.location', authorised_value => location ) | html %]</li>
+ [% END %]
+ </ul>
+ </td>
+ <td>
+ <ul>
+ [% FOREACH itype IN reserveloo.itype %]
+ <li>[% ItemTypes.GetDescription( itype ) | html %]</li>
+ [% END %]
+ </ul>
+ </td>
+ <td>
+ <ul>
+ [% FOREACH listcall IN reserveloo.listcall %]
+ <li>[% listcall | html %]</li>
+ [% END %]
+ </ul>
+ </td>
+ <td class="actions">
+ <p>
+ [% IF ( reserveloo.thisratio_atleast1 ) %]
+ [% IF ( CAN_user_acquisition && basketno && booksellerid ) %]<!-- [% reserveloo.copies_to_buy | html %] -->
+ <a href="/cgi-bin/koha/acqui/neworderempty.pl?biblionumber=[% reserveloo.biblionumber | uri %]&booksellerid=[% booksellerid | uri %]&basketno=[% basketno | uri %]&rr_quantity_to_order=[% reserveloo.copies_to_buy | uri %]" class="btn btn-default btn-xs"><i class="fa fa-plus"></i> [% reserveloo.copies_to_buy | html %] to order</a>
+ [% ELSE %]
+ <strong>[% reserveloo.copies_to_buy | html %] to order</strong>
+ [% END %]
+ [% IF ( reserveloo.pendingorders ) %]<br><strong>[% reserveloo.pendingorders | html %] pending</strong>[% END %]
+ [% ELSE %]
+ <span>0 to order</span>
+ [% END %]
+ </p>
</td>
- <td><p>[% reserveloo.listbranch %]</p></td>
- <td><p>[% reserveloo.location %]</p></td>
- <td><p>[% reserveloo.itype %]</p></td>
- <td><p>[% reserveloo.listcall %]</p></td>
- <td>[% IF ( reserveloo.thisratio_atleast1 ) %]<p><b>[% reserveloo.ratiocalc %] to order</b></p>[% END %]</td>
</tr>
- [% END %]</tbody>
+ [% END %]
+ </tbody>
</table>
[% ELSE %]
- <b>No items found.</b>
+ <strong>No items found.</strong>
[% END %]
-</div>
-</div>
-<div class="yui-b">
+
+ </main>
+ </div> <!-- /.col-sm-10.col-sm-push-2 -->
+
+ <div class="col-sm-2 col-sm-pull-10">
+ <aside>
+
<form action="/cgi-bin/koha/circ/reserveratios.pl" method="post" >
<fieldset class="brief">
<h4>Refine results:</h4>
-<ol><li><label for="ratio">
- Hold ratio:
-</label>
-<input type="text" size="5" id="ratio" name="ratio" value="[% ratio %]" /></li>
-<li><label for="from">
- Start date:
-</label>
-<input type="text" size="10" id="from" name="from" value="[% from %]" />
-<img src="[% themelang %]/lib/calendar/cal.gif" border="0" id="openCalendarFrom" style="cursor: pointer;" alt="" />
-<script language="JavaScript" type="text/javascript">
-function validate1(date) {
- var day = date.getDate();
- var month = date.getMonth() + 1;
- var year = date.getFullYear();
- var weekDay = date.getDay();
- var dayMonth = month + '-' + day;
- var dateString = year + '-' + month + '-' + day;
- var dateTo = document.getElementById('to').value.split("-");
- var limitDate = new Date(dateTo[0], (dateTo[1] - 1), dateTo[2]);
- if (date > limitDate) {
- return true;
- } else {
- return false;
- }
-}
-Calendar.setup(
- {
- inputField : "from",
- ifFormat : "[% DHTMLcalendar_dateformat %]",
- button : "openCalendarFrom",
- disableFunc : validate1,
- dateStatusFunc : validate1
- }
-);
-</script></li>
-<li><label for="to" >
- End date:
-</label>
-<input size="10" id="to" name="to" value="[% to %]" type="text" />
-<img src="[% themelang %]/lib/calendar/cal.gif" alt="" id="openCalendarTo" style="cursor: pointer;" border="0" />
-<script type="text/javascript">
- function validate2(date) {
- var day = date.getDate();
- var month = date.getMonth() + 1;
- var year = date.getFullYear();
- var weekDay = date.getDay();
- var dayMonth = month + '-' + day;
- var dateString = year + '-' + month + '-' + day;
- var dateFrom = document.getElementById('from').value.split("-");
- var limitDate = new Date(dateFrom[0], (dateFrom[1] - 1), dateFrom[2]);
- if (limitDate > date) {
- return true;
- } else {
- return false;
- }
- }
-
- Calendar.setup(
- {
- inputField : "to",
- ifFormat : "[% DHTMLcalendar_dateformat %]",
- button : "openCalendarTo",
- disableFunc : validate2,
- dateStatusFunc : validate2
- }
- );
-</script></li></ol>
+<ol>
+ <li>
+ <label for="ratio">Hold ratio (greater than or equal to):</label>
+ <input type="text" size="5" id="ratio" name="ratio" value="[% ratio | html %]" />
+ </li>
+
+ <li class="checkbox">
+ [% IF include_ordered %]
+ <input id="include_ordered" name="include_ordered" type="checkbox" checked="checked"/>
+ [% ELSE %]
+ <input id="include_ordered" name="include_ordered" type="checkbox"/>
+ [% END %]
+ <label for="include_ordered">Include ordered</label>
+ </li>
+
+ <li class="checkbox">
+ [% IF include_suspended %]
+ <input id="include_suspended" name="include_suspended" type="checkbox" checked="checked"/>
+ [% ELSE %]
+ <input id="include_suspended" name="include_suspended" type="checkbox"/>
+ [% END %]
+ <label for="include_suspended">Include suspended</label>
+ </li>
+
+ <li>
+ <label for="from">Start date:</label>
+ <input type="text" size="10" id="from" name="from" value="[% from | $KohaDates %]" class="flatpickr" data-date_to="to" />
+ </li>
+
+ <li>
+ <label for="to">End date:</label>
+ <input size="10" id="to" name="to" value="[% to | $KohaDates %]" type="text" class="flatpickr" />
+ </li>
+</ol>
(inclusive)
<fieldset class="action"><input type="submit" value="Go" class="submit"/></fieldset>
</fieldset>
+[% IF ( CAN_user_acquisition && basketno && booksellerid ) %]
+<input type="hidden" name="booksellerid" value="[% booksellerid | html %]" />
+<input type="hidden" name="basketno" value="[% basketno | html %]" />
+[% END %]
</form>
-</div>
-</div>
+ </aside>
+ </div> <!-- /.col-sm-2.col-sm-pull-10 -->
+ </div> <!-- /.row -->
+
+[% MACRO jsinclude BLOCK %]
+ [% INCLUDE 'calendar.inc' %]
+ [% INCLUDE 'datatables.inc' %]
+ [% INCLUDE 'columns_settings.inc' %]
+ <script>
+ var columns_settings = [% TablesSettings.GetColumns( 'circ', 'holdsratios', 'holds-ratios', 'json' ) | $raw %];
+ $(document).ready(function() {
+ KohaTable("holdst", {
+ "aaSorting": [ [2,'desc'], [3,'asc'] ],
+ "aoColumnDefs": [
+ { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
+ { "sType": "natural", "aTargets" : [ "natural" ] },
+ ],
+ "sPaginationType": "full",
+ "autoWidth": false
+ }, columns_settings);
+ });
+ </script>
+[% END %]
+
[% INCLUDE 'intranet-bottom.inc' %]