Bug 9459 [Revised] Use DataTables on hold ratios report page
authorOwen Leonard <oleonard@myacpl.org>
Wed, 23 Jan 2013 15:57:09 +0000 (10:57 -0500)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Sun, 7 Apr 2013 17:30:54 +0000 (13:30 -0400)
Replace the tablesorter plugin with the DataTables plugin on the
hold ratios report page.

To test, open the hold ratios report (Circulation -> Hold ratios).
Confirm that table sorting works correctly.

Revision adds correct pagination options and natural sort for 'items
needed' column.

Patch now depends on Bug 9431
(http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=9431) which
introduces the natural sort plugin.

Further revision corrects template path to datatables assets.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: On top of Bug 9431. Sorting works. No errors.
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
koha-tmpl/intranet-tmpl/prog/en/modules/circ/reserveratios.tt

index 33deaa9..8a52193 100644 (file)
@@ -2,15 +2,12 @@
 <title>Koha &rsaquo; Circulation &rsaquo; Hold ratios</title>
 [% INCLUDE 'doc-head-close.inc' %]
 [% INCLUDE 'calendar.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.dataTables.min.js"></script>
+[% INCLUDE 'datatables-strings.inc' %]
+<script type="text/javascript" src="[% themelang %]/js/datatables.js"></script>
 <script type="text/javascript">
 //<![CDATA[
-$.tablesorter.addParser({
-    id: 'articles', 
-    is: function(s) {return false;  }, 
-    format: function(s) { return s.toLowerCase().replace(/^(the|an|a) /,''); }, 
-    type: 'text' 
-});
         $(document).ready(function() {
                $("th a").hide();
                $(".ratiolimit").click(function () {
@@ -20,11 +17,14 @@ $.tablesorter.addParser({
             function () { $(this).toggleClass("ulined") },
             function () { $(this).toggleClass("ulined") }
         );
-               $.tablesorter.defaults.widgets = ['zebra']; 
-               $("#holdst:has(tbody tr)").tablesorter({    // only add sort if the table has a body and rows
-                       sortList: [[0,1]],
-                       headers: { 1: { sorter: 'articles' }}
-        });
+        $("#holdst").dataTable($.extend(true, {}, dataTablesDefaults, {
+            "aoColumnDefs": [
+                { "aTargets": [ 8 ], "sType": "natural" }
+            ],
+            "aLengthMenu": [[10, 20, 50, 100, -1], [10, 20, 50, 100, "All"]],
+            "iDisplayLength": 20,
+            "sPaginationType": "four_button"
+        }));
         });
 //]]>
 </script>