mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
Change module name
This commit is contained in:
21
web_widget_fieldtext_options/__init__.py
Normal file
21
web_widget_fieldtext_options/__init__.py
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# -*- 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/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
59
web_widget_fieldtext_options/__openerp__.py
Normal file
59
web_widget_fieldtext_options/__openerp__.py
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
# -*- 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,
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
div.oe_form_field.oe_form_field_text {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.length_limit {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
68
web_widget_fieldtext_options/static/src/js/text_limited.js
Normal file
68
web_widget_fieldtext_options/static/src/js/text_limited.js
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
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);
|
||||||
|
},
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user