enigma-bbs/mods/menu.json

158 lines
3.1 KiB
JSON

{
/*
Menu Configuration
Some concept/ideas:
"mci" : {
"BN1" : {
...
"draw" : "@script:blah.js/drawButton"
// @method:scriptName[.js]/methodName (foreign .js)
// @art:artName
// @method:/methodName (local to module.js)
"draw" : {
"normal" : ...,
"focus" : ...
}
..note that script/methods should be part of a *theme* - or at least checked first with fallback
}
}
*/
"matrix" : {
"art" : "matrix",
"form" : {
"0" : {
"VM1" : {
"mci" : {
"VM1" : {
"submit" : true,
"focus" : true,
// :TODO: need a good way to localize these ... Standard Orig->Lookup seems good.
"items" : [ "Login", "Apply", "Log Off" ]
}
},
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@menu:login"
},
{
"value" : { "1" : 1 },
"action" : "@menu:apply"
},
{
"value" : { "1" : 2 },
"action" : "@menu:logoff"
}
]
}
}
}
},
"options" : {
"clearScreen" : true
}
},
"login" : {
"art" : "login", // TODO: rename to login_form
"module" : "login",
"form" : {
"0" : {
"BN3BN4ET1ET2TL5" :{
"mci" :{
"ET1" : {
"focus" : true
},
"BN3" : {
"submit" : true,
"text" : "Login"
},
"BN4" : {
"submit" : true,
"text" : "Cancel"
}
},
"submit" : {
"3" : [ // Login
{
"value" : { "3" : null },
"action" : "@method:attemptLogin",
"args" : { "username" : "{1}", "password" : "{2}" } // :TODO: rename to actionArgs ?
}
],
"4" : [ // cancel
{
"value" : { "4" : null },
"action" : "@menu:matrix"
}
]
}
}
}
},
"options" : {
"clearScreen" : true
}
},
"logoff" : {
"art" : "logoff",
"module" : "logoff"
},
"apply" : {
"art" : "apply",
"module" : "apply",
"form" : {
"0" : {
"BN12BN13ET1ET10ET2ET3ET4ET5ET6ET7ET8ET9TL11" : {
"mci" : {
"ET1" : {
"focus" : true
},
"BN12" : {
"submit" : true,
"text" : "Apply"
},
"BN13" : {
"submit" : true,
"text" : "Cancel"
}
},
"submit" : {
"12" : [ // Apply
{
"value" : { "12" : null },
"action" : "@method:submitApplication",
// :TODO: Need a way to supply next menu based on data from @method
// @method:submitApplication|nextMenu1|nextMenu2|nextMenu3 ? method could cb(indexValue)
"args" : {
"username" : "{1}",
"realName" : "{2}",
"age" : "{3}",
"sex" : "{4}",
"location" : "{5}",
"affils" : "{6}",
"email" : "{7}",
"web" : "{8}",
"pw" : "{9}",
"pwConfirm" : "{10}"
}
}
],
"13" : [ // Cancel
{
"value" : { "13" : null },
"action" : "@menu:matrix"
}
]
}
}
}
},
"options" : {
"clearScreen" : true
}
}
}