From e9668823e3a743ac0dc3df47e00f208afcfa9ef8 Mon Sep 17 00:00:00 2001 From: rlx <0x0073@0x2620.org> Date: Tue, 7 May 2013 14:33:52 +0000 Subject: [PATCH] Ox.Chart: fix sort regressions --- source/Ox.UI/js/List/Chart.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/source/Ox.UI/js/List/Chart.js b/source/Ox.UI/js/List/Chart.js index 25f6a352..11933abf 100644 --- a/source/Ox.UI/js/List/Chart.js +++ b/source/Ox.UI/js/List/Chart.js @@ -92,18 +92,24 @@ Ox.Chart = function(options, self) { } self.items = self.keys.map(function(key) { - var value = self.options.data[key], - sort = self.options.sort.operator == '+' - ? (self.subData ? self.totals[key] : value) - : (self.subData ? self.max - self.totals[key] : self.max - value); - if (self.options.sort.key == 'value') { - sort = Ox.pad(value, 64) + sort; - } - return {key: key, value: value, sort: sort}; + return { + key: key, + keySort: self.sort[key], + value: self.options.data[key], + valueSort: self.subData ? self.totals[key] : self.options.data[key] + }; }); + self.sortBy = self.options.sort.key == 'key' + ? [ + {key: 'keySort', operator: self.options.sort.operator} + ] + : [ + {key: 'valueSort', operator: self.options.sort.operator}, + {key: 'keySort', operator: '+'} + ] if (self.options.limit) { self.items = Ox.sortBy( - self.items, {key: 'sort', operator: '+'} + self.items, self.sortBy ).slice(0, self.options.limit); self.max = Ox.max(self.items.map(function(item) { return self.subData ? Ox.sum(item.value) : item.value; @@ -176,7 +182,7 @@ Ox.Chart = function(options, self) { max: 0, min: 0, pageLength: self.items.length, - sort: [{key: 'sort', operator: '+'}], + sort: self.sortBy, width: self.options.width, unique: 'key' })