From 58dee55da3c6a14c5bd701c4564b6b808fac627c Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 7 Feb 2012 13:34:25 +0100 Subject: [PATCH] [imp] put some more things in old widget bzr revid: nicolas.vanhoren@openerp.com-20120207123425-02jofowbat61e500 --- addons/web/static/src/js/core.js | 36 +++++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 3e81342b9f8..e5e1bc4a066 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -1043,27 +1043,19 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W }, on_inserted: function(element, widget) {}, /** - * Renders the element and insert the result of the render() method in this.$element. + * Renders the element. The default implementation renders the widget using QWeb, + * `this.template` must be defined. The context given to QWeb contains the "widget" + * key that references `this`. */ render_element: function() { - var rendered = this.render(); + var rendered = null; + if (this.template) + rendered = openerp.web.qweb.render(this.template, {widget: this}); if (rendered) { var elem = $(rendered); this.$element.replaceWith(elem); this.$element = elem; } - return this; - }, - /** - * Renders the widget using QWeb, `this.template` must be defined. - * The context given to QWeb contains the "widget" key that references `this`. - * - * @param {Object} additional Additional context arguments to pass to the template. - */ - render: function (additional) { - if (this.template) - return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); - return null; }, /** * Method called after rendering. Mostly used to bind actions, perform asynchronous @@ -1141,7 +1133,21 @@ openerp.web.OldWidget = openerp.web.Widget.extend({ this.element_id = this.element_id || _.uniqueId('widget-'); var tmp = document.getElementById(this.element_id); this.$element = tmp ? $(tmp) : $(document.createElement(this.tag_name)); - } + }, + render_element: function() { + var rendered = this.render(); + if (rendered) { + var elem = $(rendered); + this.$element.replaceWith(elem); + this.$element = elem; + } + return this; + }, + render: function (additional) { + if (this.template) + return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); + return null; + }, }); openerp.web.TranslationDataBase = openerp.web.Class.extend(/** @lends openerp.web.TranslationDataBase# */{