mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
openerp.web_widget_fieldtext_options = function (instance)
|
|
{
|
|
|
|
var QWeb = instance.web.qweb;
|
|
var _t = instance.web._t;
|
|
|
|
|
|
instance.web.form.FieldText.include({
|
|
template: 'FieldText',
|
|
LIMIT_LINES_CONTEXT_KEY: 'maxlines',
|
|
LIMIT_CHARS_CONTEXT_KEY: 'maxlength',
|
|
|
|
events: {
|
|
'keyup': function (e) {
|
|
if (e.which === $.ui.keyCode.ENTER) {
|
|
e.stopPropagation();
|
|
}
|
|
this.limit_value($(e.target));
|
|
},
|
|
'change textarea': 'store_dom_value',
|
|
},
|
|
|
|
limit_value: function($textarea)
|
|
{
|
|
var ctx = this.build_context().eval();
|
|
var maxlines = ctx[this.LIMIT_LINES_CONTEXT_KEY]*1
|
|
var maxlength = ctx[this.LIMIT_CHARS_CONTEXT_KEY]*1
|
|
|
|
var value = $textarea.val();
|
|
var lines = value.split("\n");
|
|
|
|
if (maxlines && lines.length > maxlines){
|
|
$textarea.val(lines.slice(0, maxlines).join("\n"));
|
|
}
|
|
if (maxlength && value.length > maxlength){
|
|
$textarea.val(value.slice(0, maxlength));
|
|
}
|
|
this.$el.find('span.length_limit').html(value.length + '/' + maxlength);
|
|
},
|
|
|
|
});
|
|
|
|
instance.web.form.FieldChar.include({
|
|
template: 'FieldChar',
|
|
LIMIT_CHARS_CONTEXT_KEY: 'maxlength',
|
|
|
|
events: {
|
|
'keyup': function (e) {
|
|
this.limit_value($(e.target));
|
|
},
|
|
'change textarea': 'store_dom_value',
|
|
},
|
|
|
|
limit_value: function($textarea)
|
|
{
|
|
var ctx = this.build_context().eval();
|
|
var maxlength = ctx[this.LIMIT_CHARS_CONTEXT_KEY]*1
|
|
|
|
var value = $textarea.val();
|
|
|
|
if (maxlength && value.length > maxlength){
|
|
$textarea.val(value.slice(0, maxlength));
|
|
}
|
|
this.$el.find('span.length_limit').html(value.length + '/' + maxlength);
|
|
},
|
|
|
|
});
|
|
} |