Bug 9456: (follow-up) sort on callnumber only
authorKyle M Hall <kyle@bywatersolutions.com>
Mon, 22 Jul 2013 11:43:13 +0000 (07:43 -0400)
committerGalen Charlton <gmc@esilibrary.com>
Thu, 31 Oct 2013 05:52:05 +0000 (05:52 +0000)
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
koha-tmpl/intranet-tmpl/prog/en/js/datatables.js
koha-tmpl/intranet-tmpl/prog/en/modules/basket/basket.tt

index 5015da2..ee7f039 100644 (file)
@@ -590,12 +590,22 @@ jQuery.fn.dataTableExt.oSort['callnumbers-asc']  = function(x,y) {
         x_array.shift();
         y_array.shift();
 
+        x_array = jQuery.map( x_array, function( a ) {
+            return parse_callnumber( a );
+        });
+        y_array = jQuery.map( y_array, function( a ) {
+            return parse_callnumber( a );
+        });
+
         x_array.sort();
         y_array.sort();
 
         x = x_array.shift();
         y = y_array.shift();
 
+        if ( !x ) { x = ""; }
+        if ( !y ) { y = ""; } 
+
         return ((x < y) ? -1 : ((x > y) ?  1 : 0));
 };
 
@@ -607,11 +617,31 @@ jQuery.fn.dataTableExt.oSort['callnumbers-desc'] = function(x,y) {
         x_array.shift();
         y_array.shift();
 
+        x_array = jQuery.map( x_array, function( a ) {
+            return parse_callnumber( a );
+        });
+        y_array = jQuery.map( y_array, function( a ) {
+            return parse_callnumber( a );
+        });
+
         x_array.sort();
         y_array.sort();
 
         x = x_array.pop();
         y = y_array.pop();
 
+        if ( !x ) { x = ""; }
+        if ( !y ) { y = ""; } 
+
         return ((x < y) ?  1 : ((x > y) ? -1 : 0));
 };
+
+function parse_callnumber ( html ) {
+    var array = html.split('<span class="callnumber">');
+    if ( array[1] ) {
+        array = array[1].split('</span>');
+        return array[0];
+    } else {
+        return "";
+    }
+}
index 38270f1..9743bf1 100644 (file)
@@ -326,7 +326,7 @@ function placeHold () {
             <td>
                 [% IF ( BIBLIO_RESULT.ITEM_RESULTS ) %]
                     [% FOREACH ITEM_RESULT IN BIBLIO_RESULT.ITEM_RESULTS %]
-                        <div><span class="nowrap"><strong>[% ITEM_RESULT.itemcallnumber %]</strong> [% ITEM_RESULT.branchname %] <span class="shelvingloc inline">[% ITEM_RESULT.location_description %]</span></span></div>
+                        <div><span class="nowrap"><strong><span class="callnumber">[% ITEM_RESULT.itemcallnumber %]</span></strong> [% ITEM_RESULT.branchname %] <span class="shelvingloc inline">[% ITEM_RESULT.location_description %]</span></span></div>
                     [% END %]
                 [% ELSE %]
                     This record has no items.