summaryrefslogtreecommitdiff
path: root/addons/web/static
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-02-06 11:32:59 +0100
committerXavier Morel <xmo@openerp.com>2012-02-06 11:32:59 +0100
commit6ebf8face0c4a53ecdb33b08b7072e083fdcdcbb (patch)
tree1ea449564bfa2737905452bf6f44217dbff9aae1 /addons/web/static
parent7b25f9d4c7495ed3fe2041b1ae8c4801d3c294dd (diff)
[ADD] sorting support in buffered datasets
bzr revid: xmo@openerp.com-20120206103259-nt3wjmt9w9k7kegy
Diffstat (limited to 'addons/web/static')
-rw-r--r--addons/web/static/src/js/data.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js
index 046930e4baf..01962f829e6 100644
--- a/addons/web/static/src/js/data.js
+++ b/addons/web/static/src/js/data.js
@@ -722,7 +722,24 @@ openerp.web.BufferedDataSet = openerp.web.DataSetStatic.extend({
throw "Record not correctly loaded";
}
}
+ var sort_fields = self._sort,
+ compare = function (v1, v2) {
+ return (v1 < v2) ? -1
+ : (v1 > v2) ? 1
+ : 0;
+ };
+ records.sort(function (a, b) {
+ return _.reduce(sort_fields, function (acc, field) {
+ if (acc) { return acc; }
+ var sign = 1;
+ if (field[0] === '-') {
+ sign = -1;
+ field = field.slice(1);
+ }
+ return sign * compare(a[field], b[field]);
+ }, 0);
+ });
completion.resolve(records);
};
if(to_get.length > 0) {