@hicoder/angular-cli
Version:
Angular UI componenets and service generator. It works with the mean-rest-express package to generate the end to end web application. The input to this generator is the Mongoose schema defined for the express application. mean-rest-express exposes the Res
114 lines (104 loc) • 2.25 kB
JavaScript
const defaultListWidgets = {
general: {
views: ['list', 'grid', 'table'],
},
select: {
views: ['list', 'grid', 'table'],
},
sub: {
views: ['list', 'grid', 'table'],
},
association: {
views: ['association'],
},
};
const defaultListWidgetTypes = {
general: 'general',
select: 'select',
sub: 'sub',
association: 'association',
};
const defaultDetailWidgetTypes = {
general: 'general',
select: 'select',
sub: 'sub',
association: 'association',
pop: 'pop',
};
function setListViewProperties(viewType, schemaObj) {
let listViewObj = schemaObj.listViewObj;
const properties = [
'clickItemAction',
'cardHasLink',
'cardHasSelect',
'includeSubDetail',
'canUpdate',
'canDelete',
'canArchive',
'canCheck',
'itemMultiSelect',
'majorUi',
];
let options = {};
switch(viewType) {
case 'general':
options = {
itemMultiSelect: true,
majorUi: true,
};
break;
case 'sub':
options = {
itemMultiSelect: true,
canArchive: false,
canCheck: false,
majorUi: true,
};
if (!schemaObj.embeddedViewOnly) {
options.canDelete = false;
}
if (schemaObj.embeddedViewOnly) {
options.canUpdate = false;
}
break;
case 'select':
options = {
clickItemAction: '',
itemMultiSelect: false,
cardHasLink: false,
cardHasSelect: true,
canUpdate: false,
canDelete: false,
canArchive: false,
canCheck: false,
majorUi: false,
};
break;
case 'association':
options = {
clickItemAction: '',
itemMultiSelect: false,
cardHasLink: false,
cardHasSelect: false,
canUpdate: false,
canDelete: false,
canArchive: false,
canCheck: false,
includeSubDetail: false,
majorUi: true,
};
break;
}
for (let p of properties) {
if (typeof options[p] !== 'undefined') {
listViewObj[p] = options[p];
}
}
return listViewObj;
}
module.exports = {
defaultListWidgets,
defaultListWidgetTypes,
setListViewProperties,
defaultDetailWidgetTypes,
}