Compare text with normalized newlines
The textarea normalize newlines so if the field value contains \r\n or \r, it is wrongly considered as modified. issue11896 review437611003 (grafted from 555c9de0746f064cdb94f61ee899d73d31962e4f) --HG-- branch : 6.0
This commit is contained in:
1 parent
dbc52b9d71
commit
1210fbfd45
1 file changed
+14
-3
+14
-3
@@ -2188,15 +2188,26 @@ function eval_pyson(value){
|
||||
},
|
||||
get modified() {
|
||||
if (this.record && this.field) {
|
||||
return this.field.get_client(this.record) != this.get_value();
|
||||
var value = this._normalize_newline(
|
||||
this.field.get_client(this.record));
|
||||
return value != this.get_value();
|
||||
}
|
||||
return false;
|
||||
},
|
||||
get_value: function() {
|
||||
return this.input.val() || '';
|
||||
return this._normalize_newline(this.input.val() || '');
|
||||
},
|
||||
set_value: function() {
|
||||
this.field.set_client(this.record, this.get_value());
|
||||
// avoid modification of not normalized value
|
||||
var value = this.get_value();
|
||||
var prev_value = this.field.get_client(this.record);
|
||||
if (value == this._normalize_newline(prev_value)) {
|
||||
value = prev_value;
|
||||
}
|
||||
this.field.set_client(this.record, value);
|
||||
},
|
||||
_normalize_newline: function(content) {
|
||||
return content.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
||||
},
|
||||
set_readonly: function(readonly) {
|
||||
Sao.View.Form.Text._super.set_readonly.call(this, readonly);
|
||||
|
||||
Reference in new issue
Block a user