[Koha-patches] [PATCH] Revamp interface of branch transfer limits to give finer conrol of bulk selections.

Owen Leonard oleonard at myacpl.org
Mon Aug 31 15:58:20 CEST 2009


Adds selection by row and by column, all/none/toggle for individual ccode/itype sets, and a tabbed interface for a more compact display.
---
 admin/branch_transfer_limits.pl                    |    2 +
 .../en/modules/admin/branch_transfer_limits.tmpl   |  146 +++++++++++--------
 2 files changed, 86 insertions(+), 62 deletions(-)

diff --git a/admin/branch_transfer_limits.pl b/admin/branch_transfer_limits.pl
index 2cee238..344b70c 100755
--- a/admin/branch_transfer_limits.pl
+++ b/admin/branch_transfer_limits.pl
@@ -90,6 +90,7 @@ foreach my $branchcode ( @branchcodes ) {
 	$row_data{ branchcode } = $branchcode;
 	push ( @branchcode_loop, \%row_data );
 }
+my $branchcount = scalar(@branchcode_loop);
 
 ## Build the default data
 my @codes_loop;
@@ -124,6 +125,7 @@ foreach my $code ( @codes ) {
 
 
 $template->param(
+		branchcount => $branchcount,
 		codes_loop => \@codes_loop,
 		branchcode_loop => \@branchcode_loop,
 		limit_phrase => $limit_phrase,
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branch_transfer_limits.tmpl b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branch_transfer_limits.tmpl
index f47e622..1b25f6f 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branch_transfer_limits.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branch_transfer_limits.tmpl
@@ -1,33 +1,59 @@
 <!-- TMPL_INCLUDE NAME="doc-head-open.inc" -->
 <title>Koha &rsaquo; Administration &rsaquo; Library Transfer Limits</title>
-<script language="JavaScript" type="text/javascript">
-	function SwitchAll() {
-		count = document.mainform.elements.length;
-	    for (i=0; i < count; i++) {
-		    if(document.mainform.elements[i].checked == 1){
-				document.mainform.elements[i].checked = 0;
-			} else {
-				document.mainform.elements[i].checked = 1;
-			}
-		}
-	}
- 
-	function CheckAll() {
-		count = document.mainform.elements.length;
-	    for (i=0; i < count; i++) {
-			document.mainform.elements[i].checked = 1;
-		}
-	}
+<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
+<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
+<script type="text/javascript">
+	$(document).ready(function(){
+		$("#CheckAll").click(function(){ $("#transferlimit_tabs").checkCheckboxes();});
+		$("#UncheckAll").click(function(){ $("#transferlimit_tabs").unCheckCheckboxes();});
+		$("#SwapAll").click(function(){ $("#transferlimit_tabs").toggleCheckboxes();});
+	    $('#transferlimit_tabs > ul').tabs();
+
+		var checkcolumn = $(".checkcolumn");
+		var checkrow = $(".checkrow");
+		var checkall = $(".checkall");
+		var uncheckall = $(".uncheckall");
+		var swapall = $(".swapall");
+
+		$(checkcolumn).click(function(){
+			if(this.checked){ status = "checked" } else { status = "" }
+			var tableid = $(this).parent().parent().parent().parent().attr("id");
+			var columncontext = $(this).parent();
+			var tdindex = columncontext.parent().children().index(columncontext);
+			$("#"+tableid+" tr td:nth-child("+(tdindex+2)+") input[type='checkbox']").attr("checked",status);
+		});
+
+		$(checkrow).click(function(){
+			if(this.checked){ status = "checked" } else { status = "" }
+			$(this).parent().siblings().each(function(){
+				$(this).find("input[type='checkbox']").attr("checked",status);
+			})
+		});
 
-	function UncheckAll() {
-		count = document.mainform.elements.length;
-	    for (i=0; i < count; i++) {
-			document.mainform.elements[i].checked = 0;
-		}
-	}
+		$(checkall).click(function(){
+			var tid = $(this).attr("id");
+			tid = tid.replace("CheckAll","");
+			$("#"+tid).checkCheckboxes();
+			return false;
+		});
+
+		$(uncheckall).click(function(){
+			console.log("Clicked");
+			var tid = $(this).attr("id");
+			tid = tid.replace("UncheckAll","");
+			$("#"+tid).unCheckCheckboxes();
+			return false;
+		});
+
+		$(swapall).click(function(){
+			var tid = $(this).attr("id");
+			tid = tid.replace("SwapAll","");
+			$("#"+tid).toggleCheckboxes();
+			return false;
+		});
+	});
 </script>
-<!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
-<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
+<style type="text/css">td { text-align: center; }</style>
 </head>
 <body>
 <!-- TMPL_INCLUDE NAME="header.inc" -->
@@ -41,48 +67,43 @@
      <div id="yui-main">
     <div class="yui-b">
 
-<div id="toolbar">
-    <script type="text/javascript">
-    //<![CDATA[
-    // prepare DOM for YUI Toolbar
-     $(document).ready(function() {
-        yuiToolbar();
-     });
-    // YUI Toolbar Functions
-    function yuiToolbar() {
-        new YAHOO.widget.Button("CheckAll").addListener('click', CheckAll);
-        new YAHOO.widget.Button("UncheckAll").addListener('click', UncheckAll);
-        new YAHOO.widget.Button("SwapAll").addListener('click',SwitchAll);
-    }   //]]>
-    </script>
-    <ul class="toolbar">
-    <li><a id="CheckAll" href="#">Check All</a></li>
-    <li><a id="UncheckAll" href="#">Uncheck All</a></li>
-    <li><a id="SwapAll" href="#">Swap All</a></li>
-</ul></div>
+<h1>Library Transfer Limits</h1>
+<p class="help">Check the boxes for the items that should <strong><em>not</em></strong> be transferable.</p>
+<fieldset>For <strong>all</strong> <!--TMPL_VAR NAME="limit_phrase" -->s: <a id="CheckAll" href="#">Check All</a> | <a id="UncheckAll" href="#">Uncheck All</a> | <a id="SwapAll" href="#">Toggle All</a></fieldset>
+
 
-<h1 class="parameters">Library Transfer Limits</h1>
-<div class="help">Check the boxes for the items that should <strong><em>not</em></strong> be transferable.</div>
+  <div id="transferlimit_tabs" class="toptabs">
+	<ul class="ui-tabs-nav">
+      <!-- TMPL_LOOP NAME="codes_loop" --><li><a href="#<!-- TMPL_VAR NAME="code" -->set"><!-- TMPL_VAR NAME="code" --></a></li><!-- /TMPL_LOOP -->
+	</ul>
 
-	<div class="table">
-		<form name="mainform" method="post" action="branch_transfer_limits.pl">
-		<table>
+		<form method="post" action="branch_transfer_limits.pl">
+
+	<!-- TMPL_LOOP NAME="codes_loop" -->
+	<div id="<!-- TMPL_VAR NAME="code" -->set">
+		<h4>Limits for <!--TMPL_VAR NAME="limit_phrase" -->: <!-- TMPL_VAR NAME="code" --></h4>
+	<p><a id="CheckAll<!-- TMPL_VAR NAME="code" -->table" class="checkall" href="#">Check All</a> | <a id="UncheckAll<!-- TMPL_VAR NAME="code" -->table" class="uncheckall" href="#">Uncheck All</a> | <a id="SwapAll<!-- TMPL_VAR NAME="code" -->table" class="swapall" href="#">Toggle All</a></p>
+		<table id="<!-- TMPL_VAR NAME="code" -->table">
 			<thead>
 				<tr>
-					<th>To/From</th>
-					<!-- TMPL_LOOP NAME="branchcode_loop" -->
-						<th><!-- TMPL_VAR NAME="branchcode" --></th>
+					<th>&nbsp;</th><th>To:</th>
+					<!-- TMPL_LOOP NAME="to_branch_loop" -->
+						<th><!-- TMPL_VAR NAME="toBranch" --></th>
+					<!-- /TMPL_LOOP -->
+				</tr>
+				<tr><th colspan="2">From:</th>
+					<!-- TMPL_LOOP NAME="to_branch_loop" -->
+						<th><input type="checkbox" name="checkcolumn" class="checkcolumn" /></th>
 					<!-- /TMPL_LOOP -->
 				</tr>
 			</thead>
 
 			<tbody>
-				<!-- TMPL_LOOP NAME="codes_loop" -->
-					<tr><th>Limits for <!--TMPL_VAR NAME="limit_phrase" -->: <!-- TMPL_VAR NAME="code" --></th></tr>
-	
 					<!-- TMPL_LOOP NAME="to_branch_loop" -->
-						<tr>
-							<td><!-- TMPL_VAR NAME="toBranch" --></td>
+						<!-- TMPL_UNLESS NAME="__odd__" --><tr class="highlight"><!-- TMPL_ELSE
+--><tr><!-- /TMPL_UNLESS -->
+							<td><input type="checkbox" name="checkrow" id="<!-- TMPL_VAR NAME="code" --><!-- TMPL_VAR NAME="toBranch" -->row" class="checkrow" /></td>
+							<td><label for="<!-- TMPL_VAR NAME="code" --><!-- TMPL_VAR NAME="toBranch" -->row"><!-- TMPL_VAR NAME="toBranch" --></label></td>
 							<!-- TMPL_LOOP NAME="from_branch_loop" -->
 								<td>
                                     <!-- TMPL_IF NAME="isChecked" -->
@@ -99,14 +120,15 @@
 							<!-- /TMPL_LOOP -->
 						</tr>
 					<!-- /TMPL_LOOP -->
-				<!-- /TMPL_LOOP -->
 			</tbody>
 		</table>
+		</div>
+				<!-- /TMPL_LOOP -->
+		</div>
 		
-		<input type="hidden" name="updateLimits" value="1" />
-		<input type="submit" value="Save Data" />
+		<fieldset class="action"><input type="hidden" name="updateLimits" value="1" />
+		<input type="submit" value="Save" /> <a class="cancel" href="/cgi-bin/koha/admin/admin-home.pl">Cancel</a></fieldset>
 		</form>
-	</div>
   </div>
 </div>
 <div class="yui-b">
-- 
1.5.6.5




More information about the Koha-patches mailing list