[imp] polish render and render_element usage

bzr revid: nicolas.vanhoren@openerp.com-20120207130125-xexqks24jb7mguy8
This commit is contained in:
niv-openerp 2012-02-07 14:01:25 +01:00
parent 58dee55da3
commit 243d524978
3 changed files with 27 additions and 28 deletions

View File

@ -91,19 +91,19 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
on_loaded: function(data) {
var self = this;
if (!data) {
throw "No data provided."
throw "No data provided.";
}
if (this.root_frame) {
throw "Form view does not support multiple calls to on_loaded";
}
this.fields_order = [];
this.fields_view = data;
var frame = instanciate_widget(this.registry.get_object('frame'), this, this.fields_view.arch);
this.root_frame = frame;
this.rendered = QWeb.render(this.form_template, {'widget': this});
this.$element.html(this.rendered);
this.root_frame.$element = $(".oe_form_root_frame_placeholder", this.$element);
this.root_frame.render_element();
this.root_frame.start();
this.root_frame = instanciate_widget(this.registry.get_object('frame'), this, this.fields_view.arch);
this.root_frame.appendTo($(".oe_form_header", this.$element));
this.$form_header = this.$element.find('.oe_form_header:first');
this.$form_header.find('div.oe_form_pager button[data-pager-action]').click(function() {
@ -799,11 +799,8 @@ openerp.web.form.Widget = openerp.web.OldWidget.extend(/** @lends openerp.web.fo
update_dom: function() {
this.$element.toggle(!this.invisible);
},
render: function() {
return QWeb.render(this.form_template, { "widget": this });
},
render_element: function() {
this.$element.html(this.render());
this.$element.html(QWeb.render(this.form_template, { "widget": this }));
},
do_attach_tooltip: function(widget, trigger, options) {
widget = widget || this;
@ -1194,12 +1191,15 @@ openerp.web.form.WidgetLabel = openerp.web.form.Widget.extend({
this.nowrap = true;
}
},
render: function () {
render_element: function() {
var rendered;
if (this['for'] && this.type !== 'label') {
return QWeb.render(this.form_template, {widget: this['for']});
rendered = QWeb.render(this.form_template, {widget: this['for']});
} else {
// Actual label widgets should not have a false and have type label
rendered = QWeb.render(this.form_template, {widget: this});
}
// Actual label widgets should not have a false and have type label
return QWeb.render(this.form_template, {widget: this});
this.$element.html(rendered);
},
start: function() {
this._super();
@ -3233,10 +3233,11 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({
});
openerp.web.form.WidgetHtml = openerp.web.form.Widget.extend({
render: function () {
render_element: function () {
var $root = $('<div class="oe_form_html_view">');
this.render_children(this, $root);
return $root.html();
var rendered = $root.html();
this.$element.html(rendered);
},
render_children: function (object, $into) {
var self = this,
@ -3245,10 +3246,9 @@ openerp.web.form.WidgetHtml = openerp.web.form.Widget.extend({
if (typeof child === 'string') {
$into.text(child);
} else if (child.tag === 'field') {
$into.append(
instanciate_widget(self.view.registry.get_object('frame'),
self.view, {tag: 'ueule', attrs: {}, children: [child] })
.render());
var widget = instanciate_widget(self.view.registry.get_object('frame'),
self.view, {tag: 'ueule', attrs: {}, children: [child] });
widget.appendTo($into);
} else {
var $child = $(document.createElement(child.tag))
.attr(child.attrs)

View File

@ -743,8 +743,6 @@
</t>
</div>
</div>
<div class="oe_form_root_frame_placeholder">
</div>
</t>
<t t-name="One2Many.formview" t-extend="FormView">
<t t-jquery=".oe_form_buttons" t-operation="inner">

View File

@ -10,7 +10,7 @@ if (!openerp.web_dashboard) {
openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
init: function(view, node) {
this._super(view, node);
this.template = 'DashBoard';
this.form_template = 'DashBoard';
this.actions_attrs = {};
this.action_managers = [];
},
@ -225,7 +225,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
});
}
},
render: function() {
render_element: function() {
// We should start with three columns available
for (var i = this.node.children.length; i < 3; i++) {
this.node.children.push({
@ -234,7 +234,8 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
children: []
});
}
return QWeb.render(this.template, this);
var rendered = QWeb.render(this.form_template, this);
this.$element.html(rendered);
},
do_reload: function() {
var view_manager = this.view.widget_parent,
@ -244,7 +245,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
}
});
openerp.web.form.DashBoardLegacy = openerp.web.form.DashBoard.extend({
render: function() {
render_element: function() {
if (this.node.tag == 'hpaned') {
this.node.attrs.style = '2-1';
} else if (this.node.tag == 'vpaned') {
@ -263,7 +264,7 @@ openerp.web.form.DashBoardLegacy = openerp.web.form.DashBoard.extend({
}
}
});
return this._super(this, arguments);
this._super(this);
}
});