summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2017-03-21 08:52:35 +0100
committerAaron Bohy <aab@odoo.com>2017-04-11 19:44:38 +0200
commit9ba78dfcce85a9b115b338d6b3193bb34be43d35 (patch)
tree238a905e64dbfaa97dec64c3fda8300a6697c989 /addons/web/static/src
parentd7fdff572ff8c803ec1a1701bc4fa9b0052a09d4 (diff)
[FIX] web: reload view with correct params
When reloading a view by clicking on its icon in the view switcher, some params of the view (e.g. limit) were reset to their original value. So if the user previously updated that param (e.g. by editing the pager), these changes were lost. This rev. ensures that those original params are only given to the view at its initialization, but not on reload.
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/chrome/view_manager.js28
1 files changed, 14 insertions, 14 deletions
diff --git a/addons/web/static/src/js/chrome/view_manager.js b/addons/web/static/src/js/chrome/view_manager.js
index d2700854fe3..af1d037bc2f 100644
--- a/addons/web/static/src/js/chrome/view_manager.js
+++ b/addons/web/static/src/js/chrome/view_manager.js
@@ -84,9 +84,9 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
this.title = this.action.name;
var actionGroupBy = self.action.context.group_by;
if (!actionGroupBy) {
- actionGroupBy = []
+ actionGroupBy = [];
} else if (typeof actionGroupBy === 'string') {
- actionGroupBy = [actionGroupBy]
+ actionGroupBy = [actionGroupBy];
}
_.each(views, function (view) {
var view_type = view[1] || view.view_type;
@@ -236,18 +236,6 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
}
var old_view = this.active_view;
- view_options = _.extend({}, view.options, view_options, this.env);
-
- if (view_options.groupBy && !view_options.groupBy.length) {
- var actionContext = view_options ? view_options.action.context : {};
- var actionGroupBy = actionContext.group_by;
- if (!actionGroupBy) {
- actionGroupBy = []
- } else if (typeof actionGroupBy === 'string') {
- actionGroupBy = [actionGroupBy]
- }
- view_options.groupBy = actionGroupBy;
- }
// Ensure that the fields_view has been loaded
var views_def;
@@ -267,6 +255,17 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
self.active_view = view;
if (!view.loaded) {
+ view_options = _.extend({}, view.options, view_options, self.env);
+ if (view_options.groupBy && !view_options.groupBy.length) {
+ var actionContext = view_options ? view_options.action.context : {};
+ var actionGroupBy = actionContext.group_by;
+ if (!actionGroupBy) {
+ actionGroupBy = [];
+ } else if (typeof actionGroupBy === 'string') {
+ actionGroupBy = [actionGroupBy];
+ }
+ view_options.groupBy = actionGroupBy;
+ }
view.loaded = $.Deferred();
self.create_view(view, view_options).then(function(controller) {
view.controller = controller;
@@ -279,6 +278,7 @@ var ViewManager = Widget.extend(ControlPanelMixin, {
});
} else {
view.loaded = view.loaded.then(function() {
+ view_options = _.extend({}, view_options, self.env);
return view.controller.reload(view_options);
});
}