[Koha-patches] [PATCH] Bug 9635 - Replace YUI buttons on label batches pages with Bootstrap

Owen Leonard oleonard at myacpl.org
Fri Feb 15 20:21:59 CET 2013


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.
---
 .../prog/en/includes/labels-batches-toolbar.inc    |  185 --------------------
 .../prog/en/modules/labels/label-edit-batch.tt     |  140 ++++++++++++++-
 2 files changed, 138 insertions(+), 187 deletions(-)
 delete mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/labels-batches-toolbar.inc

diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/labels-batches-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/labels-batches-toolbar.inc
deleted file mode 100644
index 8786a8c..0000000
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/labels-batches-toolbar.inc
+++ /dev/null
@@ -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&label_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 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&batch_id=[% batch_id %]&" + 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 %]&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&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>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt
index 5a49e70..bde821a 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/labels/label-edit-batch.tt
@@ -1,4 +1,3 @@
-    <!-- PLEASE MAINTAIN PROPER INDENTATION!!!!  -->
     [% INCLUDE 'doc-head-open.inc' %]
     <title>Koha › Tools › Labels › 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&label_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 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&batch_id=[% batch_id %]&" + 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 %]&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&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>
-- 
1.7.9.5


More information about the Koha-patches mailing list