summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/core.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2012-02-07 14:05:46 +0100
committerniv-openerp <nicolas.vanhoren@openerp.com>2012-02-07 14:05:46 +0100
commitb5579eee208bf12a4d591e45f3b5ea21cbec69c0 (patch)
tree48cefc67aff397308267f640a622fcf7c61335ca /addons/web/static/src/js/core.js
parent62da0fa82612f078041ab65e2043a38a147d2ce7 (diff)
parent243d524978bf2a4aaab508984c87bbf9af9d1810 (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.js36
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# */{