Owen Leonard
ea72b15480
This patch removes the definition of translatable strings out of templates and into the corresponding JavaScript file, using the new JS i81n function. To test: - Apply the patch and go to Serials and search for a subscription. - Open the detail page for an open subscription. - Click the "Close" button. You should get a confirmation, "Are you sure you want to close this subscription?" - Confirm that you want to close it. - When the page reloads, click the "Reopen" button. You should get a confirmation, "Are you sure you want to reopen this subscription?" - Cancel. - Choose Edit -> Delete subscription. You should get a confirmation, "Are you sure you want to delete this subscription?" - Perform the same tests from the "Serial collection" page. TESTING TRANSLATABILITY - Update a translation, e.g. fr-FR: > cd misc/translator > perl translate update fr-FR - Open the corresponding .po file for JavaScript strings, e.g. misc/translator/po/fr-FR-messages-js.po - Locate strings pulled from koha-tmpl/intranet-tmpl/prog/js/serials-toolbar.js for translation, e.g.: msgid "Are you sure you want to delete this subscription?" msgstr "" - Edit the "msgstr" string however you want (it's just for testing). - Install the updated translation: > perl translate install fr-FR - Switch to your newly translated language in the staff client and repeat the test plan above. The translated strings should appear. Signed-off-by: Alexis Ripetti <alexis.ripetti@inLibro.com> Signed-off-by: Julian Maurice <julian.maurice@biblibre.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
400 lines
17 KiB
Text
400 lines
17 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 <em>[% bibliotitle | html %]</em></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 <em>[% bibliotitle | html %]</em>
|
|
[% IF location %] ([% AuthorisedValues.GetByCode( 'LOC', location ) | html %]) [% END %]
|
|
[% IF ( callnumber ) %]callnumber: [% callnumber | html %][% END %]</h1>
|
|
[% END %]
|
|
|
|
[% IF ( delete ) %]
|
|
<div class="dialog alert">
|
|
<h3>You are about to delete [% serialnumber | html %] serial(s). Do you want to continue?</h3>
|
|
<form action="/cgi-bin/koha/serials/serials-collection.pl/#">
|
|
[% IF countitems > 0 %]
|
|
<h5>Number of items available: [% countitems | html %]</h5>
|
|
<p>
|
|
<label>Delete associated items? <input type="checkbox" name="delitems" value="Yes" />Yes</label>
|
|
</p>
|
|
[% END %]
|
|
<input type="hidden" name="op" value="delete_confirmed" />
|
|
<input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
|
|
<input type="hidden" name="subscriptionid" value="[% subscriptionid | html %]" />
|
|
[% FOREACH serialid IN serialsid %]
|
|
<input type="hidden" name="serialid" value="[% serialid | html %]" />
|
|
[% END %]
|
|
<button type="submit" class="approve"><i class="fa fa-fw fa-check"></i> Yes, delete</button>
|
|
</form>
|
|
<form action="/cgi-bin/koha/serials/serials-collection.pl">
|
|
<input type="hidden" name="subscriptionid" value="[% subscriptionid | html %]" />
|
|
<button type="submit" class="deny"><i class="fa fa-fw fa-remove"></i> No, do not delete</button>
|
|
</form>
|
|
</div>
|
|
[% END %]
|
|
|
|
[% IF ( error_delitem ) %]
|
|
<div class="dialog alert">
|
|
<p><strong>Error</strong>: one or more associated items could not be deleted at this time.</p>
|
|
</div>
|
|
[% 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 || subscription.subscriptionexpired) %]
|
|
<a class="btn btn-default btn-xs subscription_renew" data-subscriptionid="[% subscription.subscriptionid | html %]" href="/cgi-bin/koha/serials/subscription-renew.pl?subscriptionid=[% subscription.subscriptionid | html %]"><i class="fa fa-refresh"></i> Renew</a>
|
|
[% 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" data-subscriptionid="[% subscriptionidlist | html %]" class="btn btn-default btn-sm generatenext" />
|
|
</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 %]
|
|
<input type="button" value="Delete selected issues" class="delete-issues btn btn-default btn-sm" data-subscriptionids="[% subscriptionidlist | html %]" />
|
|
</p>
|
|
[% END %]
|
|
<span class="checkall">
|
|
<a class="CheckAll" href="#" data-year="[% year.year | html %]">Select all</a>
|
|
</span> |
|
|
<span class="clearall">
|
|
<a class="CheckNone" href="#" data-year="[% year.year | html %]">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 ( delete ) %]
|
|
[% IF serialsid.grep("${serial.serialid}").size %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid | html %]" disabled checked />
|
|
[% ELSE %]
|
|
<input type="checkbox" class="checkboxed" name="serialid" value="[% serial.serialid | html %]" disabled />
|
|
[% END %]
|
|
[% 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="/cgi-bin/koha/serials/routing-preview.pl?ok=1&subscriptionid=[% serial.subscriptionid | uri %]&issue=[% serial.serialseq.replace("'", "\\'") | uri %]%20([% serial.publisheddate | $KohaDates %])" class="btn btn-default btn-xs print_list"><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 %]";
|
|
</script>
|
|
[% Asset.js("js/serials-toolbar.js") | $raw %]
|
|
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
|
|
|
|
<script>
|
|
|
|
function deleteIssues(subscriptionid) {
|
|
var serialschecked = $("form[name='edition'] input[name='serialid']:checked");
|
|
if (serialschecked.length > 0) {
|
|
var location = 'serials-collection.pl?subscriptionid='+subscriptionid+'&op=delete_confirm';
|
|
for (i=0; i < serialschecked.length; i++) {
|
|
location += '&serialid=' + serialschecked[i].value;
|
|
}
|
|
document.location = location;
|
|
} else {
|
|
alert(_("No serials selected"));
|
|
}
|
|
}
|
|
|
|
function generateNext(subscriptionid) {
|
|
if(confirm(_("Do you really want to generate next serial?"))){
|
|
document.location = 'serials-collection.pl?op=gennext&subscriptionid='+subscriptionid;
|
|
}
|
|
}
|
|
|
|
$(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,
|
|
} ));
|
|
|
|
$(".CheckAll").on("click", function(e){
|
|
e.preventDefault();
|
|
var years = $(this).data("year");
|
|
$("#subscription-year-" + years ).checkCheckboxes();
|
|
});
|
|
|
|
$(".CheckNone").on("click", function(e){
|
|
e.preventDefault();
|
|
var years = $(this).data("year");
|
|
$("#subscription-year-" + years ).unCheckCheckboxes();
|
|
});
|
|
|
|
$(".generatenext").on("click", function(e){
|
|
e.preventDefault();
|
|
var subscriptionid = $(this).data("subscriptionid");
|
|
generateNext( subscriptionid );
|
|
});
|
|
|
|
$(".subscription_renew").on("click", function(e){
|
|
e.preventDefault();
|
|
var subscriptionid = $(this).data("subscriptionid");
|
|
popup( subscriptionid );
|
|
});
|
|
|
|
$(".print_list").on("click", function(e){
|
|
e.preventDefault();
|
|
var url = $(this).attr("href");
|
|
window.open( url,'PrintSlip','width=500,height=500,toolbar=no,scrollbars=yes');
|
|
});
|
|
|
|
$('#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;
|
|
});
|
|
|
|
$(".delete-issues").on("click", function(e){
|
|
e.preventDefault();
|
|
deleteIssues("[% subscriptionidlist | html %]");
|
|
});
|
|
});
|
|
|
|
</script>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|