diff options
| author | Aaron Bohy <aab@odoo.com> | 2015-07-13 14:46:54 +0200 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2015-07-15 13:32:58 +0200 |
| commit | a0ddaf8b84b6c04508d9c114b4c06469d06a47f0 (patch) | |
| tree | 3fd322b6dcc8c307fa78839ebab275f58d13731d /addons/web/static/src/js/framework/view.js | |
| parent | 27df65c8782f998319374cddeead77ce8e994352 (diff) | |
[IMP] web: trigger an event when webclient is ready
The main purpose of this commit is to be consistent with the enterprise edition,
in which the event 'DOM_updated' is triggered when new content is inserted in
the DOM. This way, addons that need to know when a view has been attached in the DOM
(e.g. web_tip) can listen to this event and will work fine with both editions
of the web addon.
With the actual structure of the webclient (action_manager, view_manager),
there is no easy way to decide whether or not a view is attached in the DOM,
because every rendering is performed in a detached element. For instance,
when a view_manager instantiates a new view, it appends it in its $el once
the view is ready, but it can't know if its $el is attached in the DOM (it is
only the case if the view_manager is the current action of the action manager).
This rev. introduces utility functions to centralize the appending/prepending of
content, so that an event can be triggered (at a unique place) when the content
is really in the DOM. These functions are used by the the action_manager and the
view_manager.
Another change is that the action_manager keeps the view_manager informed when
they are attached in/detached from the DOM, through the variable is_in_DOM.
Diffstat (limited to 'addons/web/static/src/js/framework/view.js')
| -rw-r--r-- | addons/web/static/src/js/framework/view.js | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/addons/web/static/src/js/framework/view.js b/addons/web/static/src/js/framework/view.js index 8eee01d414d..d803b7487df 100644 --- a/addons/web/static/src/js/framework/view.js +++ b/addons/web/static/src/js/framework/view.js @@ -166,18 +166,9 @@ var View = Widget.extend({ this.embedded_view = embedded_view; }, do_show: function () { - var self = this; - this.$el.show(); - setTimeout(function () { - self.$el.parent().addClass('in'); - }, 0); - + this._super(); core.bus.trigger('view_shown', this); }, - do_hide: function () { - this.$el.parent().removeClass('in'); - this.$el.hide(); - }, is_active: function () { return this.ViewManager.active_view.controller === this; }, |
