summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/chrome/abstract_action.js7
-rw-r--r--addons/web/static/src/js/chrome/action_manager_act_window.js6
-rw-r--r--addons/web/static/src/js/views/form/form_controller.js11
-rw-r--r--addons/web/static/src/js/views/graph/graph_controller.js1
-rw-r--r--addons/web/static/src/js/views/graph/graph_model.js3
5 files changed, 21 insertions, 7 deletions
diff --git a/addons/web/static/src/js/chrome/abstract_action.js b/addons/web/static/src/js/chrome/abstract_action.js
index 5b0f7e3aeca..c4755338bf0 100644
--- a/addons/web/static/src/js/chrome/abstract_action.js
+++ b/addons/web/static/src/js/chrome/abstract_action.js
@@ -32,6 +32,13 @@ var AbstractAction = Widget.extend({
* Called each time the action is detached from the DOM.
*/
on_detach_callback: function () {},
+ /**
+ * Called by the action manager when action is restored (typically, when the
+ * user clicks on the action in the breadcrumb)
+ *
+ * @returns {Deferred|undefined}
+ */
+ willRestore: function () {},
//--------------------------------------------------------------------------
// Public
diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js
index d121ec929f0..0f6c88a1188 100644
--- a/addons/web/static/src/js/chrome/action_manager_act_window.js
+++ b/addons/web/static/src/js/chrome/action_manager_act_window.js
@@ -646,8 +646,10 @@ ActionManager.include({
});
} else {
viewOptions = _.extend(viewOptions || {}, action.env);
- return controller.widget.reload(viewOptions).then(function () {
- return controller;
+ return $.when(controller.widget.willRestore()).then(function () {
+ return controller.widget.reload(viewOptions).then(function () {
+ return controller;
+ });
});
}
});
diff --git a/addons/web/static/src/js/views/form/form_controller.js b/addons/web/static/src/js/views/form/form_controller.js
index 7586dcc4bab..b7c8e8a6214 100644
--- a/addons/web/static/src/js/views/form/form_controller.js
+++ b/addons/web/static/src/js/views/form/form_controller.js
@@ -40,6 +40,15 @@ var FormController = BasicController.extend({
this.hasSidebar = params.hasSidebar;
this.toolbarActions = params.toolbarActions || {};
},
+ /**
+ * Force mode back to readonly. Whenever we leave a form view, it is saved,
+ * and should no longer be in edit mode.
+ *
+ * @override
+ */
+ willRestore: function () {
+ this.mode = 'readonly';
+ },
//--------------------------------------------------------------------------
// Public
@@ -242,7 +251,7 @@ var FormController = BasicController.extend({
* @override
*/
update: function (params, options) {
- params = _.extend({viewType: 'form'}, params);
+ params = _.extend({viewType: 'form', mode: this.mode}, params);
return this._super(params, options);
},
diff --git a/addons/web/static/src/js/views/graph/graph_controller.js b/addons/web/static/src/js/views/graph/graph_controller.js
index 48f15de8902..4e998377fa7 100644
--- a/addons/web/static/src/js/views/graph/graph_controller.js
+++ b/addons/web/static/src/js/views/graph/graph_controller.js
@@ -179,7 +179,6 @@ var GraphController = AbstractController.extend(GroupByMenuInterfaceMixin,{
*/
_onButtonClick: function (event) {
var $target = $(event.target);
- var parent;
var field;
if ($target.hasClass('o_graph_button')) {
this._setMode($target.data('mode'));
diff --git a/addons/web/static/src/js/views/graph/graph_model.js b/addons/web/static/src/js/views/graph/graph_model.js
index adefe1e8953..26c1aec6545 100644
--- a/addons/web/static/src/js/views/graph/graph_model.js
+++ b/addons/web/static/src/js/views/graph/graph_model.js
@@ -6,11 +6,8 @@ odoo.define('web.GraphModel', function (require) {
* server. It basically just do a read_group and format/normalize data.
*/
-var core = require('web.core');
var AbstractModel = require('web.AbstractModel');
-var _t = core._t;
-
return AbstractModel.extend({
/**
* @override