summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorsvs-odoo <svs@odoo.com>2018-09-21 14:13:58 +0200
committerGéry Debongnie <ged@odoo.com>2018-09-25 17:23:52 +0200
commitfa4c650b01dc184041c61d9d52299b0b740a83bd (patch)
tree75b07c343a27590bc3a7e5b26bfc9929490882bf /addons/web/static/src
parent17ef915ff264589710374dd4b966cb0cbfd04730 (diff)
[IMP] web: limit number of open columns in kanban view
With this commit, we limit the kanban view to 10 open groups at the start. This is useful to prevent the web client to make too many requests at once. This limit is set in the constant 'OPEN_GROUP_LIMIT'. Note: - columns already set as folded by default aren't take into account. - the user can still open any folded column, as usual. Task #1878113 (1/2)
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/basic/basic_model.js7
1 files changed, 6 insertions, 1 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js
index 9dd7c4d1141..ac7187c3874 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -134,6 +134,9 @@ var x2ManyCommands = {
};
var BasicModel = AbstractModel.extend({
+ // constants
+ OPEN_GROUP_LIMIT: 10, // after this limit, groups are automatically folded
+
// list of models for which the DataManager's cache should be cleared on
// create, update and delete operations
noCacheModels: [
@@ -3991,6 +3994,7 @@ var BasicModel = AbstractModel.extend({
list.data = [];
list.count = 0;
var defs = [];
+ var openGroupCount = 0;
_.each(groups, function (group) {
var aggregateValues = {};
@@ -4046,7 +4050,7 @@ var BasicModel = AbstractModel.extend({
oldGroup.limit = oldGroup.limit + oldGroup.loadMoreOffset;
_.extend(oldGroup, updatedProps);
newGroup = oldGroup;
- } else if (!newGroup.openGroupByDefault) {
+ } else if (!newGroup.openGroupByDefault || openGroupCount >= self.OPEN_GROUP_LIMIT) {
newGroup.isOpen = false;
} else {
newGroup.isOpen = '__fold' in group ? !group.__fold : true;
@@ -4054,6 +4058,7 @@ var BasicModel = AbstractModel.extend({
list.data.push(newGroup.id);
list.count += newGroup.count;
if (newGroup.isOpen && newGroup.count > 0) {
+ openGroupCount++;
defs.push(self._load(newGroup, options));
}
});