diff options
| author | Fabien Meghazi <fme@openerp.com> | 2011-04-12 10:38:31 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2011-04-12 10:38:31 +0200 |
| commit | 9f780dd615953b28fcc2d7f388f005daaf554b0e (patch) | |
| tree | fc0b7c1ce60c5afcdc9e2830b83c4d75457f15b8 /addons/base/static/src | |
| parent | 66e8ba68c58f59172137397217ab59ab301dc141 (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.js | 21 |
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; }, |
