diff options
| author | Xavier Morel <xmo@openerp.com> | 2012-02-06 11:32:59 +0100 |
|---|---|---|
| committer | Xavier Morel <xmo@openerp.com> | 2012-02-06 11:32:59 +0100 |
| commit | 6ebf8face0c4a53ecdb33b08b7072e083fdcdcbb (patch) | |
| tree | 1ea449564bfa2737905452bf6f44217dbff9aae1 /addons/web/static/src/js | |
| parent | 7b25f9d4c7495ed3fe2041b1ae8c4801d3c294dd (diff) | |
[ADD] sorting support in buffered datasets
bzr revid: xmo@openerp.com-20120206103259-nt3wjmt9w9k7kegy
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/data.js | 17 |
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) { |
