Owen Leonard
ba470954fd
The OPAC still uses the old tablesorter plugin which isn't being actively maintained. We use DataTables in the staff client and should in the OPAC too. The plugin was added a while ago but never implemented on any pages. This patch upgrades the plugin to the latest version and places it in opac-tmpl/lib for cross-theme access. The patch implements DataTables on all pages which previously used the tablesorter plugin. The old tablesorter plugin is removed. The customized DataTable configuration script, datatables.js, has been trimmed-down from the staff client version in order to limit it to only that functionality required in the OPAC. Sorting based on date is done based on the data's enclosing <span> title attribute as it is in the staff client: <span title=" [% iso date %]">[% date | $KohaDates %]</span> Slight modifications to Serials.pm and opac-search-history.pl have been made to accommodate this change. To test, view each page in the OPAC which uses JS-based table sorting: - The bibliographic detail page - The cart - The search history page - The suggestions page - The tags page (logged in as a user who has entered tags) - The "most popular" page (opac-topissues.pl) - The logged in user summary page (opac-user.pl) - The subscription "full history" page (opac-serial-issues.pl?selectview=full) - The self-checkout main page (with existing checkouts) Table sorting should work correctly on all pages in both the prog and ccsr themes. Sorting should work for dates whatever your dateformat system preference setting. Tables listing titles should exclude articles ("a," "an," and "the" in English) when sorting. Also test the serial collection page in the staff client, which is affected by the change to Serials.pm. Confirm that dates are displayed and sorted correctly. Signed-off-by: Srdjan <srdjan@catalyst.net.nz> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Passes koha-qa.pl, works as advertised! Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Works really nicely on all pages. Signed-off-by: Galen Charlton <gmc@esilibrary.com>
344 lines
13 KiB
Text
344 lines
13 KiB
Text
[% USE Branches %]
|
|
[% USE KohaDates %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Serials › Serial collection information for [% bibliotitle %]</title>
|
|
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
|
|
[% INCLUDE 'datatables-strings.inc' %]
|
|
<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
|
|
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
function generateReceive(subscriptionid) {
|
|
if(nbissues=prompt(_("How many issues do you want to receive ?"))){
|
|
document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid+'&nbissues='+nbissues;
|
|
}
|
|
}
|
|
function print_slip(subscriptionid,issue){
|
|
var myurl = 'routing-preview.pl?ok=1&subscriptionid='+subscriptionid+'&issue='+issue;
|
|
window.open(myurl,'PrintSlip','width=500,height=500,toolbar=no,scrollbars=yes');
|
|
}
|
|
function addsubscriptionid()
|
|
{
|
|
var tab=new Array();
|
|
var serialids = document.edition.serialid;
|
|
for (i=0; i<serialids.length; i++){
|
|
if (serialids[i].checked == true){
|
|
var found=false;
|
|
for (var val in tab){
|
|
if (tab[val] == document.getElementsByName("subs")[i].getAttribute('val')){found = true;}
|
|
}
|
|
if (found == false){
|
|
tab=tab.concat((document.getElementsByName("subs")[i].getAttribute('val')));
|
|
}
|
|
}
|
|
}
|
|
var string="";
|
|
for (var val in tab){
|
|
string = string + tab[val] + ",";
|
|
}
|
|
string=string.substring(0,string.length -1);
|
|
document.edition.subscriptionid.value=string;
|
|
}
|
|
function popup(subscriptionid) {
|
|
newin=window.open('subscription-renew.pl?mode=popup&subscriptionid='+subscriptionid,'popup','width=500,height=400,toolbar=false,scrollbars=yes');
|
|
}
|
|
|
|
function generateNext(subscriptionid) {
|
|
if(confirm(_("Do you really want to generate next serial?"))){
|
|
document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid;
|
|
}
|
|
}
|
|
|
|
function CheckAll( node ) {
|
|
$("#"+node).checkCheckboxes();
|
|
return false;
|
|
}
|
|
function CheckNone( node ) {
|
|
$("#"+node).unCheckCheckboxes();
|
|
return false;
|
|
}
|
|
$(document).ready(function() {
|
|
$('#subscription_years').tabs();
|
|
[% IF dateformat == "metric" %]
|
|
dt_add_type_uk_date();
|
|
[% END %]
|
|
|
|
$(".subscription-year-table").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"aoColumnDefs": [
|
|
{ "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
|
|
{ "sType": "title-string", "aTargets" : [ "title-string" ] }
|
|
],
|
|
"aaSorting": [[0, 'desc']],
|
|
"sDom": 't',
|
|
"bAutoWidth": false,
|
|
"bPaginate": false,
|
|
"bInfo": false,
|
|
"bFilter": false,
|
|
} ));
|
|
});
|
|
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="ser_serials-collection" class="yui-skin-sam ser">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'serials-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/serials/serials-home.pl">Serials</a> › Serial collection information for <i>[% bibliotitle %]</i></div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
|
|
[% UNLESS ( popup ) %]
|
|
[% INCLUDE 'serials-toolbar.inc' %]
|
|
|
|
<h1>Serial collection information for <i>[% bibliotitle %]</i>
|
|
[% IF location %] ([% location %] ) [% END %]
|
|
[% IF ( callnumber ) %]callnumber: [% callnumber %][% END %]</h1>
|
|
[% END %]
|
|
|
|
[% IF ( subscriptions ) %]
|
|
<table>
|
|
[% IF ( subscriptions.size == 1 ) %]
|
|
<caption> Subscription summary</caption>
|
|
[% ELSE %]
|
|
<caption> Subscription summaries</caption>
|
|
[% END %]
|
|
<tr>
|
|
<th>Subscription num.</th>
|
|
<th>Frequency</th>
|
|
<th>Numbering pattern</th>
|
|
<th>Library</th>
|
|
<th>Call number</th>
|
|
<th>Notes</th>
|
|
[% IF ( routing && CAN_user_serials_routing ) %]<th>Routing</th>[% END %]
|
|
<th>Renew</th>
|
|
</tr>
|
|
[% FOREACH subscription IN subscriptions %]
|
|
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
|
|
<td><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid %]"># [% subscription.subscriptionid %]</a> </td>
|
|
<td> [% IF ( subscription.periodicity1 ) %]
|
|
1/day
|
|
[% END %]
|
|
[% IF ( subscription.periodicity2 ) %]
|
|
1/week
|
|
[% END %]
|
|
[% IF ( subscription.periodicity3 ) %]
|
|
1/2 weeks
|
|
[% END %]
|
|
[% IF ( subscription.periodicity4 ) %]
|
|
1/3 weeks
|
|
[% END %]
|
|
[% IF ( subscription.periodicity5 ) %]
|
|
1/Month
|
|
[% END %]
|
|
[% IF ( subscription.periodicity6 ) %]
|
|
1/2 Months (6/year)
|
|
[% END %]
|
|
[% IF ( subscription.periodicity7 ) %]
|
|
1/quarter
|
|
[% END %]
|
|
[% IF ( subscription.periodicity8 ) %]
|
|
1/quarter
|
|
[% END %]
|
|
[% IF ( subscription.periodicity9 ) %]
|
|
2/year
|
|
[% END %]
|
|
[% IF ( subscription.periodicity10 ) %]
|
|
1/year
|
|
[% END %]
|
|
[% IF ( subscription.periodicity11 ) %]
|
|
1/2 years
|
|
[% END %]</td>
|
|
<td>
|
|
[% IF ( subscription.numberpattern1 ) %]
|
|
Number
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern2 ) %]
|
|
Volume, number, issue
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern3 ) %]
|
|
Volume, number
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern4 ) %]
|
|
Volume, issue
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern5 ) %]
|
|
Number, issue
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern6 ) %]
|
|
Seasonal only
|
|
[% END %]
|
|
[% IF ( subscription.numberpattern7 ) %]
|
|
None of the above
|
|
[% END %]</td>
|
|
<td>[% Branches.GetName( subscription.branchcode ) %]</td>
|
|
<td> [% subscription.callnumber %]</td>
|
|
<td> [% subscription.notes %]
|
|
[% UNLESS subscription.closed %]
|
|
[% IF ( subscription.subscriptionexpired ) %]
|
|
<br /><span class="problem"> Subscription expired</span>
|
|
[% END %]
|
|
[% ELSE %]
|
|
<br /> Subscription closed
|
|
[% END %]
|
|
</td>
|
|
[% IF ( routing && CAN_user_serials_routing ) %]
|
|
<td>
|
|
[% UNLESS subscription.closed %]
|
|
<a href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid %]">Edit routing list</a>
|
|
[% END %]
|
|
</td>
|
|
[% END %]
|
|
[% UNLESS subscription.closed %]
|
|
[% IF ( subscription.abouttoexpire ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
|
|
[% ELSE %]
|
|
[% IF ( subscription.subscriptionexpired ) %]<td class="problem"> <a href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid %]" onclick="popup([% subscription.subscriptionid %]); return false;">Renew</a></td>
|
|
[% ELSE %]
|
|
<td> </td>
|
|
[% END %]
|
|
[% END %]
|
|
[% ELSE %]
|
|
<td> </td>
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
[% IF ( subscr ) %]
|
|
[% IF ( subscriptioncount > 1 ) %]
|
|
<tr ><td colspan="8"> <a href="serials-collection.pl?biblionumber=[% biblionumber %]">See any subscription attached to this biblio</a></td>
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
</table>
|
|
[% END %]
|
|
|
|
|
|
[% IF ( years ) %]<form name="edition" action="serials-edit.pl" method="post">
|
|
<div id="subscription_years" class="toptabs numbered">
|
|
<ul>
|
|
[% FOREACH year IN years %]
|
|
[% IF ( year.year ) %]
|
|
<li><a href="#subscription-year-[% year.year %]">[% year.year %]</a></li>
|
|
[% END %]
|
|
[% END %]
|
|
</ul>
|
|
|
|
[% FOREACH year IN years %]
|
|
<div id="subscription-year-[% year.year %]">
|
|
[% IF ( CAN_user_serials_receive_serials ) %]
|
|
<p>
|
|
<input type="submit" value="Edit serials" />
|
|
[% UNLESS subscription.closed %]
|
|
<input type="button" value="Generate next" onclick="javascript:generateNext([% subscriptionidlist %])" />
|
|
[% IF ( subscriptions.size == 1 and !serialsadditems ) %] <input type="button" value="Multi receiving" onclick="javascript:generateReceive([% subscriptionidlist %])" />[% END %]
|
|
[% END %]
|
|
</p>
|
|
[% END %]
|
|
<span class="checkall">
|
|
<a class="CheckAll" href="#" onclick="CheckAll('subscription-year-[% year.year %]'); return false;">Select all</a>
|
|
</span> |
|
|
<span class="clearall">
|
|
<a class="CheckNone" href="#" onclick="CheckNone('subscription-year-[% year.year %]'); return false;">Clear all</a>
|
|
</span>
|
|
<table class="subscription-year-table">
|
|
<thead>
|
|
<tr>
|
|
[% IF ( CAN_user_serials_receive_serials ) %]<th>Edit</th>[% END %]
|
|
[% IF ( subscriptions.size > 1 ) %]
|
|
<th># Subs</th>
|
|
[% END %]
|
|
<th class="title-string">Date published
|
|
</th>
|
|
<th class="title-string">Date received
|
|
</th>
|
|
<th>Number
|
|
</th>
|
|
<th>Status
|
|
</th>
|
|
<th>Notes
|
|
</th>
|
|
<th>Library
|
|
</th>
|
|
[% IF ( routing ) %]<th>Routing</th>[% END %]
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% FOREACH serial IN year.serials %]
|
|
[% UNLESS ( loop.odd ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
|
|
[% IF ( CAN_user_serials_receive_serials ) %]
|
|
<td>
|
|
[% IF ( serial.cannotedit ) %]
|
|
disabled
|
|
[% ELSE %]
|
|
[% IF ( serial.subscriptionexpired ) %]
|
|
<input type="checkbox" name="serialid" value="[% serial.serialid %]" disabled="disabled" />
|
|
[% ELSE %]
|
|
[% IF ( serial.checked ) %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" checked="checked" value="[% serial.serialid %]" />
|
|
[% ELSE %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid %]" />
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
</td>
|
|
[% END %]
|
|
[% IF ( subscriptions.size > 1 ) %]
|
|
<td><a href="serials-collection.pl?subscriptionid=[% serial.subscriptionid %]">[% serial.subscriptionid %]</a></td>
|
|
[% END %]
|
|
<td>
|
|
<span title="[% serial.publisheddate %]">[% serial.publisheddate | $KohaDates %]</span>
|
|
</td>
|
|
<td>
|
|
<span title="[% serial.planneddate %]">[% serial.planneddate | $KohaDates %]</span>
|
|
</td>
|
|
<td>
|
|
[% serial.serialseq %]
|
|
</td>
|
|
<td>
|
|
[% IF ( serial.status1 ) %]Expected[% END %]
|
|
[% IF ( serial.status2 ) %]Arrived[% END %]
|
|
[% IF ( serial.status3 ) %]Late[% END %]
|
|
[% IF ( serial.status4 ) %]Missing[% END %]
|
|
[% IF ( serial.status5 ) %]Not issued[% END %]
|
|
[% IF ( serial.status6 ) %]Delete[% END %]
|
|
[% IF ( serial.status7 ) %]Claimed[% END %]
|
|
[% IF ( serial.status8 ) %]Stopped[% END %]
|
|
</td>
|
|
<td>
|
|
[% serial.notes %]
|
|
</td>
|
|
<td>
|
|
[% Branches.GetName( serial.branchcode ) %]
|
|
</td>
|
|
[% IF ( routing ) %]
|
|
<td>
|
|
<a href="" onclick="print_slip([% serial.subscriptionid |html %], '[% serial.serialseq |html %] ([% serial.planneddate %])'); return false" >Print list</a>
|
|
</td>
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
[% END %]
|
|
<input type="hidden" name="subscriptionid" value="[% subscriptionidlist %]" />
|
|
|
|
</div>
|
|
</form>
|
|
[% END %]
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yui-b">
|
|
[% INCLUDE 'serials-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|