+[% USE KohaDates %]
+[% USE AuthorisedValues %]
+[%- USE Branches -%]
+[%- USE ItemTypes -%]
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Circulation › Holds to pull</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'calendar.inc' %]
<!-- Plugin datatables -->
-<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/css/datatables.css" />
[% INCLUDE 'datatables.inc' %]
-<script type="text/JavaScript" language="JavaScript">
+<script type="text/JavaScript">
//<![CDATA[
$(document).ready(function() {
- [% IF (dateformat == 'metric') %]
- dt_add_type_uk_date();
- [% END %]
var holdst = $("#holdst").dataTable($.extend(true, {}, dataTablesDefaults, {
- "aoColumnDefs": [
- { "sType": "string", "aTargets": [ 4, 8, 9 ] } //Target columns that use <br> separators and pull-down menus. FIXME: Use class names instead of indexes.
- ]
+ "aoColumnDefs": [
+ { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
+ { "sType": "title-string", "aTargets" : [ "title-string" ] },
+ { "sType": "string", "aTargets": [ "string-sort" ] } //Target columns that use <br> separators and pull-down menus.
+ ],
+ "sPaginationType": "full_numbers"
}));
holdst.fnAddFilters("filter");
[%# add separateData function to cleanse jQuery select lists by breaking apart strings glued with BR tags and then de-duplicating any repeated library codes %]
for ( j=0 ; j<cD.length ; j++ ) {
var split_array = cD[j].split(/<br>/gi);
for ( k=0 ; k<split_array.length ; k++ ){
- var check_array = $.inArray(split_array[k], new_array);
- if (check_array == -1) {
- new_array.push(split_array[k]);
+ var str = $.trim(split_array[k].replace(/[\n\r]/g, ''));
+ if ($.inArray(str, new_array) == -1 && str.length > 0 ) {
+ new_array.push(str);
}
}
}
[%# add SeparateData function into createSelect function, so that it does the createSelect on clean data %]
function createSelect( data ) {
data = separateData(data);
- var r='<select style="width:99%"><option value="">None</option>', i, len=data.length;
+ var r='<select style="width:99%"><option value="">' + _("None") + '</option>', i, len=data.length;
for ( i=0 ; i<len ; i++ ) {
r += '<option value="'+data[i]+'">'+data[i]+'</option>';
}
$(this).html( createSelect( holdst.fnGetColumnData(4) ) );
$('select', this).change( function () {
var filter_value = $(this).val();
- if(filter_value){
- filter_value = "(^|>)"+filter_value+"($|<)";
- }
holdst.fnFilter( filter_value, 4, true );
} );
} );
<div id="yui-main">
<div class="yui-b">
-<h2>Holds to pull[% IF ( run_report ) %] placed between [% from %] and [% to %][% END %]</h2>
+<h2>Holds to pull[% IF ( run_report ) %] placed between [% from | $KohaDates %] and [% to | $KohaDates %][% END %]</h2>
[% IF ( run_report ) %]
-<h3>Reported on [% todaysdate %]</h3>
+<h3>Reported on [% todaysdate | $KohaDates %]</h3>
<p>The following holds have not been filled. Please retrieve them and check them in.</p>
<div class="searchresults">
[% IF ( reserveloop ) %]
<th>Pull this many items</th>
<th>Items available</th>
<th>Patrons with holds</th>
- <th>Title</th>
- <th>Libraries</th>
+ <th class="anti-the">Title</th>
+ <th class="string-sort">Libraries</th>
<th>Available call numbers</th>
<th>Available copy numbers</th>
<th>Available enumeration</th>
- <th>Available itypes</th>
- <th>Available locations</th>
- <th>Earliest hold date</th>
+ <th class="string-sort">Available itypes</th>
+ <th class="string-sort">Available locations</th>
+ <th class="title-string">Earliest hold date</th>
</tr>
</thead>
<tbody>
<td>[% reserveloo.rcount %]</td>
<td>
<p>
- [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %]
- [% reserveloo.title |html %]
- </a> [% IF ( reserveloo.author ) %]<p> by [% reserveloo.author %]</p>[% END %]
- </p>
+ [% INCLUDE 'biblio-default-view.inc' biblionumber = reserveloo.biblionumber %]
+ [% reserveloo.title |html %]</a></p>
+ [% IF ( reserveloo.author ) %]<p> by [% reserveloo.author %]</p>[% END %]
</td>
[% ELSE %]
<td>"</td>
<td>"</td>
<td>"</td>
[% END %]
- <td>[% reserveloo.holdingbranch %]</td>
+ <td>
+ [% FOREACH holdingbranch IN reserveloo.holdingbranches %]
+ [% Branches.GetName ( holdingbranch ) %]<br>
+ [% END %]
+ </td>
<td><p>[% reserveloo.itemcallnumber %]</p></td>
<td><p>[% reserveloo.copyno %]</p></td>
<td><p>[% reserveloo.enumchron %]</p></td>
- <td>[% reserveloo.itype %]</td>
- <td>[% reserveloo.location %]</td>
- <td width="15%">
- <p>[% reserveloo.reservedate %]</p>
- <p>in [% reserveloo.branch %]</p>
- [% IF ( reserveloo.statusw ) %]<p>Waiting</p>[% END %][% IF ( reserveloo.statusf ) %]<p>Fullfilled</p>[% END %]
+ <td>
+ [% FOREACH itype IN reserveloo.itypes %]
+ [% ItemTypes.GetDescription( itype ) %]
+ [% END %]
+ </td>
+ <td>
+ [% FOREACH loc IN reserveloo.locations %]
+ [% AuthorisedValues.GetByCode('LOC', loc) %]<br>
+ [% END %]
+ </td>
+ <td>
+ <span title="[% reserveloo.reservedate %]">[% reserveloo.reservedate | $KohaDates %] in [% Branches.GetName ( reserveloo.branch ) %]</span>
+ [% IF ( reserveloo.statusw ) %]<p>Waiting</p>[% END %][% IF ( reserveloo.statusf ) %]<p>Fulfilled</p>[% END %]
</td>
</tr>
[% END %]
<label for="from">
Start date:
</label>
-<input type="text" size="10" id="from" name="from" value="[% from %]" class="datepickerfrom" />
+<input type="text" size="10" id="from" name="from" value="[% from | $KohaDates %]" class="datepickerfrom" />
</li>
<li><label for="to">
End date:
</label>
-<input type="text" size="10" id="to" name="to" value="[% to %]" class="datepickerto" />
+<input type="text" size="10" id="to" name="to" value="[% to | $KohaDates %]" class="datepickerto" />
</li>
</ol>
<p><i>(Inclusive, default is [% HoldsToPullStartDate %] days ago to [% IF ( HoldsToPullEndDate ) %][% HoldsToPullEndDate %] days ahead[% ELSE %]today[% END %], set other date ranges as needed. )</i></p>