Sort Templates/Reports/Output
authorThomas Berezansky <tsbere@mvlc.org>
Wed, 3 Oct 2012 19:25:38 +0000 (15:25 -0400)
committerBen Shum <bshum@biblio.org>
Thu, 18 Oct 2012 22:23:20 +0000 (18:23 -0400)
By name for Templates/Reports, by Run Time for Output.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/web/opac/common/js/fm_table.js
Open-ILS/web/opac/common/js/fm_table_conf.js

index 95c5bc9..a0608eb 100644 (file)
@@ -106,6 +106,19 @@ FMObjectBuilder.prototype.build = function() {
 
                for( var i = 0; i < this.keys.length; i++ ) 
                        this.thead_tr.appendChild(elem('td',null,this.keys[i]));
+
+               if ( this.sortdata ) {
+                       var sortdata = this.sortdata;
+                       this.obj.sort(function(a, b){
+                               var ret = 1;
+                               var left = a[sortdata[0]]().toLowerCase();
+                               var right = b[sortdata[0]]().toLowerCase();
+                               if (left == right) return 0;
+                               if (left < right)
+                                       ret = -1;
+                               return ret * sortdata[1];
+                       });
+               }
        
                for( var i = 0; i < this.obj.length; i++ ) 
                        this.buildObjectRow(this.obj[i]);
@@ -137,6 +150,7 @@ FMObjectBuilder.prototype.setKeys = function(o) {
                this.keys = this.display[o.classname].fields;
                this.bold = this.display[o.classname].bold;
                this.money = this.display[o.classname].money;
+               this.sortdata = this.display[o.classname].sortdata;
        }
 
        if(!this.keys && FM_TABLE_DISPLAY[o.classname])
@@ -148,6 +162,9 @@ FMObjectBuilder.prototype.setKeys = function(o) {
        if(!this.money && FM_TABLE_DISPLAY[o.classname])
                this.money = FM_TABLE_DISPLAY[o.classname].money;
 
+       if(!this.sortdata && FM_TABLE_DISPLAY[o.classname])
+               this.sortdata = FM_TABLE_DISPLAY[o.classname].sortdata;
+
        if(!this.keys) {
                this.keys = fmclasses[o.classname];
                sortme = true;
index 646d485..e5db887 100644 (file)
@@ -98,7 +98,8 @@ var FM_TABLE_DISPLAY = {
                        'recur',
                        'recurrence',
                        'owner',
-               ]
+               ],
+               sortdata : [ 'name', 1 ]
        },
        'rt' : {
                name : 'name',
@@ -107,7 +108,8 @@ var FM_TABLE_DISPLAY = {
                        'description',
                        'create_time',
                        'owner',
-               ]
+               ],
+               sortdata : [ 'name', 1 ]
        },
        'rs' : {
                fields : [
@@ -124,6 +126,7 @@ var FM_TABLE_DISPLAY = {
                ],
                bold : [
                        'error_text',
-               ]
+               ],
+               sortdata : [ 'run_time', -1 ]
        }
 }