Bug 14940: Fix sorting in opac-topissues.pl
authorJulian Maurice <julian.maurice@biblibre.com>
Fri, 2 Oct 2015 07:25:18 +0000 (09:25 +0200)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 5 Oct 2015 15:26:45 +0000 (12:26 -0300)
There is hidden text in "Checkouts" cells that prevent DataTables to
sort numerically.
This patch adds the 'title-numeric' sort plugin and use it in
opac-topissues.pl

Column 'Checkouts' in Home > Most popular items sorts as expected
Signed-off-by: Marc VĂ©ron <veron@veron.ch>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-topissues.tt
koha-tmpl/opac-tmpl/bootstrap/js/datatables.js

index 3ec33af..9538e91 100644 (file)
@@ -87,7 +87,7 @@
                                                     [% results_loo.description %]
                                                 [% END %]
                                             </td>
-                                            <td><span class="tdlabel">Checkouts: </span> [% results_loo.tot %]</td>
+                                            <td><span class="tdlabel">Checkouts: </span> <span title="[% results_loo.tot %]">[% results_loo.tot %]</span></td>
                                             [% IF Koha.Preference( 'opacuserlogin' ) == 1 %]<td>[% IF Koha.Preference( 'RequestOnOpac' ) == 1 %][% UNLESS ( results_loo.norequests ) %]<a href="/cgi-bin/koha/opac-reserve.pl?biblionumber=[% results_loo.biblionumber %]">Place hold</a>[% END %][% END %]</td>[% END %]
                                             </tr>
                                     [% END %]
             "aoColumns": [
                 { "sType": "anti-the" },
                 null,
-                null,
+                { "sType": "title-numeric" },
                 [% IF ( opacuserlogin ) %]null,[% END %]
             ]
         }));
index 5f0892d..a4c64a2 100644 (file)
@@ -55,6 +55,32 @@ jQuery.extend( jQuery.fn.dataTableExt.oSort, {
     }
 } );
 
+/* Plugin to allow sorting numerically on data stored in a span's title attribute
+ *
+ * Ex: <td><span title="[% total %]">Total: [% total %]</span></td>
+ *
+ * In DataTables config:
+ *     "aoColumns": [
+ *        { "sType": "title-numeric" }
+ *     ]
+ * http://legacy.datatables.net/plug-ins/sorting#hidden_title
+ */
+jQuery.extend( jQuery.fn.dataTableExt.oSort, {
+    "title-numeric-pre": function ( a ) {
+        console.log(a);
+        var x = a.match(/title="*(-?[0-9\.]+)/)[1];
+        return parseFloat( x );
+    },
+
+    "title-numeric-asc": function ( a, b ) {
+        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
+    },
+
+    "title-numeric-desc": function ( a, b ) {
+        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
+    }
+} );
+
 (function() {
 
     /* Plugin to allow text sorting to ignore articles