Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs
This commit is contained in:
commit
ed3eaea0d5
|
@ -153,7 +153,7 @@ function MenuModule(options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!_.isObject(self.menuConfig.form) && !_.isString(self.menuConfig.prompt)) {
|
if(_.has(self.menuConfig, 'runtime.autoNext') && true === self.menuConfig.runtime.autoNext) {
|
||||||
/*
|
/*
|
||||||
If 'next' is supplied, we'll use it. Otherwise, utlize fallback which
|
If 'next' is supplied, we'll use it. Otherwise, utlize fallback which
|
||||||
may be explicit (supplied) or non-explicit (previous menu)
|
may be explicit (supplied) or non-explicit (previous menu)
|
||||||
|
|
|
@ -22,8 +22,6 @@ exports.loadMenu = loadMenu;
|
||||||
exports.getFormConfigByIDAndMap = getFormConfigByIDAndMap;
|
exports.getFormConfigByIDAndMap = getFormConfigByIDAndMap;
|
||||||
exports.handleAction = handleAction;
|
exports.handleAction = handleAction;
|
||||||
exports.handleNext = handleNext;
|
exports.handleNext = handleNext;
|
||||||
//exports.applyGeneralThemeCustomization = applyGeneralThemeCustomization;
|
|
||||||
//exports.applyMciThemeCustomization = applyMciThemeCustomization;
|
|
||||||
|
|
||||||
function getMenuConfig(client, name, cb) {
|
function getMenuConfig(client, name, cb) {
|
||||||
var menuConfig;
|
var menuConfig;
|
||||||
|
|
|
@ -205,15 +205,21 @@ function getMergedTheme(menuConfig, promptConfig, theme) {
|
||||||
|
|
||||||
[ 'menus', 'prompts' ].forEach(function areaEntry(areaName) {
|
[ 'menus', 'prompts' ].forEach(function areaEntry(areaName) {
|
||||||
_.keys(mergedTheme[areaName]).forEach(function menuEntry(menuName) {
|
_.keys(mergedTheme[areaName]).forEach(function menuEntry(menuName) {
|
||||||
|
var createdFormSection = false;
|
||||||
|
var mergedThemeMenu = mergedTheme[areaName][menuName];
|
||||||
|
|
||||||
if(_.has(theme, [ 'customization', areaName, menuName ])) {
|
if(_.has(theme, [ 'customization', areaName, menuName ])) {
|
||||||
|
|
||||||
|
if('telnetConnected' === menuName || 'mainMenuLastCallers' === menuName) {
|
||||||
|
console.log('break me')
|
||||||
|
}
|
||||||
|
|
||||||
var menuTheme = theme.customization[areaName][menuName];
|
var menuTheme = theme.customization[areaName][menuName];
|
||||||
var mergedThemeMenu = mergedTheme[areaName][menuName];
|
|
||||||
|
|
||||||
// config block is direct assign/overwrite
|
// config block is direct assign/overwrite
|
||||||
// :TODO: should probably be _.merge()
|
// :TODO: should probably be _.merge()
|
||||||
if(menuTheme.config) {
|
if(menuTheme.config) {
|
||||||
mergedThemeMenu.config = _.assign(mergedThemeMenu || {}, menuTheme.config);
|
mergedThemeMenu.config = _.assign(mergedThemeMenu.config || {}, menuTheme.config);
|
||||||
}
|
}
|
||||||
|
|
||||||
if('menus' === areaName) {
|
if('menus' === areaName) {
|
||||||
|
@ -221,12 +227,36 @@ function getMergedTheme(menuConfig, promptConfig, theme) {
|
||||||
getFormKeys(mergedThemeMenu.form).forEach(function formKeyEntry(formKey) {
|
getFormKeys(mergedThemeMenu.form).forEach(function formKeyEntry(formKey) {
|
||||||
applyToForm(mergedThemeMenu.form[formKey], menuTheme, formKey);
|
applyToForm(mergedThemeMenu.form[formKey], menuTheme, formKey);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
if(_.isObject(menuTheme.mci)) {
|
||||||
|
//
|
||||||
|
// Not specified at menu level means we apply anything from the
|
||||||
|
// theme to form.0.mci{}
|
||||||
|
//
|
||||||
|
mergedThemeMenu.form = { 0 : { mci : { } } };
|
||||||
|
mergeMciProperties(mergedThemeMenu.form[0], menuTheme);
|
||||||
|
createdFormSection = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if('prompts' === areaName) {
|
} else if('prompts' === areaName) {
|
||||||
// no 'form' or form keys for prompts -- direct to mci
|
// no 'form' or form keys for prompts -- direct to mci
|
||||||
applyToForm(mergedThemeMenu, menuTheme);
|
applyToForm(mergedThemeMenu, menuTheme);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Finished merging for this menu/prompt
|
||||||
|
//
|
||||||
|
// If the following conditions are true, set runtime.autoNext to true:
|
||||||
|
// * This is a menu
|
||||||
|
// * There is/was no explicit 'form' section
|
||||||
|
// * There is no 'prompt' specified
|
||||||
|
//
|
||||||
|
if('menus' === areaName && !_.isString(mergedThemeMenu.prompt) &&
|
||||||
|
(createdFormSection || !_.isObject(mergedThemeMenu.form)))
|
||||||
|
{
|
||||||
|
mergedThemeMenu.runtime = _.merge(mergedThemeMenu.runtime || {}, { autoNext : true } );
|
||||||
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue