[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',
start: function() {
this._super.apply(this, arguments);
this.$textarea = this.$element.find('textarea').change(this.on_ui_change);
this.resized = false;
bind_events: function() {
this.$textarea = undefined;
if (!this.get("effective_readonly")) {
this.$textarea = this.$element.find('textarea').change(this.on_ui_change);
this.resized = false;
}
},
set_value: function(value) {
this._super.apply(this, arguments);
var show_value = openerp.web.format_value(value, this, '');
this.$textarea.val(show_value);
if (!this.resized && this.view.options.resize_textareas) {
this.do_resize(this.view.options.resize_textareas);
this.resized = true;
}
this.render_value();
},
update_dom: function() {
this._super.apply(this, arguments);
this.$textarea.prop('readonly', this.readonly);
render_value: function() {
var show_value = openerp.web.format_value(this.value, this, '');
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() {
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() {
this.invalid = false;
try {
var value = openerp.web.parse_value(this.$textarea.val(), this, '');
this.invalid = this.required && value === '';
} catch(e) {
this.invalid = true;
if (!this.get("effective_readonly")) {
try {
var value = openerp.web.parse_value(this.$textarea.val(), this, '');
this.invalid = this.required && value === '';
} catch(e) {
this.invalid = true;
}
}
},
focus: function($element) {
@ -1786,7 +1793,7 @@ openerp.web.form.FieldText = openerp.web.form.AbstractField.extend({
reset: function() {
this.resized = false;
}
});
}));
openerp.web.form.FieldBoolean = openerp.web.form.AbstractField.extend({
template: 'FieldBoolean',

View File

@ -1002,12 +1002,14 @@
</t>
</t>
<t t-name="FieldText">
<div t-attf-class="oe_form_field_#{widget.type}">
<textarea rows="6"
t-att-name="widget.name"
t-attf-class="field_#{widget.type}"
></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-if="!widget.get('effective_readonly')">
<div t-attf-class="oe_form_field_#{widget.type}">
<textarea rows="6"
t-att-name="widget.name"
t-attf-class="field_#{widget.type}"
></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-name="web.datetimepicker">
<div class="oe_datepicker_root" t-attf-class="oe_form_field_#{widget.type}">