9e9088049c
Currently translating Javascript strings with variables in them is hard, because the strings are created from separate parts. For example: _("Are you sure you want to delete the") + " " + count + " " + _("attached items?") This is translated in two different parts, and the translator cannot affect the place where the count-variable is. Now, if the javascript strings allowed placeholders, similar to how the template strings do, the above could be written as: _("Are you sure you want to delete the %s attached items?").format(count) This would make translation much easier. Attached patch adds a Javascript string formatter, and changes all the concatenated translatable JS strings used in intranet to use that. To test: 1) cd misc/translator 2) perl translate update xx-YY 3) grep ^msgid po/xx-YY-i-staff-t-prog-v-3006000.po | sort | uniq > xx-YY-pre 4) apply patch 5) perl translate update xx-YY 6) grep ^msgid po/xx-YY-i-staff-t-prog-v-3006000.po | sort | uniq > xx-YY-post 7) compare the files: diff -Nurd xx-YY-pre xx-yy-post | less should show the javascript strings that changed. 8) Test the UIs where the formatted js strings are used. Signed-off-by: Owen Leonard <oleonard@myacpl.org> I tested *most* of the changed files. There were some instances where it wasn't clear to me how to trigger the warnings which were modified, especially tags/review.tt, admin/manage-marc-import.tt, and holidays.tt. Everything I was able to test worked correctly. Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Works nicely, no regressions found. Thx! Signed-off-by: Galen Charlton <gmc@esilibrary.com>
224 lines
11 KiB
Text
224 lines
11 KiB
Text
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Tools › Patron card creator › Manage patron card batches</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% INCLUDE 'greybox.inc' %]
|
|
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
|
|
[% INCLUDE 'datatables.inc' %]
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
function DeleteConfirm() {
|
|
var msg = _("Are you sure you want to delete batch %s?").format("[% batch_id %]");
|
|
var answer = confirm(msg);
|
|
if (answer) {
|
|
window.location = "/cgi-bin/koha/patroncards/manage.pl?op=delete&card_element=batch&element_id=[% batch_id %]";
|
|
}
|
|
else {
|
|
return; // abort delete
|
|
}
|
|
};
|
|
function Remove() {
|
|
items = new Array;
|
|
item_num = new Array;
|
|
if(document.items.action.length > 0) {
|
|
for (var i=0; i < document.items.action.length; i++) {
|
|
if (document.items.action[i].checked) {
|
|
items.push("label_id=" + document.items.action[i].value);
|
|
item_num.push(i+1);
|
|
}
|
|
}
|
|
if (items.length < 1) {
|
|
alert(_("Please select at least one item to delete."));
|
|
return; // no item selected
|
|
}
|
|
getstr = items.join("&");
|
|
item_msg = item_num.join(", ");
|
|
var msg = _("Are you sure you want to remove card number(s): %s from this batch?").format(item_msg);
|
|
}
|
|
else {
|
|
alert(_("Please select at least label to delete."));
|
|
return; // no item selected
|
|
}
|
|
var answer = confirm(msg);
|
|
if (answer) {
|
|
window.location = "/cgi-bin/koha/patroncards/edit-batch.pl?op=remove&batch_id=[% batch_id %]&" + getstr;
|
|
}
|
|
else {
|
|
return; // abort delete
|
|
}
|
|
};
|
|
function Add() {
|
|
window.open("/cgi-bin/koha/patroncards/members-search.pl?batch_id=[% batch_id %]",'FindABibIndex','width=875,height=400,toolbar=no,scrollbars=yes');
|
|
};
|
|
function DeDuplicate() {
|
|
window.location = "/cgi-bin/koha/patroncards/edit-batch.pl?op=de_duplicate&batch_id=[% batch_id %]";
|
|
};
|
|
function Xport(mode) {
|
|
if (mode == 'label') {
|
|
patroncards= new Array;
|
|
if(document.items.action.length > 0) {
|
|
for (var i=0; i < document.items.action.length; i++) {
|
|
if (document.items.action[i].checked) {
|
|
patroncards.push("label_id=" + document.items.action[i].value);
|
|
}
|
|
}
|
|
if (patroncards.length < 1) {
|
|
alert(_("Please select at least one card to export."));
|
|
return; // no batch selected
|
|
}
|
|
getstr = patroncards.join("&");
|
|
}
|
|
else if (document.items.action.checked) {
|
|
getstr = document.items.action.value;
|
|
}
|
|
else {
|
|
alert(_("Please select at least one card to export."));
|
|
return; // no batch selected
|
|
}
|
|
return GB_showCenter(_("Export labels"), "/cgi-bin/koha/patroncards/print.pl?batch_id=[% batch_id %]&" + getstr, 700, 800);
|
|
}
|
|
else if (mode == 'batch') {
|
|
return GB_showCenter(_("Export labels"), "/cgi-bin/koha/patroncards/print.pl?batch_id=[% batch_id %]", 700, 800);
|
|
}
|
|
else {
|
|
// some pass-thru error trapping just in case...
|
|
}
|
|
};
|
|
function selected_layout() {
|
|
if (document.items.action.length) {
|
|
for (i=0;i<document.items.action.length;i++){
|
|
if (document.items.action[i].checked==true){
|
|
return(document.items.action[i].value);
|
|
}
|
|
};
|
|
}
|
|
else {
|
|
if (document.items.action.checked){
|
|
return(document.items.action.value);
|
|
}
|
|
};
|
|
alert(_("Please select at least one item."));
|
|
return (-1);
|
|
};
|
|
|
|
$(document).ready(function() {
|
|
$("#batcht").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"aoColumnDefs": [
|
|
{ "aTargets": [ -1 ], "bSortable": false, "bSearchable": false }
|
|
],
|
|
"aaSorting": [[ 1, "asc" ]],
|
|
"sPaginationType": "four_button"
|
|
}));
|
|
$("#additems").click(function(){
|
|
Add();
|
|
return false;
|
|
});
|
|
$("#removeitems").click(function(){
|
|
Remove();
|
|
return false;
|
|
});
|
|
$("#deletebatch").click(function(){
|
|
DeleteConfirm();
|
|
return false;
|
|
});
|
|
$("#deduplicate").click(function(){
|
|
DeDuplicate();
|
|
return false;
|
|
});
|
|
$("#exportitems").click(function(){
|
|
Xport('label');
|
|
return false;
|
|
});
|
|
$("#exportbatch").click(function(){
|
|
Xport('batch');
|
|
return false;
|
|
});
|
|
});
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="pcard_edit-batch" class="tools pcard">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'cat-search.inc' %]
|
|
<div id="breadcrumbs">
|
|
<a href="/cgi-bin/koha/mainpage.pl">Home</a> ›
|
|
<a href="/cgi-bin/koha/tools/tools-home.pl">Tools</a> ›
|
|
<a href="/cgi-bin/koha/patroncards/home.pl">Patron card creator</a> ›
|
|
<a href="/cgi-bin/koha/patroncards/manage.pl?card_element=batch">Manage patron card batches</a> ›
|
|
Manage batch number [% batch_id %]
|
|
</div>
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
<div id="toolbar" class="btn-toolbar">
|
|
<a class="btn btn-small" id="additems" href="#">Add item(s)</a>[% IF ( table_loop ) %]
|
|
<a class="btn btn-small" id="removeitems" href="#">Remove item(s)</a>
|
|
<a class="btn btn-small" id="deletebatch" href="#">Delete batch</a>
|
|
<a class="btn btn-small" id="deduplicate" href="#">Remove duplicates</a>
|
|
<a class="btn btn-small" id="exportitems" href="#">Export item(s)</a>
|
|
<a class="btn btn-small" id="exportbatch" href="#">Export batch</a>[% END %]
|
|
</div>
|
|
|
|
[% IF ( duplicate_message ) %]
|
|
<div class="dialog message">
|
|
<strong>[% duplicate_count %] duplicate item(s) found</strong> and removed from batch [% batch_id %].
|
|
</div>
|
|
[% END %]
|
|
|
|
[% INCLUDE 'patroncards-errors.inc' %]
|
|
<div id="manage-patroncard-batches">
|
|
<div class="hint">Current library: [% LoginBranchname %]</div>
|
|
[% IF ( table_loop ) %]
|
|
<form name="items" class="checkboxed">
|
|
<h2>Items in batch number [% batch_id %]</h2>
|
|
<table id="batcht">
|
|
[% FOREACH table_loo IN table_loop %]
|
|
[% IF ( table_loo.header_fields ) %]
|
|
<thead>
|
|
<tr>
|
|
[% FOREACH header_field IN table_loo.header_fields %]
|
|
[% SWITCH header_field.field_label -%]
|
|
[% CASE "Card Number" -%]
|
|
<th>Card number</th>
|
|
[% CASE "Summary" -%]
|
|
<th>Summary</th>
|
|
[% CASE "Borrower Number" %]
|
|
<th>Borrower number</th>
|
|
[% CASE "Select" -%]
|
|
<th>Select</th>
|
|
[% CASE %]
|
|
<th>[% header_field.field_label %]</th>
|
|
[% END -%]
|
|
[% END %]
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
[% ELSE %]
|
|
<tr>
|
|
[% FOREACH text_field IN table_loo.text_fields %]
|
|
[% IF ( text_field.select_field ) %]
|
|
<td><input type="checkbox" name="action" value="[% text_field.field_value %]" /></td>
|
|
[% ELSE %]
|
|
<td>[% text_field.field_value %]</td>
|
|
[% END %]
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
[% ELSE %]
|
|
<div class="dialog message">
|
|
<h4>There are no items in batch [% batch_id %] yet</h4>
|
|
<p>Use the toolbar above to add items.</p></div>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'patroncards-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|