mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-06-09 22:24:35 +02:00
* Some solid progress on themeing / customization via theme.json
This commit is contained in:
parent
767319e234
commit
34bf823f1f
8 changed files with 98 additions and 32 deletions
|
@ -17,9 +17,10 @@ var _ = require('lodash');
|
|||
|
||||
var stripJsonComments = require('strip-json-comments');
|
||||
|
||||
exports.loadMenu = loadMenu;
|
||||
exports.getFormConfigByIDAndMap = getFormConfigByIDAndMap;
|
||||
exports.handleAction = handleAction;
|
||||
exports.loadMenu = loadMenu;
|
||||
exports.getFormConfigByIDAndMap = getFormConfigByIDAndMap;
|
||||
exports.handleAction = handleAction;
|
||||
exports.applyThemeCustomization = applyThemeCustomization;
|
||||
|
||||
|
||||
function loadModJSON(fileName, cb) {
|
||||
|
@ -119,7 +120,12 @@ function loadMenu(options, cb) {
|
|||
'Creating menu module instance');
|
||||
|
||||
try {
|
||||
var moduleInstance = new modData.mod.getModule( { menuConfig : modData.config, args : options.args } );
|
||||
var moduleInstance = new modData.mod.getModule(
|
||||
{
|
||||
menuName : options.name,
|
||||
menuConfig : modData.config,
|
||||
args : options.args,
|
||||
});
|
||||
callback(null, moduleInstance);
|
||||
} catch(e) {
|
||||
callback(e);
|
||||
|
@ -205,3 +211,28 @@ function handleAction(client, formData, conf) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function applyThemeCustomization(options) {
|
||||
//
|
||||
// options.name : menu/prompt name
|
||||
// options.configMci : menu or prompt config (menu.json / prompt.json) specific mci section
|
||||
// options.client : client
|
||||
//
|
||||
assert(_.isString(options.name));
|
||||
assert(_.isObject(options.client));
|
||||
|
||||
console.log(options.configMci)
|
||||
|
||||
if(_.isUndefined(options.configMci)) {
|
||||
options.configMci = {};
|
||||
}
|
||||
|
||||
if(_.has(options.client.currentTheme, [ 'customization', 'byName', options.name ])) {
|
||||
var themeConfig = options.client.currentTheme.customization.byName[options.name];
|
||||
Object.keys(themeConfig).forEach(function mciEntry(mci) {
|
||||
_.defaults(options.configMci[mci], themeConfig[mci]);
|
||||
});
|
||||
}
|
||||
|
||||
// :TODO: apply generic stuff, e.g. "VM" (vs "VM1")
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue