Nikolina Todorova
9 years ago
4 changed files with 0 additions and 156 deletions
-
21web_text_widget/__init__.py
-
59web_text_widget/__openerp__.py
-
8web_text_widget/static/src/css/text_limited.css
-
68web_text_widget/static/src/js/text_limited.js
@ -1,21 +0,0 @@ |
|||||
# -*- coding: utf-8 -*- |
|
||||
############################################################################## |
|
||||
# |
|
||||
# OpenERP, Open Source Management Solution |
|
||||
# Copyright (C) 2010-2015 OpenERP s.a. (<http://openerp.com>). |
|
||||
# Copyright (C) 2015 initOS GmbH (<http://www.initos.com>). |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# This program is distributed in the hope that it will be useful, |
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
# GNU Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
@ -1,59 +0,0 @@ |
|||||
# -*- coding: utf-8 -*- |
|
||||
############################################################################## |
|
||||
# |
|
||||
# OpenERP, Open Source Management Solution |
|
||||
# Copyright (C) 2010-2015 OpenERP s.a. (<http://openerp.com>). |
|
||||
# Copyright (C) 2015 initOS GmbH (<http://www.initos.com>). |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# This program is distributed in the hope that it will be useful, |
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||
# GNU Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
############################################################################## |
|
||||
{ |
|
||||
'name': 'Web text limited widget', |
|
||||
'version': '7.0.1.0.0', |
|
||||
'author': 'initOS GmbH', |
|
||||
'category': 'web', |
|
||||
'description': """ |
|
||||
|
|
||||
* Add new functionality for TextField. |
|
||||
You can change default values by context varibles 'maxlines' and |
|
||||
'maxlength'. |
|
||||
If data contains more characters or lines, it will be cut. |
|
||||
Example of usage: |
|
||||
<field name="some_text_field" |
|
||||
context="{'maxlines': 8, 'maxlength': 400}" |
|
||||
/> |
|
||||
""", |
|
||||
'website': 'http://www.initos.com', |
|
||||
'license': 'AGPL-3', |
|
||||
'images': [], |
|
||||
'depends': [ |
|
||||
'web', |
|
||||
], |
|
||||
'data': [], |
|
||||
'update_xml': [], |
|
||||
'js': [ |
|
||||
'static/src/js/text_limited.js', |
|
||||
], |
|
||||
'qweb': [ |
|
||||
], |
|
||||
'css': [ |
|
||||
'static/src/css/text_limited.css', |
|
||||
], |
|
||||
'demo': [], |
|
||||
'test': [], |
|
||||
'active': False, |
|
||||
'installable': True, |
|
||||
'auto_install': True, |
|
||||
} |
|
@ -1,8 +0,0 @@ |
|||||
div.oe_form_field.oe_form_field_text { |
|
||||
position: relative; |
|
||||
} |
|
||||
|
|
||||
span.length_limit { |
|
||||
position: absolute; |
|
||||
right: 0; |
|
||||
} |
|
@ -1,68 +0,0 @@ |
|||||
openerp.web_text_widget = 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); |
|
||||
}, |
|
||||
|
|
||||
}); |
|
||||
} |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue