From cb7450acec2d80b3503fdf7451271e3e941dfa81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Fri, 13 Jun 2014 14:55:26 +0200 Subject: [PATCH] [IMP] improves the default order parameter It is renamed 'default_order' and now supports the usual syntax for sorting fields: for example 'field1, field2 desc, field3 asc' --- addons/web/static/src/js/view_list.js | 7 +++++-- addons/web_kanban/static/src/js/kanban.js | 8 ++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 4a63b9921c3..2dce42fe3ba 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -354,10 +354,13 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi this.sidebar.$el.hide(); } //Sort - var default_order = this.fields_view.arch.attrs.order, + var default_order = this.fields_view.arch.attrs.default_order, unsorted = !this.dataset._sort.length; if (unsorted && default_order) { - this.dataset.sort(default_order); + _.each(default_order.split(',').reverse(), function (order) { + var split = _.without(order.split(' '), ''); + self.dataset.sort(split[0], split[1] === 'desc'); + }); } if(this.dataset._sort.length){ diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index b0c0a1680ec..56bebb8cbd2 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -61,13 +61,17 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ $('html').off('click.kanban'); }, load_kanban: function(data) { + var self = this; this.fields_view = data; // use default order if defined in xml description - var default_order = this.fields_view.arch.attrs.order, + var default_order = this.fields_view.arch.attrs.default_order, unsorted = !this.dataset._sort.length; if (unsorted && default_order) { - this.dataset.sort(default_order); + _.each(default_order.split(',').reverse(), function (order) { + var split = _.without(order.split(' '), ''); + self.dataset.sort(split[0], split[1] === 'desc'); + }); } this.$el.addClass(this.fields_view.arch.attrs['class']);