316eda1036
There are several notes and other fields in a subscription that can be entered as multi-line input with breaks. We should display them as they were entered with keeping the line breaks intact. To test: - Add a subscription - Add comments including line breaks in internal and OPAC note - Check the manual history checkbox - Go to the subscription detail page, tab 'Planning' - Use the 'Edit history' link to edit the history - Enter content with line breaks in all the input fields where it's possible - Go to the OPAC detail page for your subscription record - Go to tab 'Subscriptions' > More details > Brief history - Verify the line breaks show there as <br> - Apply patch - Relaod page, verify all information displays correctly now - Go back to the detail page, subscription tab - verify same there - Go back to the subscription detail page in staff - Check editing the history works as expected - Verify information on all tabs displays correctly - Receive a serial issue - verify note on top displays right - Go to the serial collection page of the subscription - same there Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Nadine Pierre <nadine.pierre@inLibro.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
338 lines
15 KiB
Text
338 lines
15 KiB
Text
[% USE raw %]
|
|
[% USE Asset %]
|
|
[% USE AuthorisedValues %]
|
|
[% USE Branches %]
|
|
[% USE KohaDates %]
|
|
[% SET footerjs = 1 %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Serials › Serial collection information for [% bibliotitle | html %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
</head>
|
|
|
|
<body id="ser_serials-collection" class="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 | html %]</i></div>
|
|
|
|
<div class="main container-fluid">
|
|
<div class="row">
|
|
<div class="col-sm-10 col-sm-push-2">
|
|
<main>
|
|
|
|
[% INCLUDE 'modals/serials_multi_receiving.inc' %]
|
|
|
|
[% UNLESS ( popup ) %]
|
|
[% INCLUDE 'serials-toolbar.inc' %]
|
|
|
|
<h1>Serial collection information for <i>[% bibliotitle | html %]</i>
|
|
[% IF location %] ([% AuthorisedValues.GetByCode( 'LOC', location ) | html %]) [% END %]
|
|
[% IF ( callnumber ) %]callnumber: [% callnumber | html %][% 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>
|
|
<th> </th>
|
|
</tr>
|
|
[% FOREACH subscription IN subscriptions %]
|
|
<tr>
|
|
<td><a href="subscription-detail.pl?subscriptionid=[% subscription.subscriptionid | uri %]"># [% subscription.subscriptionid | html %]</a> </td>
|
|
<td>[% subscription.frequency.description | html %]</td>
|
|
<td>[% subscription.numberpattern.label | html %]</td>
|
|
<td>[% IF subscription.branchcode %][% Branches.GetName( subscription.branchcode ) | html %][% END %]</td>
|
|
<td> [% subscription.callnumber | html %]</td>
|
|
<td> [% subscription.notes | html | html_line_break %]
|
|
[% UNLESS subscription.closed %]
|
|
[% IF ( subscription.subscriptionexpired ) %]
|
|
<br /><span class="problem"> Subscription expired</span>
|
|
[% END %]
|
|
[% ELSE %]
|
|
<br /> Subscription closed
|
|
[% END %]
|
|
</td>
|
|
[% IF ( subscription.abouttoexpire ) || ( subscription.subscriptionexpired ) %]<td class="problem actions">[% ELSE %]<td class="actions">[% END %]
|
|
[% UNLESS subscription.closed %]
|
|
[% IF ( routing && CAN_user_serials_routing ) %]
|
|
[% IF ( subscription.hasRouting ) %]
|
|
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid | html %]"><i class="fa fa-pencil"></i> Edit routing list</a>
|
|
[% ELSE %]
|
|
<a class="btn btn-default btn-xs" href="/cgi-bin/koha/serials/routing.pl?subscriptionid=[% subscription.subscriptionid | html %]&op=new"><i class="fa fa-plus"></i> Create routing list</a>
|
|
[% END %]
|
|
[% END %]
|
|
[% IF ( subscription.abouttoexpire ) %]<a class="btn btn-default btn-xs" href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid | html %]" onclick="popup([% subscription.subscriptionid | html %]); return false;"><i class="fa fa-refresh"></i> Renew</a>
|
|
[% ELSE %]
|
|
[% IF ( subscription.subscriptionexpired ) %]<a class="btn btn-default btn-xs" href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid | html %]" onclick="popup([% subscription.subscriptionid | html %]); return false;"><i class="fa fa-refresh"></i> Renew</a>
|
|
[% ELSE %]
|
|
|
|
[% END %]
|
|
[% END %]
|
|
[% ELSE %]
|
|
|
|
[% END %]
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
[% IF ( subscr ) %]
|
|
[% IF ( subscriptioncount > 1 ) %]
|
|
<tr ><td colspan="8"> <a href="serials-collection.pl?biblionumber=[% biblionumber | uri %]">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 ) %]
|
|
[% IF year.year == 'manage' %]
|
|
<li><a href="#subscription-year-manage">Manage</a></li>
|
|
[% ELSE %]
|
|
<li><a href="#subscription-year-[% year.year | uri %]">[% year.year | html %]</a></li>
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
</ul>
|
|
|
|
[% FOREACH year IN years %]
|
|
<div id="subscription-year-[% year.year | html %]">
|
|
[% IF ( CAN_user_serials_receive_serials ) %]
|
|
<p>
|
|
<div class="btn-group"><input type="submit" value="Edit serials" class="btn btn-default btn-sm" /></div>
|
|
[% UNLESS subscription.closed %]
|
|
<div class="btn-group"><input type="button" value="Generate next" onclick="javascription:generateNext([% subscriptionidlist | html %])" class="btn btn-default btn-sm" /></div>
|
|
[% IF ( subscriptions.size == 1 and !serialsadditems ) %]
|
|
<div class="btn-group"><input type="button" value="Multi receiving" href="#multi_receiving" class="btn btn-default btn-sm" data-toggle="modal"></div>
|
|
[% END %]
|
|
[% END %]
|
|
</p>
|
|
[% END %]
|
|
<span class="checkall">
|
|
<a class="CheckAll" href="#" onclick="CheckAll('subscription-year-[% year.year | html %]'); return false;">Select all</a>
|
|
</span> |
|
|
<span class="clearall">
|
|
<a class="CheckNone" href="#" onclick="CheckNone('subscription-year-[% year.year | html %]'); 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 published (text)
|
|
</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 %]
|
|
<tr>
|
|
[% IF ( CAN_user_serials_receive_serials ) %]
|
|
<td>
|
|
[% UNLESS CAN_user_serials_receive_serials %]
|
|
disabled
|
|
[% ELSE %]
|
|
[% IF ( serial.subscriptionexpired ) %]
|
|
<input type="checkbox" name="serialid" value="[% serial.serialid | html %]" disabled="disabled" />
|
|
[% ELSE %]
|
|
[% IF ( serial.checked ) %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" checked="checked" value="[% serial.serialid | html %]" />
|
|
[% ELSE %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid | html %]" />
|
|
[% END %]
|
|
[% END %]
|
|
[% END %]
|
|
</td>
|
|
[% END %]
|
|
[% IF ( subscriptions.size > 1 ) %]
|
|
<td><a href="serials-collection.pl?subscriptionid=[% serial.subscriptionid | uri %]">[% serial.subscriptionid | html %]</a></td>
|
|
[% END %]
|
|
<td>
|
|
<span title="[% serial.publisheddate | html %]">
|
|
[% IF serial.publisheddate %]
|
|
[% serial.publisheddate | $KohaDates %]
|
|
[% ELSE %]
|
|
Unknown
|
|
[% END %]
|
|
</span>
|
|
</td>
|
|
<td>
|
|
[% IF serial.publisheddatetext %]
|
|
<span title="[% serial.publisheddatetext | html %]">
|
|
[% serial.publisheddatetext | html %]
|
|
</span>
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
<span title="[% serial.planneddate | html %]">
|
|
[% IF serial.planneddate %]
|
|
[% serial.planneddate | $KohaDates %]
|
|
[% ELSE %]
|
|
Unknown
|
|
[% END %]
|
|
</span>
|
|
</td>
|
|
<td>
|
|
[% IF ( matches = serial.serialseq.match('(.*)Spring(.*)') ) %]
|
|
[% matches.0 | html %]Spring[% matches.1 | html %]
|
|
[% ELSIF ( matches = serial.serialseq.match('(.*)Summer(.*)') ) %]
|
|
[% matches.0 | html %]Summer[% matches.1 | html %]
|
|
[% ELSIF ( matches = serial.serialseq.match('(.*)Fall(.*)') ) %]
|
|
[% matches.0 | html %]Fall[% matches.1 | html %]
|
|
[% ELSIF ( matches = serial.serialseq.match('(.*)Winter(.*)') ) %]
|
|
[% matches.0 | html %]Winter[% matches.1 | html %]
|
|
[% ELSIF ( matches = prediction.number.match('(.*)Spr(.*)') ) %]
|
|
[% matches.0 | html %]Spr[% matches.1 | html %]
|
|
[% ELSIF ( matches = prediction.number.match('(.*)Sum(.*)') ) %]
|
|
[% matches.0 | html %]Sum[% matches.1 | html %]
|
|
[% ELSIF ( matches = prediction.number.match('(.*)Fal(.*)') ) %]
|
|
[% matches.0 | html %]Fal[% matches.1 | html %]
|
|
[% ELSIF ( matches = prediction.number.match('(.*)Win(.*)') ) %]
|
|
[% matches.0 | html %]Win[% matches.1 | html %]
|
|
[% ELSE %]
|
|
[% serial.serialseq | html %]
|
|
[% END %]
|
|
</td>
|
|
<td>
|
|
[% IF ( serial.status1 ) %]Expected[% END %]
|
|
[% IF ( serial.status2 ) %]Arrived[% END %]
|
|
[% IF ( serial.status3 ) %]Late[% END %]
|
|
[% IF ( serial.status4 ) %]Missing[% END %]
|
|
[% IF ( serial.status41 ) %]Missing (never received)[% END %]
|
|
[% IF ( serial.status42 ) %]Missing (sold out)[% END %]
|
|
[% IF ( serial.status43 ) %]Missing (damaged)[% END %]
|
|
[% IF ( serial.status44 ) %]Missing (lost)[% 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 | html %]
|
|
</td>
|
|
<td>
|
|
[% Branches.GetName( serial.branchcode ) | html %]
|
|
</td>
|
|
[% IF ( routing ) %]
|
|
<td class="actions">
|
|
<a href="" onclick="print_slip([% serial.subscriptionid | html %], '[% serial.serialseq.replace("'", "\\'") | html %] ([% serial.publisheddate | $KohaDates %])'); return false" class="btn btn-default btn-xs"><i class="fa fa-print"></i> Print list</a>
|
|
</td>
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
[% END %]
|
|
<input type="hidden" name="subscriptionid" value="[% subscriptionidlist | html %]" />
|
|
|
|
</div>
|
|
</form>
|
|
[% END %]
|
|
|
|
</main>
|
|
</div> <!-- /.col-sm-10.col-sm-push-2 -->
|
|
|
|
<div class="col-sm-2 col-sm-pull-10">
|
|
<aside>
|
|
[% INCLUDE 'serials-menu.inc' %]
|
|
</aside>
|
|
</div> <!-- /.col-sm-2.col-sm-pull-10 -->
|
|
</div> <!-- /.row -->
|
|
|
|
[% MACRO jsinclude BLOCK %]
|
|
[% INCLUDE 'datatables.inc' %]
|
|
<script>
|
|
var subscriptionid = "[% subscriptionid | html %]";
|
|
var MSG_CLOSE_SUBSCRIPTION = _("Are you sure you want to close this subscription?");
|
|
var MSG_REOPEN_SUBSCRIPTION = _("Are you sure you want to reopen this subscription?");
|
|
var CONFIRM_DELETE_SUBSCRIPTION = _("Are you sure you want to delete this subscription?");
|
|
</script>
|
|
[% Asset.js("js/serials-toolbar.js") | $raw %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
|
|
|
|
<script>
|
|
|
|
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 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();
|
|
$(".subscription-year-table").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"aoColumnDefs": [
|
|
{ "aTargets": [ 0,-1 ], "bSortable": false, "bSearchable": false },
|
|
{ "sType": "title-string", "aTargets" : [ "title-string" ] }
|
|
],
|
|
"aaSorting": [[0, 'desc']],
|
|
"sDom": 't',
|
|
"bAutoWidth": false,
|
|
"bPaginate": false,
|
|
"bInfo": false,
|
|
"bFilter": false,
|
|
} ));
|
|
|
|
$('#multi_receiving').on('show', function () {
|
|
$(this).find(".modal-body").html($(".serials_multi_receiving")[0].outerHTML);
|
|
});
|
|
|
|
$("form[name='edition']").on('submit', function(e){
|
|
if ( $(this).find("input[name='serialid']:checked").size() == 0 ) {
|
|
e.preventDefault();
|
|
alert(_("You must select at least one serial to edit"));
|
|
return 0;
|
|
}
|
|
return 1;
|
|
});
|
|
});
|
|
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|