summaryrefslogtreecommitdiff
path: root/addons/web/static
diff options
context:
space:
mode:
authorMohammed Shekha <msh@openerp.com>2018-01-18 18:55:27 +0530
committerAaron Bohy <aab@odoo.com>2018-01-19 14:31:05 +0100
commit7faecb6fe43d5fc42e43aa7080952c186dcf3804 (patch)
treeb4a74cf968de4f6a6f871a70f947042f56801f03 /addons/web/static
parenta4a54ab8387b68b4477ba3b22bc974ebd349b0d3 (diff)
[FIX] web: WebClient: notify the ActionManager it's in the DOM
Before this rev., on_attach_callback of the ActionManager wasn't called at init, because the WebClient didn't use the append function of dom_utils.
Diffstat (limited to 'addons/web/static')
-rw-r--r--addons/web/static/src/js/chrome/abstract_web_client.js12
-rw-r--r--addons/web/static/src/js/chrome/web_client.js3
2 files changed, 10 insertions, 5 deletions
diff --git a/addons/web/static/src/js/chrome/abstract_web_client.js b/addons/web/static/src/js/chrome/abstract_web_client.js
index c491297abfc..58c068fecb1 100644
--- a/addons/web/static/src/js/chrome/abstract_web_client.js
+++ b/addons/web/static/src/js/chrome/abstract_web_client.js
@@ -18,6 +18,7 @@ var config = require('web.config');
var crash_manager = require('web.crash_manager');
var data_manager = require('web.data_manager');
var Dialog = require('web.Dialog');
+var dom = require('web.dom');
var Loading = require('web.Loading');
var mixins = require('web.mixins');
var NotificationManager = require('web.NotificationManager');
@@ -46,7 +47,7 @@ var AbstractWebClient = Widget.extend(mixins.ServiceProvider, {
// notifications, warnings and effects
notification: function (e) {
- if(this.notification_manager) {
+ if (this.notification_manager) {
this.notification_manager.notify(e.data.title, e.data.message, e.data.sticky);
}
},
@@ -201,8 +202,15 @@ var AbstractWebClient = Widget.extend(mixins.ServiceProvider, {
};
},
set_action_manager: function () {
+ var self = this;
this.action_manager = new ActionManager(this, session.user_context);
- return this.action_manager.appendTo(this.$('.o_main_content'));
+ var fragment = document.createDocumentFragment();
+ return this.action_manager.appendTo(fragment).then(function () {
+ dom.append(self.$('.o_main_content'), fragment, {
+ in_DOM: true,
+ callbacks: [{widget: self.action_manager}],
+ });
+ });
},
set_notification_manager: function () {
this.notification_manager = new NotificationManager(this);
diff --git a/addons/web/static/src/js/chrome/web_client.js b/addons/web/static/src/js/chrome/web_client.js
index c39917d5118..d824e3e4176 100644
--- a/addons/web/static/src/js/chrome/web_client.js
+++ b/addons/web/static/src/js/chrome/web_client.js
@@ -23,9 +23,6 @@ return AbstractWebClient.extend({
show_application: function() {
var self = this;
- // Allow to call `on_attach_callback` and `on_detach_callback` when needed
- this.action_manager.is_in_DOM = true;
-
this.toggle_bars(true);
this.set_title();
this.update_logo();