diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 1929c573e42..0b49e1cc52d 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -887,8 +887,11 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W */ render_element: function() { var rendered = this.render(); - if (rendered || rendered === "") - this.$element = $(rendered); + if (rendered) { + var elem = $(rendered); + this.$element.replaceWith(elem); + this.$element = elem; + } return this; }, /** @@ -900,7 +903,7 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W render: function (additional) { if (this.template) return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); - return false; + return null; }, /** * Method called after rendering. Mostly used to bind actions, perform asynchronous @@ -912,12 +915,6 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W * @returns {jQuery.Deferred} */ start: function() { - /* The default implementation is only useful for retro-compatibility, it is - not necessary to call it using _super() when using Widget for new components. */ - if (!this.$element) { - var tmp = document.getElementById(this.element_id); - this.$element = tmp ? $(tmp) : undefined; - } return $.Deferred().done().promise(); }, /** diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 15790d3c1c0..f532ea4a538 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2419,7 +2419,8 @@ openerp.web.form.SelectCreatePopup = openerp.web.OldWidget.extend(/** @lends ope }, read_function: null}); this.initial_ids = this.options.initial_ids; this.created_elements = []; - openerp.web.form.dialog(this.render(), {close:function() { + this.render_element(); + openerp.web.form.dialog(this.$element, {close:function() { self.check_exit(); }}); this.start(); @@ -2607,7 +2608,8 @@ openerp.web.form.FormOpenPopup = openerp.web.OldWidget.extend(/** @lends openerp this.row_id = row_id; this.context = context || {}; this.options = _.defaults(options || {}, {"auto_write": true}); - jQuery(this.render()).dialog({title: '', + this.render_element(); + this.$element.dialog({title: '', modal: true, width: 960, height: 600});