diff options
| author | svs-odoo <svs@odoo.com> | 2018-09-21 14:13:58 +0200 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2018-09-25 17:23:52 +0200 |
| commit | fa4c650b01dc184041c61d9d52299b0b740a83bd (patch) | |
| tree | 75b07c343a27590bc3a7e5b26bfc9929490882bf /addons/web/static/src/js/views/basic/basic_model.js | |
| parent | 17ef915ff264589710374dd4b966cb0cbfd04730 (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/js/views/basic/basic_model.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 7 |
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)); } }); |
