From d2aaaa7c4b64b7072cefbf29dd6fa298c2b4e9cc Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Fri, 2 May 2014 11:17:28 +0300 Subject: [PATCH] clientDefs model and collection --- frontend/client/src/collection-factory.js | 22 ++++++++++++---------- frontend/client/src/model-factory.js | 20 +++++++++++--------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/frontend/client/src/collection-factory.js b/frontend/client/src/collection-factory.js index e5628f60ff..25e551abc8 100644 --- a/frontend/client/src/collection-factory.js +++ b/frontend/client/src/collection-factory.js @@ -37,17 +37,19 @@ _.extend(Espo.CollectionFactory.prototype, { var asc = this.modelFactory.metadata.get('entityDefs.' + name + '.collection.asc'); var sortBy = this.modelFactory.metadata.get('entityDefs.' + name + '.collection.sortBy'); + + var className = this.modelFactory.metadata.get('clientDefs.' + name + '.collection') || 'Collection'; - var collectionClass = Espo.Collection; - - var collection = new collectionClass(null, { - name: name, - asc: asc, - sortBy: sortBy - }); - collection.model = seed; - collection._user = this.modelFactory.user; - callback.call(context, collection); + Espo.loader.load(className, function (collectionClass) { + var collection = new collectionClass(null, { + name: name, + asc: asc, + sortBy: sortBy + }); + collection.model = seed; + collection._user = this.modelFactory.user; + callback.call(context, collection); + }.bind(this)); }.bind(this)); } }); diff --git a/frontend/client/src/model-factory.js b/frontend/client/src/model-factory.js index 351e9cc0a0..c1669266e1 100644 --- a/frontend/client/src/model-factory.js +++ b/frontend/client/src/model-factory.js @@ -53,16 +53,18 @@ callback(this.seeds[name]); return; } + + var className = this.metadata.get('clientDefs.' + name + '.model') || 'Model'; - var modelClass = Espo.Model; - - this.seeds[name] = modelClass.extend({ - name: name, - defs: this.metadata.get('entityDefs.' + name, {}), - dateTime: this.dateTime, - _user: this.user - }); - callback(this.seeds[name]); + Espo.loader.load(className, function (modelClass) { + this.seeds[name] = modelClass.extend({ + name: name, + defs: this.metadata.get('entityDefs.' + name, {}), + dateTime: this.dateTime, + _user: this.user + }); + callback(this.seeds[name]); + }.bind(this)); }, });