From 20d7683223f0dd86b163bb31f47111924ad07085 Mon Sep 17 00:00:00 2001 From: amercader Date: Mon, 11 Jun 2012 13:47:41 +0100 Subject: [PATCH] [#130,view/slickgrid] Sort documents on SlickGrid view --- src/view.slickgrid.js | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/src/view.slickgrid.js b/src/view.slickgrid.js index 1b0e69ac..1f49b6ee 100644 --- a/src/view.slickgrid.js +++ b/src/view.slickgrid.js @@ -135,35 +135,23 @@ my.SlickGrid = Backbone.View.extend({ this.grid = new Slick.Grid(this.el, data, visibleColumns, options); // Column sorting - var gridSorter = function(field, ascending, grid, data){ - - data.sort(function(a, b){ - var result = - a[field] > b[field] ? 1 : - a[field] < b[field] ? -1 : - 0 - ; - return ascending ? result : -result; - }); - - grid.setData(data); - grid.updateRowCount(); - grid.render(); - } - var sortInfo = this.state.get('columnsSort'); - if (sortInfo){ - var sortAsc = !(sortInfo['direction'] == 'desc'); - gridSorter(sortInfo.column, sortAsc, self.grid, data); + if (sortInfo.column){ + var sortAsc = !(sortInfo.order == 'desc'); this.grid.setSortColumn(sortInfo.column, sortAsc); } this.grid.onSort.subscribe(function(e, args){ - gridSorter(args.sortCol.field,args.sortAsc,self.grid,data); + var order = (args.sortAsc) ? 'asc':'desc'; self.state.set({columnsSort:{ - column:args.sortCol, - direction: (args.sortAsc) ? 'asc':'desc' + column:args.sortCol.field, + order: order }}); + + var sort = [{}]; + sort[0][args.sortCol.field] = {order: order}; + self.model.query({sort: sort}); + }); this.grid.onColumnsReordered.subscribe(function(e, args){