46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
|
|
module.exports = (function () {
|
|
|
|
return function AutoTMenuPlugin() {
|
|
|
|
this.configPlugin = function (ctx) {
|
|
ctx.key='autoTMenu';
|
|
ctx.description='Auto enables menu items.';
|
|
ctx.dependencies.push('autoTEntityTPlural');
|
|
};
|
|
|
|
this.fillTEntity = function(ctx) {
|
|
if (ctx.tentity.tparent === null) {
|
|
return; // root node
|
|
}
|
|
if (ctx.tentity.tmeta.tmodel.tid === null) {
|
|
ctx.tentity.tmeta.tmenu.titem = false; // auto menu for items
|
|
}
|
|
|
|
if (ctx.tentity.tmeta.tmenu.tenable === null || ctx.tentity.tmeta.tmenu.tenable === undefined) {
|
|
ctx.tentity.tmeta.tmenu.tenable = true;
|
|
}
|
|
if (ctx.tentity.tmeta.tmenu.titem === null || ctx.tentity.tmeta.tmenu.titem === undefined) {
|
|
ctx.tentity.tmeta.tmenu.titem = true;
|
|
}
|
|
if (ctx.tentity.tmeta.tmenu.tname === null || ctx.tentity.tmeta.tmenu.tname === undefined) {
|
|
ctx.tentity.tmeta.tmenu.tname = ctx.tentity.tplural.substring(0,1).toUpperCase()+ctx.tentity.tplural.substring(1);
|
|
}
|
|
if (ctx.tentity.tmeta.tmenu.tkey === null || ctx.tentity.tmeta.tmenu.tkey === undefined) {
|
|
if (ctx.tentity.tmeta.tmenu.titem) {
|
|
ctx.tentity.tmeta.tmenu.tkey = ctx.tentity.tparent.tid;
|
|
} else {
|
|
ctx.tentity.tmeta.tmenu.tkey = ctx.tentity.tid;
|
|
}
|
|
}
|
|
if (ctx.tentity.tmeta.tmenu.ticon === null || ctx.tentity.tmeta.tmenu.ticon === undefined) {
|
|
if (ctx.tentity.tmeta.tmenu.titem) {
|
|
ctx.tentity.tmeta.tmenu.ticon = 'fa fa-table';
|
|
} else {
|
|
ctx.tentity.tmeta.tmenu.ticon = 'fa fa-cubes';
|
|
}
|
|
}
|
|
}
|
|
};
|
|
})();
|