Owen Leonard
b118074fe4
This patch updates several label creator templates to remove the use of "onclick" in favor of defining click events in JavaScript. Also changed: - Replaced the non-existant element <icon> with <i> - Removed the use of <center> and 'align="center"'; - In the item search results template: - The use of the checkboxes jQuery plugin has been replaced with straight jQuery for simplicity's sake. - Output of table headers has been modified so that translatable strings are in the template instead of having English strings passed from the script. - Moved the 'Add checked' and 'Done' buttons into a floating toolbar. To test, apply the patch and go to Tools -> Label creator. - Choose New -> Label batch - Click 'Add items' - Perform a search for items. - Confirm that 'select all' and 'clear all' links work. - Confirm that clicking an individual 'Add' button works. - Select multiple items and click the 'Add checked' button. Confirm that the selected items were added to your batch. - Click 'Add items' again to save the selected items to your batch. - Test that the 'Delete' and 'Export' buttons next to any item work correctly. - Choose Manage -> Label batches - Test that the 'Delete' button works correctly. - Select one or more batches and test that the 'Export selected' button works correctly. Revision: Removed changes to pagination in the item search results template since it didn't work. Followed test plan, works as expected. Signed-off-by: Marc Véron <veron@veron.ch> Signed-off-by: Hector Castro <hector.hecaxmmx@gmail.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
301 lines
17 KiB
Text
301 lines
17 KiB
Text
[% USE ItemTypes %]
|
|
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Tools › Label creator › Batches › [% IF batch_id %]Edit ([% batch_id %])[% ELSE %]New[% END %]</title>
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
[% INCLUDE 'greybox.inc' %]
|
|
<link rel="stylesheet" type="text/css" href="[% interface %]/[% theme %]/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/labels/label-manage.pl?op=delete&label_element=batch&element_id=[% batch_id %]";
|
|
}
|
|
else {
|
|
return; // abort delete
|
|
}
|
|
};
|
|
function dofocus() { // named function req'd for body onload event by some FF and IE7 security models
|
|
$(".focus:last").select();
|
|
}
|
|
function verifyBarcodes(barcodes) {
|
|
if (barcodes.value == '') {
|
|
alert(_("Please add barcodes using either the direct entry text area or the item search."));
|
|
return false; // not ok
|
|
}
|
|
else {
|
|
return true; // ok
|
|
};
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
getstr = items.join("&");
|
|
item_msg = item_num.join(", ");
|
|
var msg = "Are you sure you want to remove label number(s): " + item_msg + " from this batch?"
|
|
} else if (document.items.action.checked) {
|
|
alert(_("Deletion of label from a batch with only one label will delete the batch.") + "\n\n" + _("If this is what you want, select the 'Delete batch' option from the toolbar"));
|
|
return; // no deletion for single item batch
|
|
}
|
|
else {
|
|
alert(_("Please select at least one label to delete."));
|
|
return; // no item selected
|
|
}
|
|
var answer = confirm(msg);
|
|
if (answer) {
|
|
window.location = "/cgi-bin/koha/labels/label-edit-batch.pl?op=remove&batch_id=[% batch_id %]&" + getstr;
|
|
}
|
|
else {
|
|
return; // abort delete
|
|
}
|
|
};
|
|
function Add() {
|
|
var number_list = document.getElementById("number_list");
|
|
if (number_list.value == '') {
|
|
window.open("/cgi-bin/koha/labels/label-item-search.pl?batch_id=[% batch_id %]&type=labels",'FindABibIndex','width=875,height=400,toolbar=no,scrollbars=yes');
|
|
}
|
|
else {
|
|
document.forms["add_by_number"].submit();
|
|
}
|
|
};
|
|
|
|
function add_item(item_number) {
|
|
$("#itemnum_enter").prop("checked",true);
|
|
$("#number_list").val($("#number_list").val()+item_number+"\r\n");
|
|
};
|
|
|
|
function DeDuplicate() {
|
|
window.location = "/cgi-bin/koha/labels/label-edit-batch.pl?op=de_duplicate&batch_id=[% batch_id %]";
|
|
};
|
|
function Xport(mode) {
|
|
if (mode == 'label') {
|
|
labels= new Array;
|
|
if(document.items.action.length > 0) {
|
|
for (var i=0; i < document.items.action.length; i++) {
|
|
if (document.items.action[i].checked) {
|
|
labels.push("label_id=" + document.items.action[i].value);
|
|
}
|
|
}
|
|
if (labels.length < 1) {
|
|
alert(_("Please select at least one label to export."));
|
|
return; // no batch selected
|
|
}
|
|
getstr = labels.join("&");
|
|
}
|
|
else if (document.items.action.checked) {
|
|
getstr = document.items.action.value;
|
|
}
|
|
else {
|
|
alert(_("Please select at least one label to export."));
|
|
return; // no batch selected
|
|
}
|
|
return GB_showCenter('Export labels', "/cgi-bin/koha/labels/label-print.pl?batch_id=[% batch_id %]&" + getstr, 400, 800);
|
|
}
|
|
else if (mode == 'batch') {
|
|
return GB_showCenter('Export labels', "/cgi-bin/koha/labels/label-print.pl?batch_id=[% batch_id %]", 400, 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, {
|
|
"autoWidth": false,
|
|
"aoColumnDefs": [
|
|
{ "sType": "anti-the", "aTargets" : [ "anti-the" ] },
|
|
{ "aTargets": [ -1, -2 ], "bSortable": false, "bSearchable": false },
|
|
],
|
|
"aaSorting": [[ 0, "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;
|
|
});
|
|
$(".delete").on("click", function(){
|
|
return confirmDelete( _("Are you sure you want to delete this?") );
|
|
});
|
|
$(".export").on("click", function(e){
|
|
e.preventDefault();
|
|
var label_id = $(this).data("label-id");
|
|
var batch_id = $(this).data("batch-id");
|
|
GB_showCenter(_("Export labels"),"/cgi-bin/koha/labels/label-print.pl?batch_id=" + batch_id + "&label_id=" + label_id, 400, 800);
|
|
});
|
|
});
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
<body id="labels_label-edit-batch" class="tools labels" onload="dofocus();">
|
|
[% 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/labels/label-home.pl">Label creator</a> ›
|
|
<a href="/cgi-bin/koha/labels/label-manage.pl?label_element=batch">Batches</a> ›
|
|
[% IF batch_id %]
|
|
Edit ([% batch_id %])
|
|
[% ELSE %]
|
|
New
|
|
[% END %]
|
|
</div>
|
|
<div id="doc3" class="yui-t2">
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
[% INCLUDE 'labels-toolbar.inc' %]
|
|
[% IF ( err ) %]
|
|
<div class="dialog alert">
|
|
<strong>WARNING:</strong> An error was encountered and [% errstr %] Please have your system administrator check the error log for details.
|
|
</div>
|
|
[% ELSIF ( duplicate_message ) %]
|
|
<div class="dialog message">
|
|
<strong>Duplicate item(s) removed from batch number [% batch_id %]: [% duplicate_count %]</strong>
|
|
</div>
|
|
[% END %]
|
|
|
|
<div id="manage-label-batches">
|
|
<div class="hint">Current library: [% LoginBranchname %]</div>
|
|
<form name="add_by_number" action="/cgi-bin/koha/labels/label-edit-batch.pl" method="post">
|
|
<div>
|
|
<fieldset class="rows" style="border-bottom: 0px; border: 0px;">
|
|
<ol><li>
|
|
<input type="hidden" name="op" value="add" />
|
|
<input type="hidden" name="batch_id" value="[% batch_id %]" />
|
|
</li>
|
|
<li>
|
|
<input type="radio" name="number_type" id="barcode_enter" value="barcode" checked />
|
|
<label for="barcode_enter">Enter by barcode:</label><br/>
|
|
<input type="radio" name="number_type" id="itemnum_enter" value="itemnumber" />
|
|
<label for="itemnum_enter">Enter by itemnumber:</label>
|
|
</li>
|
|
<li>
|
|
<label for="number_list">Add by barcode(s) or itemnumbers(s):
|
|
<br /> <span class="hint">One number per line.</span>
|
|
<br /> <span class="hint">Leave empty to add via item search (itemnumber).</span>
|
|
</label>
|
|
<textarea rows="5" id="number_list" name="number_list" tabindex="1" class="focus"></textarea>
|
|
</li></ol>
|
|
</fieldset>
|
|
</div>
|
|
</form>
|
|
<div id="batch-manage" class="btn-toolbar">
|
|
<a class="btn btn-small" id="additems" href="#"><i class="fa fa-plus"></i> Add item(s)</a>[% IF ( table_loop ) %]
|
|
<a class="btn btn-small" id="removeitems" href="#"><i class="fa fa-trash"></i> Remove selected items</a>
|
|
<a class="btn btn-small" id="deletebatch" href="#"><i class="fa fa-minus-square"></i> Delete batch</a>
|
|
<a class="btn btn-small" id="deduplicate" href="#"><i class="fa fa-minus"></i> Remove duplicates</a>
|
|
<a class="btn btn-small" id="exportitems" href="#"><i class="fa fa-share-square-o"></i> Export selected items</a>
|
|
<a class="btn btn-small" id="exportbatch" href="#"><i class="fa fa-share-square-o"></i> Export full batch</a>[% END %]
|
|
</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 "Label number" -%]
|
|
<th>Label number</th>
|
|
[% CASE "Summary" -%]
|
|
<th class="anti-the">Summary</th>
|
|
[% CASE "Item type" %]
|
|
<th>Item type</th>
|
|
[% CASE "Barcode" %]
|
|
<th>Barcode</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>
|
|
<a class="btn btn-mini delete" href="/cgi-bin/koha/labels/label-edit-batch.pl?op=remove&batch_id=[% batch_id |url %]&label_id=[% text_field.field_value |url %]"><i class="fa fa-trash"></i> Delete</a>
|
|
<a class="btn btn-mini export" href="#" data-batch-id="[% batch_id %]" data-label-id="[% text_field.field_value |html %]"><i class="fa fa-share-square-o"></i> Export</a>
|
|
</td>
|
|
<td><input type="checkbox" name="action" value="[% text_field.field_value %]"></td>
|
|
[% ELSE %]
|
|
<td>
|
|
[% IF ( text_field.field_name == '_item_type_tbl' ) %]
|
|
[% ItemTypes.GetDescription( text_field.field_value ) %]
|
|
[% ELSE %]
|
|
[% text_field.field_value %]
|
|
[% END %]
|
|
</td>
|
|
[% END %]
|
|
[% END %]
|
|
</tr>
|
|
[% END %]
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
</form>
|
|
[% ELSE %]
|
|
<div class="dialog message">
|
|
<h4>There are no items in this batch yet</h4>
|
|
<p>Add items by using the text area above or leave empty to add via item search.</p>
|
|
</div>
|
|
[% END %]
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
[% INCLUDE 'tools-menu.inc' %]
|
|
</div>
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|