From 7f80f4a7af7ee481141253f1a5b01921b099e4be Mon Sep 17 00:00:00 2001 From: Bryan Ashby Date: Sat, 2 Dec 2017 19:06:07 -0700 Subject: [PATCH] * Fix 'noHistory' flag and it's usage to be more natural * Add 'popParent' menu flag (works like 'noHistory' used to) --- config/menu.hjson | 14 +++++--------- core/file_base_area_select.js | 2 +- core/file_base_search.js | 2 +- core/menu_stack.js | 9 +++++++-- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/config/menu.hjson b/config/menu.hjson index cac6e647..0f1fa168 100644 --- a/config/menu.hjson +++ b/config/menu.hjson @@ -215,16 +215,14 @@ desc: Applying options: { pause: true - cls: true + cls: true + menuFlags: [ "noHistory" ] } } newUserApplication: { module: nua art: NUA - options: { - menuFlags: [ "noHistory" ] - } next: [ { // Initial SysOp does not send feedback to themselves @@ -333,6 +331,7 @@ options: { pause: true cls: true + menuFlags: [ "noHistory" ] } } @@ -344,9 +343,6 @@ module: nua art: NUA fallback: logoff - options: { - menuFlags: [ "noHistory" ] - } next: newUserFeedbackToSysOpPreamble form: { 0: { @@ -2720,7 +2716,7 @@ art: FBNORES options: { pause: true - menuFlags: [ "noHistory" ] + menuFlags: [ "noHistory", "popParent" ] } } @@ -3011,7 +3007,7 @@ art: FEMPTYQ options: { pause: true - menuFlags: [ "noHistory" ] + menuFlags: [ "noHistory", "popParent" ] } } diff --git a/core/file_base_area_select.js b/core/file_base_area_select.js index 8abb668e..5ec266fd 100644 --- a/core/file_base_area_select.js +++ b/core/file_base_area_select.js @@ -40,7 +40,7 @@ exports.getModule = class FileAreaSelectModule extends MenuModule { extraArgs : { filterCriteria : filterCriteria, }, - menuFlags : [ 'noHistory' ], + menuFlags : [ 'popParent' ], }; return this.gotoMenu(this.menuConfig.config.fileBaseListEntriesMenu || 'fileBaseListEntries', menuOpts, cb); diff --git a/core/file_base_search.js b/core/file_base_search.js index adb618d0..2ff27f8a 100644 --- a/core/file_base_search.js +++ b/core/file_base_search.js @@ -112,7 +112,7 @@ exports.getModule = class FileBaseSearch extends MenuModule { extraArgs : { filterCriteria : filterCriteria, }, - menuFlags : [ 'noHistory' ], + menuFlags : [ 'popParent' ], }; return this.gotoMenu(this.menuConfig.config.fileBaseListEntriesMenu || 'fileBaseListEntries', menuOpts, cb); diff --git a/core/menu_stack.js b/core/menu_stack.js index f4b29460..b4bebea6 100644 --- a/core/menu_stack.js +++ b/core/menu_stack.js @@ -129,15 +129,19 @@ module.exports = class MenuStack { } else { self.client.log.debug( { menuName : name }, 'Goto menu module'); + const menuFlags = (options && Array.isArray(options.menuFlags)) ? options.menuFlags : modInst.menuConfig.options.menuFlags; + if(currentModuleInfo) { // save stack state currentModuleInfo.savedState = currentModuleInfo.instance.getSaveState(); currentModuleInfo.instance.leave(); - const menuFlags = (options && Array.isArray(options.menuFlags)) ? options.menuFlags : modInst.menuConfig.options.menuFlags; + if(currentModuleInfo.menuFlags.includes('noHistory')) { + this.pop(); + } - if(menuFlags.includes('noHistory')) { + if(menuFlags.includes('popParent')) { this.pop().instance.leave(); // leave & remove current } } @@ -146,6 +150,7 @@ module.exports = class MenuStack { name : name, instance : modInst, extraArgs : loadOpts.extraArgs, + menuFlags : menuFlags, }); // restore previous state if requested