GridColumnPicker sort repairs
authorBill Erickson <berick@esilibrary.com>
Fri, 30 Mar 2012 17:58:06 +0000 (13:58 -0400)
committerBill Erickson <berick@esilibrary.com>
Fri, 30 Mar 2012 17:58:06 +0000 (13:58 -0400)
Ensure that the order of sort fields is correct when persisting them.

Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/web/js/dojo/openils/widget/GridColumnPicker.js

index 1577162..9ad8b66 100644 (file)
@@ -244,13 +244,13 @@ if(!dojo._hasResource["openils.widget.GridColumnPicker"]) {
                 }
             }
 
+            if (sortUpdated && this.onSortChange) 
+                this.onSortChange(this.buildSortList());
+
             this.structure[0].cells[0] = displayCells;
             this.grid.setStructure(this.structure);
             this.grid.update();
 
-            if (sortUpdated && this.onSortChange) 
-                this.onSortChange(this.buildSortList());
-
             if (persist) this.persist(true);
         },
 
@@ -264,6 +264,7 @@ if(!dojo._hasResource["openils.widget.GridColumnPicker"]) {
                     return 1; 
                 }
             );
+
             return sortList.map(function(f){
                 var dir = f._sort < 0 ? 'desc' : 'asc';
                 return {field : f.field, direction : dir};
@@ -274,7 +275,6 @@ if(!dojo._hasResource["openils.widget.GridColumnPicker"]) {
         persist : function(noRefresh) {
             var list = [];
             var autos = [];
-            var sort = [];
             if (!noRefresh) this.refreshCells();
 
             for(var i = 0; i < this.cells.length; i++) {
@@ -284,15 +284,13 @@ if(!dojo._hasResource["openils.widget.GridColumnPicker"]) {
                     if(cell.width == 'auto')
                         autos.push(cell.field);
                 } 
-                if (cell._sort > 0)
-                    sort.push(cell.field);
             }
 
             var setting = {};
             setting[this.persistKey] = {
                 'columns' : list, 
                 'auto' : autos,
-                'sort' : sort
+                'sort' : this.buildSortList().map(function(f){return f.field})
             };
 
             var _this = this;