[fix] field text

bzr revid: nicolas.vanhoren@openerp.com-20120319151823-xpyjoh8moal2v3tv
This commit is contained in:
niv-openerp 2012-03-19 16:18:23 +01:00
parent 4f623f86cd
commit 9df2a090a0
2 changed files with 35 additions and 26 deletions

View File

@ -1727,25 +1727,30 @@ openerp.web.form.FieldDate = openerp.web.form.FieldDatetime.extend({
} }
}); });
openerp.web.form.FieldText = openerp.web.form.AbstractField.extend({ openerp.web.form.FieldText = openerp.web.form.AbstractField.extend(_.extend({}, openerp.web.form.ReinitializeFieldMixin, {
template: 'FieldText', template: 'FieldText',
start: function() { bind_events: function() {
this._super.apply(this, arguments); this.$textarea = undefined;
this.$textarea = this.$element.find('textarea').change(this.on_ui_change); if (!this.get("effective_readonly")) {
this.resized = false; this.$textarea = this.$element.find('textarea').change(this.on_ui_change);
this.resized = false;
}
}, },
set_value: function(value) { set_value: function(value) {
this._super.apply(this, arguments); this._super.apply(this, arguments);
var show_value = openerp.web.format_value(value, this, ''); this.render_value();
this.$textarea.val(show_value);
if (!this.resized && this.view.options.resize_textareas) {
this.do_resize(this.view.options.resize_textareas);
this.resized = true;
}
}, },
update_dom: function() { render_value: function() {
this._super.apply(this, arguments); var show_value = openerp.web.format_value(this.value, this, '');
this.$textarea.prop('readonly', this.readonly); if (!this.get("effective_readonly")) {
this.$textarea.val(show_value);
if (!this.resized && this.view.options.resize_textareas) {
this.do_resize(this.view.options.resize_textareas);
this.resized = true;
}
} else {
this.$element.text(show_value);
}
}, },
set_value_from_ui: function() { set_value_from_ui: function() {
this.value = openerp.web.parse_value(this.$textarea.val(), this); this.value = openerp.web.parse_value(this.$textarea.val(), this);
@ -1753,11 +1758,13 @@ openerp.web.form.FieldText = openerp.web.form.AbstractField.extend({
}, },
validate: function() { validate: function() {
this.invalid = false; this.invalid = false;
try { if (!this.get("effective_readonly")) {
var value = openerp.web.parse_value(this.$textarea.val(), this, ''); try {
this.invalid = this.required && value === ''; var value = openerp.web.parse_value(this.$textarea.val(), this, '');
} catch(e) { this.invalid = this.required && value === '';
this.invalid = true; } catch(e) {
this.invalid = true;
}
} }
}, },
focus: function($element) { focus: function($element) {
@ -1786,7 +1793,7 @@ openerp.web.form.FieldText = openerp.web.form.AbstractField.extend({
reset: function() { reset: function() {
this.resized = false; this.resized = false;
} }
}); }));
openerp.web.form.FieldBoolean = openerp.web.form.AbstractField.extend({ openerp.web.form.FieldBoolean = openerp.web.form.AbstractField.extend({
template: 'FieldBoolean', template: 'FieldBoolean',

View File

@ -1002,12 +1002,14 @@
</t> </t>
</t> </t>
<t t-name="FieldText"> <t t-name="FieldText">
<div t-attf-class="oe_form_field_#{widget.type}"> <t t-if="!widget.get('effective_readonly')">
<textarea rows="6" <div t-attf-class="oe_form_field_#{widget.type}">
t-att-name="widget.name" <textarea rows="6"
t-attf-class="field_#{widget.type}" t-att-name="widget.name"
></textarea><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/> t-attf-class="field_#{widget.type}"
</div> ></textarea><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
</div>
</t>
</t> </t>
<t t-name="web.datetimepicker"> <t t-name="web.datetimepicker">
<div class="oe_datepicker_root" t-attf-class="oe_form_field_#{widget.type}"> <div class="oe_datepicker_root" t-attf-class="oe_form_field_#{widget.type}">