summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-04-12 10:38:31 +0200
committerFabien Meghazi <fme@openerp.com>2011-04-12 10:38:31 +0200
commit9f780dd615953b28fcc2d7f388f005daaf554b0e (patch)
treefc0b7c1ce60c5afcdc9e2830b83c4d75457f15b8 /addons/base/static/src
parent66e8ba68c58f59172137397217ab59ab301dc141 (diff)
[FIX] form: use boolean attributes (readonly, required,...) from field too
bzr revid: fme@openerp.com-20110412083831-1a8e37ozysgrs6y1
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/form.js21
1 files changed, 11 insertions, 10 deletions
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index ce6a203a52d..65cb5498c54 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -435,12 +435,12 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({
}
}
},
- handle_node: function(n) {
- var type = this.view.fields_view.fields[n.attrs.name] || {};
- var widget_type = n.attrs.widget || type.type || n.tag;
- var widget = new (openerp.base.form.widgets.get_object(widget_type)) (this.view, n);
- if (n.tag == 'field' && n.attrs.nolabel != '1') {
- var label = new (openerp.base.form.widgets.get_object('label')) (this.view, n);
+ handle_node: function(node) {
+ var type = this.view.fields_view.fields[node.attrs.name] || {};
+ var widget_type = node.attrs.widget || type.type || node.tag;
+ var widget = new (openerp.base.form.widgets.get_object(widget_type)) (this.view, node);
+ if (node.tag == 'field' && node.attrs.nolabel != '1') {
+ var label = new (openerp.base.form.widgets.get_object('label')) (this.view, node);
label["for"] = widget;
this.add_widget(label);
}
@@ -579,12 +579,13 @@ openerp.base.form.Field = openerp.base.form.Widget.extend({
if (node.attrs.nolabel != '1' && this.colspan > 1) {
this.colspan--;
}
- this.field = view.fields_view.fields[node.attrs.name];
+ this.field = view.fields_view.fields[node.attrs.name] || {};
this.string = node.attrs.string || this.field.string;
this.help = node.attrs.help || this.field.help;
- this.nolabel = (node.attrs.nolabel == '1');
- this.readonly = (node.attrs.readonly == '1');
- this.required = (node.attrs.required == '1');
+ this.invisible = (this.invisible || this.field.invisible == '1');
+ this.nolabel = (this.field.nolabel || node.attrs.nolabel) == '1';
+ this.readonly = (this.field.readonly || node.attrs.readonly) == '1';
+ this.required = (this.field.required || node.attrs.required) == '1';
this.invalid = false;
this.touched = false;
},