diff options
| author | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-02-07 14:05:46 +0100 |
|---|---|---|
| committer | niv-openerp <nicolas.vanhoren@openerp.com> | 2012-02-07 14:05:46 +0100 |
| commit | b5579eee208bf12a4d591e45f3b5ea21cbec69c0 (patch) | |
| tree | 48cefc67aff397308267f640a622fcf7c61335ca /addons/web/static/src/js/core.js | |
| parent | 62da0fa82612f078041ab65e2043a38a147d2ce7 (diff) | |
| parent | 243d524978bf2a4aaab508984c87bbf9af9d1810 (diff) | |
[merge] refactoring of form view widgets
bzr revid: nicolas.vanhoren@openerp.com-20120207130546-bu0m5fl99krcqbbb
Diffstat (limited to 'addons/web/static/src/js/core.js')
| -rw-r--r-- | addons/web/static/src/js/core.js | 36 |
1 files 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# */{ |
