-
-
Save ctataryn/58ed333e4d810073e7b766425889b325 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var term = require( 'terminal-kit' ).terminal ; | |
var Menu = { | |
MONGO : {idx: 0, name: 'Mongo Query'}, | |
RABBIT: {idx: 1, name: 'Rabbit Queue'}, | |
GO : {idx: 2, name: 'Initiate Transfer'}, | |
EXIT : {idx: 3, name: 'Exit.'} | |
}; | |
var items = Object.values(Menu).map((item) => item.name); | |
var itemValues = {}; | |
term.saveCursor(); | |
start(); | |
var menu, inputField, selected; | |
function start() { | |
displayMenu(items); | |
} | |
function eraseMenu() { | |
var position = menu.getPosition() ; | |
term.moveTo( position.x , position.y ) ; | |
term.eraseDisplayBelow(); | |
} | |
function eraseInputField() { | |
var position = inputField.getPosition(); | |
term.moveTo(1, position.y - 1); | |
term.eraseLineAfter(); | |
term.eraseDisplayBelow(); | |
} | |
function displayMenu(items) { | |
menu = term.singleColumnMenu( items, ( error, response ) => { | |
//menu.on('submit', (response) => { | |
eraseMenu(); | |
switch (response.selectedIndex) { | |
case Menu.MONGO.idx: { displayInput(' Enter a Mongo Query: ', 'MONGO'); break; } | |
case Menu.EXIT.idx: { menu.abort(); process.exit(); } | |
default: displayInput(' Enter some text: '); | |
} | |
}); | |
} | |
function displayInput(label, itemKey) { | |
term(label); | |
inputField = term.inputField(function( error, input ) { | |
eraseInputField(); | |
if (itemKey) { | |
itemValues[itemKey] = input; | |
const item = Menu[itemKey]; | |
items[item.idx] = `${item.name} [${input}]`; | |
} | |
displayMenu(items); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment