@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
125 lines (123 loc) • 4.95 kB
text/typescript
this.fieldDisplayNames = {<%for (let field of theView) {%>
'<%-field.fieldName%>': '<%-field.displayName%>',<%}%>
};<%_
for (let field of theView) { let fn = field.fieldName;
if (field.enumValues) {%>
this.enums['<%-fn%>'] = [<%for (let ev of field.enumValues) {%>
'<%-ev%>',<%}%>
];<%}}%><%_
let stringFields = [];
for (let field of theView) { let fn = field.fieldName;
if (field.type == "SchemaString" && fn !== '_id') {
stringFields.push(fn);
}
}
if (stringFields.length > 0) {%>
this.stringFields = [<%for (let itm of stringFields) {%>
'<%-itm%>',<%}%>
];<%}%><%_
let refObjects = [];
for (let field of theView) {
if (field.type === "ObjectId"){ refObjects.push([field.fieldName, field.ref]);}
}
if (refObjects.length > 0) {%>
this.referenceFields = [<%for (let itm of refObjects) {%>
'<%-itm[0]%>',<%}%>
];<%}%><%_
let dateObjects = [];
for (let field of theView) {
if (field.type === "SchemaDate") dateObjects.push(field.fieldName);
}
if (dateObjects.length > 0) {%>
this.dateFields = [<%for (let fnm of dateObjects) {%>
'<%-fnm%>',<%}%>
];<%}%><%_
let numberObjects = [];
for (let field of theView) {
if (field.type === "SchemaNumber") numberObjects.push(field.fieldName);
}
if (numberObjects.length > 0) {%>
this.numberFields = [<%for (let fnm of numberObjects) {%>
'<%-fnm%>',<%}%>
];<%}%><%_
let mapFields = [];
for (let field of theView) {
if (field.type === "Map") {
let keyType, keyRefName, keyRefService, keyRefSubField;
if (field.mapKeyInfo && isEditView) {
keyType = field.mapKeyInfo.type;
keyRefName = field.mapKeyInfo.refName;
if (field.mapKeyInfo.type == 'ObjectId') {
keyRefService = field.mapKeyInfo.refService;
keyRefSubField = field.mapKeyInfo.refSubField;
}
}
mapFields.push([field.fieldName, field.elementType, keyType, keyRefName, keyRefService, keyRefSubField]);
}
}
if (mapFields.length > 0) {%>
this.mapFields = [<%for (let f of mapFields) {%>
['<%-f[0]%>', '<%-f[1]%>', '<%-f[2]%>', '<%-f[3]%>', <%-f[4]%>, '<%-f[5]%>'],<%}%>
];<%}%><%_
let multiSelectionFields = [];
for (let field of theView) {
if (field.type === "SchemaArray" && field.elementMultiSelect) multiSelectionFields.push(field.fieldName);
}
if (multiSelectionFields.length > 0) {%>
this.multiSelectionFields = [<%for (let fnm of multiSelectionFields) {%>
'<%-fnm%>', <%}%>
];<%}%><%_
let arrayFields = []; let arrayRefFields = [];
for (let field of theView) {
if (field.type === "SchemaArray" && !field.elementMultiSelect) {
let elementObj = {mraType: field.mraType, urlDisplay: field.urlDisplay};
arrayFields.push([field.fieldName, field.elementType, JSON.stringify(elementObj)]);
if (field.elementType == 'ObjectId') {
arrayRefFields.push([field.fieldName, field.ref]);
}
}
}
if (arrayFields.length > 0) {%>
this.arrayFields = [<%for (let f of arrayFields) {%>
['<%-f[0]%>', '<%-f[1]%>', <%-f[2]%>,],<%}%>
];<%}
if (arrayRefFields.length > 0) {
for (let itm of arrayRefFields) {%>
this.referenceFieldsMap['<%-itm[0]%>'] = '<%-itm[1]%>';
this.referenceFieldsReverseMap['<%-itm[1]%>'] = '<%-itm[0]%>';<%}}%><%_
let viewHiddenFields = [];
for (let field of theView) {
if (field.hidden) viewHiddenFields.push(field.fieldName);
}
if (viewHiddenFields.length > 0) {%>
this.viewHiddenFields = [<%for (let fnm of viewHiddenFields) {%>
'<%-fnm%>',<%}%>
];<%}%><%_
let textareaFields = [];
for (let field of theView) {
if (field.textarea) textareaFields.push(field.fieldName);
}
if (textareaFields.length > 0) {%>
this.textareaFields = [<%for (let fnm of textareaFields) {%>
'<%-fnm%>',<%}%>
];<%}%><%_
let hintFields = [];
for (let field of theView) {
if (field.hint) {
hintFields.push(field.fieldName);
}
}
if (hintFields.length > 0) {%>
this.editHintFields = {<%for (let itm of hintFields) {%>
'<%-itm%>': [],<%}%>
};<%}%><%
let httpurlFields = [];
for (let field of theView) {
if (field.type === "SchemaString" && field.mraType === 'httpurl') {
httpurlFields.push([field.fieldName, field.urlDisplay]);
}
}
if (httpurlFields.length > 0) {%>
this.httpurlFields = [<%for (let itm of httpurlFields) {%>
['<%-itm[0]%>','<%-itm[1]%>'],<%}%>
];<%}%>