From: Owen Leonard <[email protected]>

This system preference allows the librarian to toggle on or off whether the 
JQuery tablesort is used on the
circ/circulation.pl page.  For patrons with many checkouts, this sort may cause 
very slow page loading (and
therefore slow circulation transaction time), depending on the browser and 
local machine used.  Staff can
still see a sortable list of current checkouts on the members/moremember.pl 
page.

My revision prevents the template from including *any* tablesorter code if the
preference is feature is turned off: both the circulation list and
the holds list will have no jQuery tablesorter.

Edit: patch without unnecessary whitespace changes

Signed-off-by: Nicole Engard <[email protected]>
---
 circ/circulation.pl                                |    4 ++++
 installer/data/mysql/en/mandatory/sysprefs.sql     |    1 +
 installer/data/mysql/updatedatabase.pl             |    7 +++++++
 .../en/modules/admin/preferences/circulation.pref  |    6 ++++++
 .../prog/en/modules/circ/circulation.tmpl          |   11 +++++------
 5 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/circ/circulation.pl b/circ/circulation.pl
index 4b67920..4b16462 100755
--- a/circ/circulation.pl
+++ b/circ/circulation.pl
@@ -109,6 +109,10 @@ if (C4::Context->preference("DisplayClearScreenButton")) {
     $template->param(DisplayClearScreenButton => 1);
 }
 
+if (C4::Context->preference("UseTablesortForCirc")) {
+    $template->param(UseTablesortForCirc => 1);
+}
+
 my $barcode        = $query->param('barcode') || '';
 $barcode =~  s/^\s*|\s*$//g; # remove leading/trailing whitespace
 
diff --git a/installer/data/mysql/en/mandatory/sysprefs.sql 
b/installer/data/mysql/en/mandatory/sysprefs.sql
index 8bfed37..9cbc923 100644
--- a/installer/data/mysql/en/mandatory/sysprefs.sql
+++ b/installer/data/mysql/en/mandatory/sysprefs.sql
@@ -281,6 +281,7 @@ INSERT INTO systempreferences 
(variable,value,explanation,options,type)VALUES('A
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('AutoSelfCheckID','','Staff ID with circulation rights to be used for 
automatic web-based self-check. Only applies if AutoSelfCheckAllowed syspref is 
turned on.','','free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('AutoSelfCheckPass','','Password to be used for automatic web-based 
self-check. Only applies if AutoSelfCheckAllowed syspref is turned 
on.','','free');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('soundon','0','Enable circulation sounds during checkin and checkout in 
the staff interface.  Not supported by all web browsers yet.','','YesNo');
+INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('UseTablesortForCirc','0','If on, use the JQuery tablesort function on 
the list of current borrower checkouts on the circulation page.  Note that the 
use of this function may slow down circ for patrons with may 
checkouts.','','YesNo');
 INSERT INTO `systempreferences` ( `variable` , `value` , `options` , 
`explanation` , `type` ) VALUES ( 'PrintNoticesMaxLines', '0', '', 'If greater 
than 0, sets the maximum number of lines an overdue notice will print. If the 
number of items is greater than this number, the notice will end with a warning 
asking the borrower to check their online account for a full list of overdue 
items.', 'Integer' );
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('ILS-DI','0','Enables ILS-DI services at OPAC.','','YesNo');
 INSERT INTO `systempreferences` (variable,value,explanation,options,type) 
VALUES('ILS-DI:Authorized_IPs','','.','Restricts usage of ILS-DI to some 
IPs','Free');
diff --git a/installer/data/mysql/updatedatabase.pl 
b/installer/data/mysql/updatedatabase.pl
index a0b5c4a..6c6b9e3 100755
--- a/installer/data/mysql/updatedatabase.pl
+++ b/installer/data/mysql/updatedatabase.pl
@@ -3701,6 +3701,13 @@ if (C4::Context->preference("Version") < 
TransformToNum($DBversion)) {
     SetVersion ($DBversion);
 }
 
+$DBversion = "3.01.00.XXX";
+if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
+    $dbh->do("INSERT INTO `systempreferences` 
(variable,value,explanation,options,type) VALUES('UseTablesortForCirc','0','If 
on, use the JQuery tablesort function on the list of current borrower checkouts 
on the circulation page. Note that the use of this function may slow down circ 
for patrons with may checkouts.','','YesNo');");
+    print "Upgrade to $DBversion done (Add UseTablesortForCirc syspref)\n";
+    SetVersion ($DBversion);
+}
+
 =item DropAllForeignKeys($table)
 
   Drop all foreign keys of the table $table
diff --git 
a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref 
b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
index ab92915..c60afbe 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/circulation.pref
@@ -32,6 +32,12 @@ Circulation:
                   desc: latest to earliest
             - due date.
         -
+            - pref: UseTablesortForCirc
+              choices:
+                  yes: "Enable"
+                  no: "Don't enable"
+            - "the sorting of current patron checkouts on the circulation 
screen. <br/>NOTE: Enabling this function may slow down circulation time for 
patrons with many checkouts."
+        -
             - pref: soundon
               choices: 
                  yes: "Enable"
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl 
b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
index 980d195..ab27fbb 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/circ/circulation.tmpl
@@ -5,20 +5,20 @@
 (<!-- TMPL_VAR NAME="cardnumber" -->)
 <!-- /TMPL_IF --></title>
 <!-- TMPL_INCLUDE NAME="doc-head-close.inc" -->
-<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" 
-->/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
+<!-- TMPL_IF NAME="UseTablesortForCirc" --><script type="text/javascript" 
src="<!-- TMPL_VAR name="themelang" 
-->/lib/jquery/plugins/jquery.tablesorter.min.js"></script><!-- /TMPL_IF -->
 <script type="text/javascript" src="<!-- TMPL_VAR name="themelang" 
-->/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
 <script type="text/javascript">
 //<![CDATA[
-$.tablesorter.addParser({
+<!-- TMPL_IF NAME="UseTablesortForCirc" -->$.tablesorter.addParser({
     id: 'articles',
     is: function(s) {return false;  },
     format: function(s) { return s.toLowerCase().replace(/^(the|an|a) /,''); },
     type: 'text'
-});
+});<!-- /TMPL_IF -->
 <!-- TMPL_UNLESS NAME="borrowernumber" --><!-- TMPL_UNLESS 
NAME="CGIselectborrower" -->window.onload=function(){ 
$('#findborrower').focus(); };<!-- /TMPL_UNLESS --><!-- /TMPL_UNLESS -->
         $(document).ready(function() {
                $('#patronlists > ul').tabs();
-               $.tablesorter.defaults.widgets = ['zebra'];
+               <!-- TMPL_IF NAME="UseTablesortForCirc" 
-->$.tablesorter.defaults.widgets = ['zebra'];
                $("#issuest").tablesorter({<!-- TMPL_IF 
NAME="dateformat_metric" -->
                dateFormat: 'uk',<!-- /TMPL_IF -->
                headers: { 1: { sorter: 'articles' },5: { sorter: false 
},6:{sorter:false},7:{sorter:false},8:{sorter:false}}
@@ -30,8 +30,7 @@ $.tablesorter.addParser({
                dateFormat: 'uk',<!-- /TMPL_IF -->
                        sortList: [[0,0]],
                        headers: { 1: { sorter: 'articles' }}
-               });
-
+               });<!-- /TMPL_IF -->
         <!-- TMPL_IF NAME="AllowRenewalLimitOverride" -->
         $( '#override_limit' ).click( function () {
             if ( this.checked ) {
-- 
1.5.6.5

_______________________________________________
Koha-patches mailing list
[email protected]
http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-patches

Reply via email to