Sylvain LE GAL
10 years ago
7 changed files with 222 additions and 0 deletions
-
1web_listview_custom_element_number/__init__.py
-
72web_listview_custom_element_number/__openerp__.py
-
23web_listview_custom_element_number/i18n/fr.po
-
23web_listview_custom_element_number/i18n/web_listview_custom_element_number.pot
-
22web_listview_custom_element_number/static/src/css/web_listview_custom_element_number.css
-
BINweb_listview_custom_element_number/static/src/img/icon.png
-
81web_listview_custom_element_number/static/src/js/web_listview_custom_element_number.js
@ -0,0 +1 @@ |
|||
# -*- encoding: utf-8 -*- |
@ -0,0 +1,72 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# Web - Custom Element Number in ListView module for Odoo |
|||
# Copyright (C) 2015-Today Akretion (http://www.akretion.com) |
|||
# @author Sylvain LE GAL (https://twitter.com/legalsylvain) |
|||
# |
|||
# 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 - Custom Element Number in ListView', |
|||
'version': '1.0', |
|||
'category': 'web', |
|||
'description': """ |
|||
Allow users to set manually a quantity of items to display in a tree view |
|||
========================================================================= |
|||
|
|||
Functionality: |
|||
-------------- |
|||
* By default, in Odoo, user can display 80 / 200 / 500 / 2000 elements in |
|||
a tree view; |
|||
With that module, user can select a custom number of items to display; |
|||
|
|||
Technical information: |
|||
---------------------- |
|||
* replace a select element by an input with datalist option. That allows |
|||
to set a custom value, or to select an option. (same options as before: |
|||
80 / 200 / 500 / 2000 / unlimited); |
|||
|
|||
* WARNING: 'Datalist' is a HTML5 tag; If your browser is not HTML5 |
|||
compliant, the options will not be displayed (but it is possible for |
|||
user to select manually a value); |
|||
See browser Support: http://www.w3schools.com/tags/tag_datalist.asp |
|||
|
|||
Roadmap: |
|||
-------- |
|||
* When pressing Esc key, it could be user friendly to return to the |
|||
previous state (before editing the quantity). |
|||
|
|||
Copyright, Author and Licence: |
|||
------------------------------ |
|||
* Copyright: |
|||
* 2015-Today, Akretion; |
|||
* Author: |
|||
* Sylvain LE GAL (https://twitter.com/legalsylvain); |
|||
* Licence: AGPL-3 (http://www.gnu.org/licenses/)""", |
|||
'author': "Akretion,Odoo Community Association (OCA)", |
|||
'website': 'http://www.grap.coop', |
|||
'license': 'AGPL-3', |
|||
'depends': [ |
|||
'web', |
|||
], |
|||
'js': [ |
|||
'static/src/js/web_listview_custom_element_number.js', |
|||
], |
|||
'css': [ |
|||
'static/src/css/web_listview_custom_element_number.css', |
|||
], |
|||
} |
@ -0,0 +1,23 @@ |
|||
# Translation of OpenERP Server. |
|||
# This file contains the translation of the following modules: |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: OpenERP Server 7.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-06-07 23:26+0000\n" |
|||
"PO-Revision-Date: 2015-06-07 23:26+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: web_listview_custom_element_number |
|||
#. openerp-web |
|||
#: code:addons/web_listview_custom_element_number/static/src/js/web_listview_custom_element_number.js:56 |
|||
#, python-format |
|||
msgid "0 (Unlimited)" |
|||
msgstr "0 (Illimité)" |
|||
|
@ -0,0 +1,23 @@ |
|||
# Translation of OpenERP Server. |
|||
# This file contains the translation of the following modules: |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: OpenERP Server 7.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-06-07 23:25+0000\n" |
|||
"PO-Revision-Date: 2015-06-07 23:25+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: \n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Plural-Forms: \n" |
|||
|
|||
#. module: web_listview_custom_element_number |
|||
#. openerp-web |
|||
#: code:addons/web_listview_custom_element_number/static/src/js/web_listview_custom_element_number.js:56 |
|||
#, python-format |
|||
msgid "0 (Unlimited)" |
|||
msgstr "" |
|||
|
@ -0,0 +1,22 @@ |
|||
/****************************************************************************** |
|||
Web - Custom Element Number in ListView module for Odoo |
|||
Copyright (C) 2015-Today Akretion (http://www.akretion.com) |
|||
@author Sylvain LE GAL (https://twitter.com/legalsylvain) |
|||
|
|||
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/>. |
|||
******************************************************************************/ |
|||
|
|||
.custom_element_number { |
|||
width:50px; |
|||
} |
After Width: 128 | Height: 128 | Size: 3.3 KiB |
@ -0,0 +1,81 @@ |
|||
/****************************************************************************** |
|||
Web - Custom Element Number in ListView module for Odoo |
|||
Copyright (C) 2015-Today Akretion (http://www.akretion.com)
|
|||
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
|
|||
|
|||
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/>.
|
|||
******************************************************************************/ |
|||
|
|||
openerp.web_listview_custom_element_number = function (instance) { |
|||
module = instance.web; |
|||
_t = module._t; |
|||
|
|||
/*************************************************************************** |
|||
Extend the widget 'instance.web.ListView' to replace the select tag by an |
|||
input with datalist option. |
|||
***************************************************************************/ |
|||
module.ListView.include({ |
|||
|
|||
/** |
|||
* Overload 'load_list' function: |
|||
*/ |
|||
load_list: function(data) { |
|||
var self = this; |
|||
this._super.apply(this, arguments); |
|||
|
|||
if (this.$pager){ |
|||
// unbind previous function that added a select tag
|
|||
this.$pager.find('.oe_list_pager_state').unbind("click"); |
|||
|
|||
// bind a new function on click, that add a input type select
|
|||
this.$pager.find('.oe_list_pager_state').click(function (e) { |
|||
e.stopPropagation(); |
|||
var $this = $(this); |
|||
var $select = $('<input list="page_value" class="custom_element_number" type="text" placeholder="' + (self._limit || '0') + '">') |
|||
.appendTo($this.empty()) |
|||
.click(function (e) {e.stopPropagation();}) |
|||
.append( |
|||
'<datalist id="page_value">' + |
|||
'<option value="80">' + |
|||
'<option value="200">' + |
|||
'<option value="500">' + |
|||
'<option value="2000">' + |
|||
'<option value="0" label="'+_t("0 (Unlimited)") + '">' + |
|||
'</datalist>') |
|||
.change(function () { |
|||
var val = parseInt($select.val(), 10); |
|||
if (!isNaN(val)){ |
|||
if (val == 0){ |
|||
self._limit = null; |
|||
} |
|||
else{ |
|||
self._limit = val; |
|||
} |
|||
self.page = 0; |
|||
self.reload_content(); |
|||
} |
|||
}).blur(function() { |
|||
$(this).trigger('change'); |
|||
}) |
|||
.keypress(function(e) { |
|||
if(e.which == 13) { |
|||
$(this).trigger('change'); |
|||
} |
|||
}) |
|||
.focus() |
|||
}); |
|||
} |
|||
}, |
|||
}); |
|||
}; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue