From ee54cf2ebb44e72a0a768dd1d663a89c66d299aa Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 5 Aug 2021 15:56:52 +0300 Subject: [PATCH] collection maxMaxSize --- client/src/app.js | 2 +- client/src/collection-factory.js | 8 +++++++- client/src/collection.js | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/client/src/app.js b/client/src/app.js index 29be706573..b137b4574a 100644 --- a/client/src/app.js +++ b/client/src/app.js @@ -249,7 +249,7 @@ define( this.themeManager = new ThemeManager(this.settings, this.preferences, this.metadata); this.modelFactory = new ModelFactory(this.loader, this.metadata, this.user); - this.collectionFactory = new CollectionFactory(this.loader, this.modelFactory); + this.collectionFactory = new CollectionFactory(this.loader, this.modelFactory, this.settings); if (this.settings.get('useWebSocket')) { this.webSocketManager = new WebSocketManager(this.settings); diff --git a/client/src/collection-factory.js b/client/src/collection-factory.js index ba01038f09..35144aa5a4 100644 --- a/client/src/collection-factory.js +++ b/client/src/collection-factory.js @@ -28,9 +28,10 @@ define('collection-factory', [], function () { - var CollectionFactory = function (loader, modelFactory) { + var CollectionFactory = function (loader, modelFactory, config) { this.loader = loader; this.modelFactory = modelFactory; + this.config = config; }; _.extend(CollectionFactory.prototype, { @@ -39,6 +40,8 @@ modelFactory: null, + recordListMaxSizeLimit: 200, + create: function (name, callback, context) { return new Promise(resolve => { context = context || this; @@ -64,6 +67,9 @@ collection._user = this.modelFactory.user; collection.entityType = name; + collection.maxMaxSize = this.config.get('recordListMaxSizeLimit') || + this.recordListMaxSizeLimit; + if (callback) { callback.call(context, collection); } diff --git a/client/src/collection.js b/client/src/collection.js index ff0cb0907e..aaf1d25bc0 100644 --- a/client/src/collection.js +++ b/client/src/collection.js @@ -48,6 +48,8 @@ define('collection', [], function () { lengthCorrection: 0, + maxMaxSize: 0, + _user: null, initialize: function (models, options) { @@ -167,6 +169,10 @@ define('collection', [], function () { options.data.maxSize = options.more ? this.maxSize : ( (length > this.maxSize) ? length : this.maxSize ); + + if (this.maxMaxSize && options.data.maxSize > this.maxMaxSize) { + options.data.maxSize = this.maxMaxSize; + } } else { options.data.maxSize = options.maxSize;