cmsmon
Version:
46 lines (36 loc) • 1.13 kB
JavaScript
;
const _ = require('lodash');
require('generator-bind').polyfill();
module.exports = (cms) => {
cms.TypesBuilder = class {
constructor() {
this.Types = {};
for (const type in cms.Types) {
this.Types[type] = cms.Types[type].webType;
}
}
*init() {
for (const type in cms.Types) {
if (this.Types[type].info.alwaysLoad) {
yield* this.getFullList(type);
}
}
}
addElement(type, model) {
this.Types[type].list.push(model);
}
setLoaded(type) {
this.Types[type]._load = cms.Enum.Load.LOADED;
}
*getFullList(type) {
this.setLoaded(type);
this.Types[type].list = yield cms.Types[type].Model.find({});
}
setServerFnData(type, serverFnData) {
this.Types[type].serverFnData = serverFnData;
}
setServerFnDataForWrapper(name, serverFnData) {
this.Types.Wrapper.store[name].serverFnData = serverFnData;
}
}
}