Bug 9635 - Replace YUI buttons on label batches pages with Bootstrap

This patch converts the toolbar used by label batches pages to
Bootstrap, replacing YUI button and menu code with Bootstrap markup.

This patch also consolidates the include file and main template. The
include file was used in only one template.

To test, create a label batch and test all functions related to that
batch: adding and removing items, de-duplicating the batch, exporting
individual items, exporting the batch, and deleting the batch. Buttons
should look correct and work correctly.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Comment: Work as described, no errors.
Tested all functions (add, del, de-duplicate, export item, export batch)

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works nicely, no problems found.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
This commit is contained in:
Owen Leonard 2013-02-02 10:07:04 -05:00 committed by Jared Camins-Esakov
parent 19e6146469
commit fd680afc6f
2 changed files with 138 additions and 187 deletions

View file

@ -1,185 +0,0 @@
<div id="toolbar">
<script type="text/JavaScript">
//<![CDATA[
function DeleteConfirm() {
var msg = "Are you sure you want to delete batch [% batch_id %]?"
var answer = confirm(msg);
if (answer) {
window.location = "/cgi-bin/koha/labels/label-manage.pl?op=delete&amp;label_element=batch&amp;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 label number(s): " + item_msg + " from this batch?"
}
// else if (document.items.action.checked) {
// getstr = "label_id="+document.items.action.value;
// var msg = "Are you sure you want to remove selected item from this batch?"
// }
else {
alert(_("Please select at least 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&amp;batch_id=[% batch_id %]&amp;" + getstr;
}
else {
return; // abort delete
}
};
function Add() {
var barcodes = document.getElementById("barcode");
if (barcodes.value == '') {
window.open("/cgi-bin/koha/labels/label-item-search.pl?batch_id=[% batch_id %]&amp;type=labels",'FindABibIndex','width=875,height=400,toolbar=no,scrollbars=yes');
}
else {
document.forms["add_by_barcode"].submit();
}
};
function DeDuplicate() {
window.location = "/cgi-bin/koha/labels/label-edit-batch.pl?op=de_duplicate&amp;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, 700, 800);
}
else if (mode == 'batch') {
return GB_showCenter('Export labels', "/cgi-bin/koha/labels/label-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);
};
// prepare DOM for YUI Toolbar
$(document).ready(function() {
$("#additemsc").empty();
$("#removeitemsc").empty();
$("#deletebatchc").empty();
$("#deduplicatec").empty();
$("#exportitemsc").empty();
$("#exportbatchc").empty();
yuiToolbar();
});
// YUI Toolbar Functions
function yuiToolbar() {
new YAHOO.widget.Button({
id: "additems",
type: "link",
href: "#",
label: _("Add item(s)"),
container: "additemsc",
onclick: {fn:function(){Add()}}
});
new YAHOO.widget.Button({
id: "removeitems",
type: "link",
href: "#",
label: _("Remove item(s)"),
container: "removeitemsc",
onclick: {fn:function(){Remove()}}
});
new YAHOO.widget.Button({
id: "deletebatch",
type: "link",
href: "#",
label: _("Delete batch"),
container: "deletebatchc",
onclick: {fn:function(){DeleteConfirm()}}
});
new YAHOO.widget.Button({
id: "deduplicate",
type: "link",
href: "#",
label: _("Remove duplicates"),
container: "deduplicatec",
onclick: {fn:function(){DeDuplicate()}}
});
new YAHOO.widget.Button({
id: "exportitems",
type: "link",
href: "#",
label: _("Export item(s)"),
container: "exportitemsc",
onclick: {fn:function(){Xport('label')}}
});
new YAHOO.widget.Button({
id: "exportbatch",
type: "link",
href: "#",
label: _("Export batch"),
container: "exportbatchc",
onclick: {fn:function(){Xport('batch')}}
});
new YAHOO.widget.Button("deletebatch");
}
//]]>
</script>
<ul class="toolbar">
<li id="additemsc"><a id="additems" href="#">Add item(s)</a></li>[% IF ( table_loop ) %]
<li id="removeitemsc"><a id="removeitems" href="#">Remove item(s)</a></li>
<li id="deletebatchc"><a id="deletebatch" href="#">Delete batch</a></li>
<li id="deduplicatec"><a id="deduplicate" href="#">Remove duplicates</a></li>
<li id="exportitemsc"><a id="exportitems" href="#">Export item(s)</a></li>
<li id="exportbatchc"><a id="exportbatch" href="#">Export batch</a></li>[% END %]
</ul>
</div>

View file

@ -1,4 +1,3 @@
<!-- PLEASE MAINTAIN PROPER INDENTATION!!!! -->
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Tools &rsaquo; Labels &rsaquo; Manage label batches</title>
[% INCLUDE 'doc-head-close.inc' %]
@ -17,6 +16,136 @@
return true; // ok
};
}
function DeleteConfirm() {
var msg = "Are you sure you want to delete batch [% batch_id %]?"
var answer = confirm(msg);
if (answer) {
window.location = "/cgi-bin/koha/labels/label-manage.pl?op=delete&amp;label_element=batch&amp;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 label number(s): " + item_msg + " from this batch?"
}
// else if (document.items.action.checked) {
// getstr = "label_id="+document.items.action.value;
// var msg = "Are you sure you want to remove selected item from this batch?"
// }
else {
alert(_("Please select at least 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&amp;batch_id=[% batch_id %]&amp;" + getstr;
}
else {
return; // abort delete
}
};
function Add() {
var barcodes = document.getElementById("barcode");
if (barcodes.value == '') {
window.open("/cgi-bin/koha/labels/label-item-search.pl?batch_id=[% batch_id %]&amp;type=labels",'FindABibIndex','width=875,height=400,toolbar=no,scrollbars=yes');
}
else {
document.forms["add_by_barcode"].submit();
}
};
function DeDuplicate() {
window.location = "/cgi-bin/koha/labels/label-edit-batch.pl?op=de_duplicate&amp;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, 700, 800);
}
else if (mode == 'batch') {
return GB_showCenter('Export labels', "/cgi-bin/koha/labels/label-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() {
$("#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>
@ -34,7 +163,14 @@
<div id="bd">
<div id="yui-main">
<div class="yui-b">
[% INCLUDE 'labels-batches-toolbar.inc' %]
<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>
<div class="yui-g">
<div class="yui-u first" id="manage-label-batches">
<div class="hint">Current library: [% LoginBranchname %]</div>