diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-05-30 12:18:52 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-05-30 12:18:52 +0200 |
| commit | e008ef302a1b3fc584d4f0fb9956d237947f17d5 (patch) | |
| tree | 7976948d25c1aa7aa23123ccabb37b5eaae8e8e3 /addons/web/static/src/js/views/basic/basic_renderer.js | |
| parent | f36e6917bd73a56dc0c7468b4849920df4088154 (diff) | |
| parent | 53300648edef8f87bfd0bff6b52536efdd1cc82c (diff) | |
[MERGE] forward port branch saas-11.3 up to 53300648ede
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_renderer.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_renderer.js | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js index 24b053a7bbe..9834c9c18de 100644 --- a/addons/web/static/src/js/views/basic/basic_renderer.js +++ b/addons/web/static/src/js/views/basic/basic_renderer.js @@ -661,15 +661,23 @@ var BasicRenderer = AbstractRenderer.extend({ // Prepare widget rendering and save the related deferred var def = widget._widgetRenderAndInsert(function () {}); - if (def.state() === 'pending') { + var async = def.state() === 'pending'; + if (async) { this.defs.push(def); } + var $el = async ? $('<div>') : widget.$el; - // handle other attributes/modifiers - this._handleAttributes(widget.$el, node); - this._registerModifiers(node, record, widget); - widget.$el.addClass('o_widget'); - return widget.$el; + var self = this; + def.then(function () { + self._handleAttributes(widget.$el, node); + self._registerModifiers(node, record, widget); + widget.$el.addClass('o_widget'); + if (async) { + $el.replaceWith(widget.$el); + } + }); + + return $el; }, /** |
