2016-06-27 07:29:17 +00:00
{
2015-09-09 04:08:45 +00:00
/*
2017-02-12 21:03:29 +00:00
./\/\.' ENiGMA½ Menu Configuration -/--/-------- - -- -
2015-09-09 04:08:45 +00:00
2017-02-12 21:03:29 +00:00
_____________________ _____ ____________________ __________\_ /
\__ ____/\_ ____ \ /____/ / _____ __ \ / ______/ // /___jp!
// __|___// | \// |// | \// | | \// \ /___ /_____
/____ _____| __________ ___|__| ____| \ / _____ \
---- \______\ -- |______\ ------ /______/ ---- |______\ - |______\ /__/ // ___/
/__ _\
<*> ENiGMA½ // HTTPS://GITHUB.COM/NUSKOOLER/ENIGMA-BBS <*> /__/
2015-09-11 03:01:04 +00:00
2017-02-12 21:03:29 +00:00
-------------------------------------------------------------------------------
This configuration is in HJSON (http://hjson.org/) format. Strict to-spec
JSON is also perfectly valid. Use 'hjson' from npm to convert to/from JSON.
2015-09-11 03:01:04 +00:00
See http://hjson.org/ for more information and syntax.
2017-02-12 21:03:29 +00:00
If you haven't yet, copy the conents of this file to something like
sick_board.hjson. Point to it via config.hjson using the
'general.menuFile' key:
general: { menuFile: "sick_board.hjson" }
2015-03-26 05:23:14 +00:00
*/
2015-09-12 23:17:00 +00:00
menus: {
2015-10-22 16:36:08 +00:00
//
// Send telnet connections to matrix where users can login, apply, etc.
//
telnetConnected: {
art: CONNECT
next: matrix
options: { nextTimeout: 1500 }
}
//
// SSH connections are pre-authenticated via the SSH server itself.
// Jump directly to the login sequence
//
sshConnected: {
art: CONNECT
next: fullLoginSequenceLoginArt
options: { nextTimeout: 1500 }
2015-09-12 23:17:00 +00:00
}
2015-10-22 18:22:03 +00:00
//
// Another SSH specialization: If the user logs in with a new user
2016-06-27 07:29:17 +00:00
// name (e.g. "new", "apply", ...) they will be directed to the
2015-10-22 18:22:03 +00:00
// application process.
//
sshConnectedNewUser: {
art: CONNECT
2017-02-13 02:42:18 +00:00
next: newUserApplicationPreSsh
2015-10-22 18:22:03 +00:00
options: { nextTimeout: 1500 }
}
2015-10-28 02:21:58 +00:00
// Ye ol' standard matrix
2015-09-12 23:17:00 +00:00
matrix: {
art: matrix
form: {
2015-10-28 02:21:58 +00:00
0: {
2015-09-12 23:17:00 +00:00
VM: {
mci: {
VM1: {
submit: true
focus: true
2017-02-28 04:17:01 +00:00
argName: navSelect
2018-01-28 19:59:20 +00:00
//
// To enable forgot password, you will need to have the web server
// enabled and mail/SMTP configured. Once that is in place, swap out
// the commented lines below as well as in the submit block
//
items: [
{
text: login
data: login
}
{
text: apply
data: apply
}
{
text: forgot pass
data: forgot
}
{
text: log off
data: logoff
}
]
2015-05-16 05:02:58 +00:00
}
2015-09-12 23:17:00 +00:00
}
submit: {
*: [
2015-05-16 05:02:58 +00:00
{
2018-01-28 19:59:20 +00:00
value: { navSelect: "login" }
2015-10-28 02:21:58 +00:00
action: @menu:login
}
2015-05-16 05:02:58 +00:00
{
2018-01-28 19:59:20 +00:00
value: { navSelect: "apply" }
2017-02-13 02:42:18 +00:00
action: @menu:newUserApplicationPre
2015-10-28 02:21:58 +00:00
}
2015-05-16 05:02:58 +00:00
{
2018-01-28 19:59:20 +00:00
value: { navSelect: "forgot" }
2017-02-28 04:17:01 +00:00
action: @menu:forgotPassword
}
{
2018-01-28 19:59:20 +00:00
value: { navSelect: "logoff" }
2015-09-12 23:17:00 +00:00
action: @menu:logoff
2015-05-16 05:02:58 +00:00
}
]
2015-04-02 04:13:29 +00:00
}
2015-05-16 05:02:58 +00:00
}
}
}
2015-09-12 23:17:00 +00:00
}
2015-10-28 02:21:58 +00:00
login: {
2015-09-27 21:35:24 +00:00
art: USERLOG
2016-06-29 05:53:30 +00:00
next: fullLoginSequenceLoginArt
2015-10-16 05:41:24 +00:00
config: {
2015-12-11 04:46:08 +00:00
tooNodeMenu: loginAttemptTooNode
2015-10-16 05:41:24 +00:00
}
2015-09-27 21:35:24 +00:00
form: {
0: {
mci: {
ET1: {
maxLength: @config:users.usernameMax
argName: username
focus: true
2015-09-08 03:18:09 +00:00
}
2015-09-27 21:35:24 +00:00
ET2: {
password: true
maxLength: @config:users.passwordMax
argName: password
submit: true
}
}
submit: {
*: [
2015-09-08 03:18:09 +00:00
{
2015-09-27 21:35:24 +00:00
value: { password: null }
action: @systemMethod:login
2015-09-08 03:18:09 +00:00
}
]
2015-09-27 21:35:24 +00:00
}
actionKeys: [
2015-09-08 03:18:09 +00:00
{
2015-09-27 21:35:24 +00:00
keys: [ "escape" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-08 03:18:09 +00:00
}
]
}
}
2015-09-27 21:35:24 +00:00
}
2015-12-11 04:46:08 +00:00
loginAttemptTooNode: {
art: TOONODE
options: {
cls: true
nextTimeout: 2000
}
}
2017-02-28 04:17:01 +00:00
forgotPassword: {
desc: Forgot password
prompt: forgotPasswordPrompt
submit: [
{
value: { username: null }
action: @systemMethod:sendForgotPasswordEmail
extraArgs: { next: "forgotPasswordSubmitted" }
}
]
}
forgotPasswordSubmitted: {
desc: Forgot password
art: FORGOTPWSENT
options: {
cls: true
pause: true
}
next: @systemMethod:logoff
}
2015-12-23 23:42:38 +00:00
// :TODO: Prompt Yes/No for logoff confirm
fullLogoffSequence: {
desc: Logging Off
prompt: logoffConfirmation
submit: [
{
value: { promptValue: 0 }
action: @menu:fullLogoffSequencePreAd
}
{
value: { promptValue: 1 }
action: @systemMethod:prevMenu
}
]
}
fullLogoffSequencePreAd: {
art: PRELOGAD
desc: Logging Off
next: fullLogoffSequenceRandomBoardAd
options: {
cls: true
nextTimeout: 1500
}
}
fullLogoffSequenceRandomBoardAd: {
art: OTHRBBS
desc: Logging Off
next: logoff
options: {
baudRate: 57600
pause: true
cls: true
}
}
2016-06-27 07:29:17 +00:00
logoff: {
2015-10-28 02:21:58 +00:00
art: LOGOFF
2015-12-23 23:42:38 +00:00
desc: Logging Off
2015-10-28 02:21:58 +00:00
next: @systemMethod:logoff
}
2017-02-12 21:03:29 +00:00
// A quick preamble - defaults to warning about broken terminals
newUserApplicationPre: {
art: NEWUSER1
next: newUserApplication
desc: Applying
options: {
pause: true
2017-12-03 02:06:07 +00:00
cls: true
menuFlags: [ "noHistory" ]
2017-02-12 21:03:29 +00:00
}
}
2015-09-21 02:23:55 +00:00
newUserApplication: {
2017-12-01 00:15:18 +00:00
module: nua
2015-09-21 02:23:55 +00:00
art: NUA
2015-11-21 00:49:37 +00:00
next: [
{
// Initial SysOp does not send feedback to themselves
acs: ID1
next: fullLoginSequenceLoginArt
}
{
// ...everyone else does
next: newUserFeedbackToSysOpPreamble
}
]
2015-09-21 02:23:55 +00:00
form: {
0: {
mci: {
ET1: {
focus: true
argName: username
maxLength: @config:users.usernameMax
2015-12-11 04:46:08 +00:00
validate: @systemMethod:validateUserNameAvail
2015-09-21 02:23:55 +00:00
}
ET2: {
argName: realName
2015-12-24 18:56:25 +00:00
maxLength: @config:users.realNameMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-21 02:23:55 +00:00
}
MET3: {
argName: birthdate
maskPattern: "####/##/##"
2015-12-11 04:46:08 +00:00
validate: @systemMethod:validateBirthdate
2015-09-21 02:23:55 +00:00
}
2015-09-23 03:31:56 +00:00
ME4: {
2015-09-21 02:23:55 +00:00
argName: sex
2015-09-23 03:31:56 +00:00
maskPattern: A
2015-09-23 05:13:06 +00:00
textStyle: upper
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-21 02:23:55 +00:00
}
ET5: {
argName: location
2015-12-24 18:56:25 +00:00
maxLength: @config:users.locationMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-21 02:23:55 +00:00
}
ET6: {
argName: affils
2015-12-24 18:56:25 +00:00
maxLength: @config:users.affilsMax
2015-09-21 02:23:55 +00:00
}
ET7: {
argName: email
2015-12-24 18:56:25 +00:00
maxLength: @config:users.emailMax
2015-12-11 04:46:08 +00:00
validate: @systemMethod:validateEmailAvail
2015-09-21 02:23:55 +00:00
}
ET8: {
argName: web
2015-12-24 18:56:25 +00:00
maxLength: @config:users.webMax
2015-09-21 02:23:55 +00:00
}
ET9: {
argName: password
password: true
maxLength: @config:users.passwordMax
2015-12-11 04:46:08 +00:00
validate: @systemMethod:validatePasswordSpec
2015-09-21 02:23:55 +00:00
}
ET10: {
argName: passwordConfirm
password: true
maxLength: @config:users.passwordMax
2015-12-11 04:46:08 +00:00
validate: @method:validatePassConfirmMatch
2015-09-21 02:23:55 +00:00
}
2015-09-23 03:31:56 +00:00
TM12: {
argName: submission
2015-09-28 04:05:40 +00:00
items: [ "apply", "cancel" ]
2015-09-21 02:23:55 +00:00
submit: true
}
}
2015-09-23 03:31:56 +00:00
submit: {
*: [
{
value: { "submission" : 0 }
2015-12-12 22:57:56 +00:00
action: @method:submitApplication
2015-09-23 03:31:56 +00:00
extraArgs: {
inactive: userNeedsActivated
error: newUserCreateError
}
}
2015-09-23 05:13:06 +00:00
{
value: { "submission" : 1 }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-23 05:13:06 +00:00
}
2015-09-23 03:31:56 +00:00
]
}
2015-09-23 05:13:06 +00:00
actionKeys: [
{
keys: [ "escape" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-22 18:22:03 +00:00
}
]
2016-06-27 07:29:17 +00:00
}
2015-10-22 18:22:03 +00:00
}
}
2017-02-12 21:03:29 +00:00
// A quick preamble - defaults to warning about broken terminals (SSH version)
newUserApplicationPreSsh: {
art: NEWUSER1
next: newUserApplicationSsh
desc: Applying
options: {
pause: true
cls: true
2017-12-03 02:06:07 +00:00
menuFlags: [ "noHistory" ]
2017-02-12 21:03:29 +00:00
}
}
2015-12-23 23:42:38 +00:00
//
2015-10-22 18:22:03 +00:00
// SSH specialization of NUA
2015-12-23 23:42:38 +00:00
// Canceling this form logs off vs falling back to matrix
//
2015-10-22 18:22:03 +00:00
newUserApplicationSsh: {
2017-12-01 00:15:18 +00:00
module: nua
2015-10-22 18:22:03 +00:00
art: NUA
fallback: logoff
next: newUserFeedbackToSysOpPreamble
form: {
0: {
mci: {
ET1: {
focus: true
argName: username
maxLength: @config:users.usernameMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateUserNameAvail
2015-10-22 18:22:03 +00:00
}
ET2: {
argName: realName
2015-12-24 18:56:25 +00:00
maxLength: @config:users.realNameMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-10-22 18:22:03 +00:00
}
MET3: {
argName: birthdate
maskPattern: "####/##/##"
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateBirthdate
2015-10-22 18:22:03 +00:00
}
ME4: {
argName: sex
maskPattern: A
textStyle: upper
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-10-22 18:22:03 +00:00
}
ET5: {
argName: location
2015-12-24 18:56:25 +00:00
maxLength: @config:users.locationMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-10-22 18:22:03 +00:00
}
ET6: {
argName: affils
2015-12-24 18:56:25 +00:00
maxLength: @config:users.affilsMax
2015-10-22 18:22:03 +00:00
}
ET7: {
argName: email
2015-12-24 18:56:25 +00:00
maxLength: @config:users.emailMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateEmailAvail
2015-10-22 18:22:03 +00:00
}
ET8: {
argName: web
2015-12-24 18:56:25 +00:00
maxLength: @config:users.webMax
2015-10-22 18:22:03 +00:00
}
ET9: {
argName: password
password: true
maxLength: @config:users.passwordMax
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validatePasswordSpec
2015-10-22 18:22:03 +00:00
}
ET10: {
argName: passwordConfirm
password: true
maxLength: @config:users.passwordMax
2015-12-12 22:52:56 +00:00
validate: @method:validatePassConfirmMatch
2015-10-22 18:22:03 +00:00
}
TM12: {
argName: submission
items: [ "apply", "cancel" ]
submit: true
}
}
submit: {
*: [
{
value: { "submission" : 0 }
2015-12-12 22:57:56 +00:00
action: @method:submitApplication
2015-10-22 18:22:03 +00:00
extraArgs: {
inactive: userNeedsActivated
error: newUserCreateError
}
}
{
value: { "submission" : 1 }
2017-02-13 02:42:18 +00:00
action: @systemMethod:logoff
2015-10-22 18:22:03 +00:00
}
]
}
actionKeys: [
{
keys: [ "escape" ]
2017-02-13 02:42:18 +00:00
action: @systemMethod:logoff
2015-09-23 05:13:06 +00:00
}
]
2016-06-27 07:29:17 +00:00
}
2015-09-21 02:23:55 +00:00
}
}
2015-09-23 05:13:06 +00:00
2015-09-24 05:41:06 +00:00
newUserFeedbackToSysOpPreamble: {
2015-10-16 05:41:24 +00:00
art: LETTER
2015-09-24 05:41:06 +00:00
options: { pause: true }
next: newUserFeedbackToSysOp
}
2015-09-23 05:13:06 +00:00
newUserFeedbackToSysOp: {
2016-07-25 07:03:07 +00:00
desc: Feedback to SysOp
2017-12-01 00:15:18 +00:00
module: msg_area_post_fse
2015-11-14 19:22:21 +00:00
next: [
2016-06-27 07:29:17 +00:00
{
2015-11-14 19:22:21 +00:00
acs: AS2
next: fullLoginSequenceLoginArt
2016-06-27 07:29:17 +00:00
}
2015-11-14 19:22:21 +00:00
{
next: newUserInactiveDone
}
]
2015-09-23 05:13:06 +00:00
config: {
art: {
header: MSGEHDR
body: MSGBODY
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
help: MSGEHLP
},
editorMode: edit
2016-01-04 02:40:34 +00:00
editorType: email
2016-02-03 04:35:59 +00:00
messageAreaTag: private_mail
2016-01-04 02:40:34 +00:00
toUserId: 1 /* always to +op */
2015-09-24 05:41:06 +00:00
}
form: {
0: {
2015-09-23 05:13:06 +00:00
mci: {
TL1: {
2017-08-19 22:55:25 +00:00
argName: from
2015-09-23 05:13:06 +00:00
}
ET2: {
2015-10-16 05:41:24 +00:00
argName: to
focus: true
2016-08-04 03:46:38 +00:00
text: @sysStat:sysop_username
2015-09-23 05:13:06 +00:00
// :TODO: readOnly: true
}
2015-09-24 05:41:06 +00:00
ET3: {
argName: subject
maxLength: 72
submit: true
text: New user feedback
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateMessageSubject
2015-09-23 05:13:06 +00:00
}
2015-09-24 05:41:06 +00:00
}
submit: {
3: [
2015-09-23 05:13:06 +00:00
{
2015-10-16 05:41:24 +00:00
value: { subject: null }
action: @method:headerSubmit
2015-09-23 05:13:06 +00:00
}
]
}
2015-09-24 05:41:06 +00:00
}
2015-10-16 05:41:24 +00:00
1: {
mci: {
2015-09-23 05:13:06 +00:00
MT1: {
2015-10-16 05:41:24 +00:00
width: 79
argName: message
mode: edit
2015-09-23 05:13:06 +00:00
}
}
submit: {
2015-10-16 05:41:24 +00:00
*: [ { value: "message", action: "@method:editModeEscPressed" } ]
}
actionKeys: [
2015-09-23 05:13:06 +00:00
{
2015-10-16 05:41:24 +00:00
keys: [ "escape" ]
viewId: 1
2015-09-23 05:13:06 +00:00
}
]
},
2015-10-16 05:41:24 +00:00
2: {
TLTL: {
mci: {
TL1: {
width: 5
}
TL2: {
width: 4
2015-09-23 05:13:06 +00:00
}
}
}
2015-09-24 05:41:06 +00:00
}
3: {
HM: {
mci: {
HM1: {
2015-10-16 05:41:24 +00:00
// :TODO: clear
items: [ "save", "help" ]
2015-04-02 04:13:29 +00:00
}
2015-09-24 05:41:06 +00:00
}
submit: {
*: [
2015-09-23 05:13:06 +00:00
{
2015-09-24 05:41:06 +00:00
value: { 1: 0 }
action: @method:editModeMenuSave
}
2015-05-16 05:02:58 +00:00
{
2015-09-24 05:41:06 +00:00
value: { 1: 1 }
action: @method:editModeMenuHelp
2015-05-16 05:02:58 +00:00
}
]
2015-09-24 05:41:06 +00:00
}
actionKeys: [
2015-09-20 07:29:07 +00:00
{
keys: [ "escape" ]
2015-09-23 05:13:06 +00:00
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
2015-09-20 07:29:07 +00:00
}
]
2015-03-30 03:47:48 +00:00
}
2015-04-02 04:13:29 +00:00
}
2015-03-27 04:58:22 +00:00
}
2015-09-23 05:13:06 +00:00
}
2015-10-18 02:03:51 +00:00
2015-11-14 19:22:21 +00:00
newUserInactiveDone: {
desc: Finished with NUA
art: DONE
options: { pause: true }
next: @menu:logoff
}
2015-10-16 05:41:24 +00:00
fullLoginSequenceLoginArt: {
2015-10-18 02:03:51 +00:00
desc: Logging In
2015-10-22 19:01:16 +00:00
art: WELCOME
2015-10-16 05:41:24 +00:00
options: { pause: true }
next: fullLoginSequenceLastCallers
}
2016-01-04 02:40:34 +00:00
2015-10-16 05:41:24 +00:00
fullLoginSequenceLastCallers: {
2015-10-18 02:03:51 +00:00
desc: Last Callers
2017-12-01 00:15:18 +00:00
module: last_callers
2015-10-16 05:41:24 +00:00
art: LASTCALL
2016-07-25 07:03:07 +00:00
options: {
pause: true
font: cp437
}
2016-06-27 07:29:17 +00:00
next: fullLoginSequenceWhosOnline
2015-12-11 04:46:08 +00:00
}
fullLoginSequenceWhosOnline: {
desc: Who's Online
2017-12-01 00:15:18 +00:00
module: whos_online
2015-12-11 04:46:08 +00:00
art: WHOSON
options: { pause: true }
2016-07-01 04:30:46 +00:00
next: fullLoginSequenceOnelinerz
2016-01-04 02:40:34 +00:00
}
2016-07-01 04:30:46 +00:00
fullLoginSequenceOnelinerz: {
desc: Viewing Onelinerz
2017-12-01 00:15:18 +00:00
module: onelinerz
2017-09-24 15:58:57 +00:00
next: [
{
// calls >= 2
acs: NC2
next: fullLoginSequenceNewScanConfirm
}
{
// new users - skip new scan
next: fullLoginSequenceUserStats
}
]
2016-07-01 04:30:46 +00:00
options: {
cls: true
}
config: {
art: {
entries: ONELINER
add: ONEADD
}
}
form: {
0: {
mci: {
VM1: {
focus: false
height: 10
}
TM2: {
argName: addOrExit
items: [ "yeah!", "nah" ]
"hotKeys" : { "Y" : 0, "N" : 1, "Q" : 1 }
submit: true
focus: true
}
}
submit: {
*: [
{
value: { addOrExit: 0 }
action: @method:viewAddScreen
}
{
value: { addOrExit: null }
action: @systemMethod:nextMenu
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:nextMenu
}
]
},
1: {
mci: {
ET1: {
focus: true
maxLength: 70
argName: oneliner
}
TL2: {
width: 60
}
TM3: {
argName: addOrCancel
items: [ "add", "cancel" ]
"hotKeys" : { "A" : 0, "C" : 1, "Q" : 1 }
submit: true
}
}
submit: {
*: [
{
value: { addOrCancel: 0 }
action: @method:addEntry
}
{
value: { addOrCancel: 1 }
action: @method:cancelAdd
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @method:cancelAdd
}
]
}
}
}
2016-01-04 02:40:34 +00:00
fullLoginSequenceNewScanConfirm: {
desc: Logging In
prompt: loginGlobalNewScan
submit: [
{
value: { promptValue: 0 }
action: @menu:fullLoginSequenceNewScan
}
{
value: { promptValue: 1 }
action: @menu:fullLoginSequenceUserStats
}
]
}
fullLoginSequenceNewScan: {
desc: Performing New Scan
2017-12-01 00:15:18 +00:00
module: new_scan
2016-01-04 02:40:34 +00:00
art: NEWSCAN
2015-12-11 04:46:08 +00:00
next: fullLoginSequenceSysStats
2016-01-04 02:40:34 +00:00
config: {
messageListMenu: newScanMessageList
}
2015-10-16 05:41:24 +00:00
}
2016-01-04 02:40:34 +00:00
2015-10-16 05:41:24 +00:00
fullLoginSequenceSysStats: {
2015-10-18 02:03:51 +00:00
desc: System Stats
2015-10-16 05:41:24 +00:00
art: SYSSTAT
options: { pause: true }
next: fullLoginSequenceUserStats
}
fullLoginSequenceUserStats: {
2015-10-18 02:03:51 +00:00
desc: User Stats
2015-09-27 21:35:24 +00:00
art: STATUS
2015-10-16 05:41:24 +00:00
options: { pause: true }
next: mainMenu
2015-10-28 02:21:58 +00:00
}
2016-01-04 02:40:34 +00:00
newScanMessageList: {
2017-08-19 22:55:25 +00:00
desc: New Messages
2017-12-01 00:15:18 +00:00
module: msg_list
2016-01-04 02:40:34 +00:00
art: NEWMSGS
config: {
menuViewPost: messageAreaViewPost
}
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: message
}
2016-09-09 04:04:27 +00:00
TL6: {
// theme me!
}
2016-01-04 02:40:34 +00:00
}
submit: {
*: [
{
value: { message: null }
action: @method:selectMessage
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
2016-08-31 03:32:57 +00:00
{
keys: [ "x", "shift + x" ]
action: @method:fullExit
}
2016-01-04 02:40:34 +00:00
]
}
}
}
2017-09-04 02:45:00 +00:00
newScanFileBaseList: {
2017-12-01 00:15:18 +00:00
module: file_area_list
2017-09-04 02:45:00 +00:00
desc: New Files
config: {
art: {
browse: FNEWBRWSE
details: FDETAIL
detailsGeneral: FDETGEN
detailsNfo: FDETNFO
detailsFileList: FDETLST
help: FBHELP
}
}
form: {
0: {
mci: {
MT1: {
mode: preview
ansiView: true
}
HM2: {
focus: true
submit: true
argName: navSelect
items: [
"prev", "next", "details", "toggle queue", "rate", "help", "quit"
]
focusItemIndex: 1
}
// :TODO: these can be removed once the hack is not required:
TL10: {}
TL11: {}
TL12: {}
TL13: {}
TL14: {}
TL15: {}
TL16: {}
TL17: {}
TL18: {}
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:prevFile
}
{
value: { navSelect: 1 }
action: @method:nextFile
}
{
value: { navSelect: 2 }
action: @method:viewDetails
}
{
value: { navSelect: 3 }
action: @method:toggleQueue
}
{
value: { navSelect: 4 }
action: @menu:fileBaseGetRatingForSelectedEntry
}
{
value: { navSelect: 5 }
action: @method:displayHelp
}
{
value: { navSelect: 6 }
action: @systemMethod:prevMenu
}
]
}
actionKeys: [
{
keys: [ "w", "shift + w" ]
action: @method:showWebDownloadLink
}
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
{
keys: [ "t", "shift + t" ]
action: @method:toggleQueue
}
{
keys: [ "v", "shift + v" ]
action: @method:viewDetails
}
{
keys: [ "r", "shift + r" ]
action: @menu:fileBaseGetRatingForSelectedEntry
}
{
keys: [ "?" ]
action: @method:displayHelp
}
]
}
1: {
mci: {
HM1: {
focus: true
submit: true
argName: navSelect
items: [
"general", "nfo/readme", "file listing"
]
}
// :TODO: these can be removed once the hack is not required:
TL10: {}
TL11: {}
TL12: {}
TL13: {}
TL14: {}
TL15: {}
TL16: {}
TL17: {}
TL18: {}
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @method:detailsQuit
}
]
}
2: {
// details - general
mci: {}
}
3: {
// details - nfo/readme
mci: {
MT1: {
mode: preview
}
}
}
4: {
// details - file listing
mci: {
VM1: {
}
}
}
}
}
2015-10-28 02:21:58 +00:00
///////////////////////////////////////////////////////////////////////
// Main Menu
///////////////////////////////////////////////////////////////////////
2015-09-27 21:35:24 +00:00
mainMenu: {
art: MMENU
desc: Main Menu
prompt: menuCommand
2016-07-25 07:03:07 +00:00
options: {
font: cp437
}
2015-10-18 02:34:39 +00:00
submit: [
2015-08-07 05:08:10 +00:00
{
2015-11-14 19:22:21 +00:00
value: { command: "G" }
2015-12-23 23:42:38 +00:00
action: @menu:fullLogoffSequence
2015-10-18 02:34:39 +00:00
}
{
value: { command: "D" }
action: @menu:doorMenu
}
2017-02-12 21:03:29 +00:00
{
value: { command: "F" }
2017-02-13 02:42:18 +00:00
action: @menu:fileBase
2017-02-12 21:03:29 +00:00
}
2015-10-18 17:48:08 +00:00
{
value: { command: "U" }
action: @menu:mainMenuUserList
}
2015-10-15 05:09:10 +00:00
{
2015-11-14 19:22:21 +00:00
value: { command: "L" }
action: @menu:mainMenuLastCallers
2015-10-15 05:09:10 +00:00
}
2015-11-26 01:03:47 +00:00
{
value: { command: "W" }
action: @menu:mainMenuWhosOnline
}
2015-09-08 03:18:09 +00:00
{
2015-11-14 19:22:21 +00:00
value: { command: "Y" }
action: @menu:mainMenuUserStats
}
2015-08-10 01:32:38 +00:00
{
2015-11-14 19:22:21 +00:00
value: { command: "M" }
action: @menu:messageArea
}
2016-07-25 07:03:07 +00:00
{
value: { command: "E" }
action: @menu:mailMenu
}
2015-10-12 05:26:27 +00:00
{
value: { command: "C" }
action: @menu:mainMenuUserConfig
}
2015-10-18 02:03:51 +00:00
{
value: { command: "S" }
action: @menu:mainMenuSystemStats
}
2016-01-15 05:48:42 +00:00
{
value: { command: "!" }
action: @menu:mainMenuGlobalNewScan
}
{
value: { command: "K" }
action: @menu:mainMenuFeedbackToSysOp
}
2016-07-01 04:30:46 +00:00
{
value: { command: "O" }
action: @menu:mainMenuOnelinerz
}
2016-08-27 04:34:37 +00:00
{
value: { command: "R" }
action: @menu:mainMenuRumorz
}
2016-06-27 07:29:17 +00:00
{
value: { command: "CHAT"}
action: @menu:ercClient
}
2016-07-10 05:08:33 +00:00
{
value: { command: "BBS"}
action: @menu:bbsList
}
2015-08-07 05:08:10 +00:00
{
2015-11-14 19:22:21 +00:00
value: 1
action: @menu:mainMenu
2015-08-07 05:08:10 +00:00
}
]
2015-10-18 02:34:39 +00:00
}
2017-09-24 15:58:57 +00:00
2015-09-27 21:35:24 +00:00
mainMenuLastCallers: {
2015-10-18 17:48:08 +00:00
desc: Last Callers
2017-12-01 00:15:18 +00:00
module: last_callers
2015-09-27 21:35:24 +00:00
art: LASTCALL
options: { pause: true }
}
2017-09-24 15:58:57 +00:00
2015-11-26 01:03:47 +00:00
mainMenuWhosOnline: {
desc: Who's Online
2017-12-01 00:15:18 +00:00
module: whos_online
2015-11-26 01:03:47 +00:00
art: WHOSON
options: { pause: true }
}
2017-09-24 15:58:57 +00:00
2015-09-27 21:35:24 +00:00
mainMenuUserStats: {
2015-10-18 17:48:08 +00:00
desc: User Stats
2015-09-27 21:35:24 +00:00
art: STATUS
2016-06-27 07:29:17 +00:00
options: { pause: true }
2015-10-12 05:26:27 +00:00
}
2017-09-24 15:58:57 +00:00
2015-10-18 02:03:51 +00:00
mainMenuSystemStats: {
2015-10-18 17:48:08 +00:00
desc: System Stats
2015-10-18 02:03:51 +00:00
art: SYSSTAT
options: { pause: true }
}
2017-09-24 15:58:57 +00:00
2015-10-18 17:48:08 +00:00
mainMenuUserList: {
desc: User Listing
2017-12-01 00:15:18 +00:00
module: user_list
2015-10-18 17:48:08 +00:00
art: USERLST
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
}
}
actionKeys: [
{
2015-10-19 03:24:13 +00:00
keys: [ "escape", "q", "shift + q" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-18 17:48:08 +00:00
}
]
}
}
}
2015-12-24 18:56:25 +00:00
2015-10-12 05:26:27 +00:00
mainMenuUserConfig: {
2017-12-01 00:15:18 +00:00
module: user_config
2015-10-12 05:26:27 +00:00
art: CONFSCR
2015-10-13 06:35:37 +00:00
form: {
0: {
mci: {
ET1: {
2015-12-24 18:56:25 +00:00
argName: realName
maxLength: @config:users.realNameMax
validate: @systemMethod:validateNonEmpty
focus: true
2015-10-13 06:35:37 +00:00
}
2015-12-24 18:56:25 +00:00
ME2: {
argName: birthdate
maskPattern: "####/##/##"
2015-10-13 06:35:37 +00:00
}
2015-12-24 18:56:25 +00:00
ME3: {
argName: sex
maskPattern: A
textStyle: upper
validate: @systemMethod:validateNonEmpty
2015-10-13 06:35:37 +00:00
}
ET4: {
2015-12-24 18:56:25 +00:00
argName: location
maxLength: @config:users.locationMax
validate: @systemMethod:validateNonEmpty
}
ET5: {
2015-10-13 06:35:37 +00:00
argName: affils
2015-12-24 18:56:25 +00:00
maxLength: @config:users.affilsMax
2015-10-13 06:35:37 +00:00
}
2015-12-24 18:56:25 +00:00
ET6: {
argName: email
maxLength: @config:users.emailMax
validate: @method:validateEmailAvail
}
ET7: {
argName: web
maxLength: @config:users.webMax
}
ME8: {
maskPattern: "##"
argName: termHeight
validate: @systemMethod:validateNonEmpty
}
SM9: {
argName: theme
}
ET10: {
argName: password
maxLength: @config:users.passwordMax
password: true
validate: @method:validatePassword
2015-10-13 06:35:37 +00:00
}
2015-12-24 18:56:25 +00:00
ET11: {
argName: passwordConfirm
maxLength: @config:users.passwordMax
password: true
validate: @method:validatePassConfirmMatch
}
TM25: {
argName: submission
items: [ "save", "cancel" ]
submit: true
2015-10-13 06:35:37 +00:00
}
}
2015-12-24 18:56:25 +00:00
submit: {
*: [
{
value: { submission: 0 }
action: @method:saveChanges
}
{
value: { submission: 1 }
action: @systemMethod:prevMenu
}
]
}
2015-10-18 02:03:51 +00:00
actionKeys: [
{
keys: [ "escape" ]
2015-12-24 18:56:25 +00:00
action: @systemMethod:prevMenu
2015-10-18 02:03:51 +00:00
}
]
2015-10-13 06:35:37 +00:00
}
}
2015-09-27 21:35:24 +00:00
}
2016-01-15 05:48:42 +00:00
mainMenuGlobalNewScan: {
desc: Performing New Scan
2017-12-01 00:15:18 +00:00
module: new_scan
2016-01-15 05:48:42 +00:00
art: NEWSCAN
config: {
messageListMenu: newScanMessageList
}
}
mainMenuFeedbackToSysOp: {
2016-07-25 07:03:07 +00:00
desc: Feedback to SysOp
2017-12-01 00:15:18 +00:00
module: msg_area_post_fse
2016-01-15 05:48:42 +00:00
config: {
art: {
header: MSGEHDR
body: MSGBODY
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
help: MSGEHLP
},
editorMode: edit
editorType: email
2016-02-03 04:35:59 +00:00
messageAreaTag: private_mail
2016-01-15 05:48:42 +00:00
toUserId: 1 /* always to +op */
}
form: {
0: {
mci: {
TL1: {
argName: from
}
ET2: {
argName: to
focus: true
2016-08-04 03:46:38 +00:00
text: @sysStat:sysop_username
2016-01-15 05:48:42 +00:00
// :TODO: readOnly: true
}
ET3: {
argName: subject
maxLength: 72
submit: true
validate: @systemMethod:validateMessageSubject
}
}
submit: {
3: [
{
value: { subject: null }
action: @method:headerSubmit
}
]
}
2016-07-25 16:47:57 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
2016-01-15 05:48:42 +00:00
}
1: {
mci: {
MT1: {
width: 79
argName: message
mode: edit
}
}
submit: {
*: [ { value: "message", action: "@method:editModeEscPressed" } ]
}
actionKeys: [
{
keys: [ "escape" ]
viewId: 1
}
]
},
2: {
TLTL: {
mci: {
TL1: {
width: 5
}
TL2: {
width: 4
}
}
}
}
3: {
HM: {
mci: {
HM1: {
// :TODO: clear
items: [ "save", "discard", "help" ]
}
}
submit: {
*: [
{
value: { 1: 0 }
action: @method:editModeMenuSave
}
{
value: { 1: 1 }
action: @systemMethod:prevMenu
}
{
value: { 1: 2 }
action: @method:editModeMenuHelp
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
}
]
}
}
}
}
2016-07-01 04:30:46 +00:00
mainMenuOnelinerz: {
desc: Viewing Onelinerz
2017-12-01 00:15:18 +00:00
module: onelinerz
2016-07-01 04:30:46 +00:00
options: {
cls: true
}
config: {
art: {
entries: ONELINER
add: ONEADD
}
}
form: {
0: {
mci: {
VM1: {
focus: false
height: 10
}
TM2: {
argName: addOrExit
items: [ "yeah!", "nah" ]
"hotKeys" : { "Y" : 0, "N" : 1, "Q" : 1 }
submit: true
focus: true
}
}
submit: {
*: [
{
value: { addOrExit: 0 }
action: @method:viewAddScreen
}
{
value: { addOrExit: null }
action: @systemMethod:nextMenu
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:nextMenu
}
]
},
1: {
mci: {
ET1: {
focus: true
maxLength: 70
argName: oneliner
}
TL2: {
width: 60
}
TM3: {
argName: addOrCancel
items: [ "add", "cancel" ]
"hotKeys" : { "A" : 0, "C" : 1, "Q" : 1 }
submit: true
}
}
submit: {
*: [
{
value: { addOrCancel: 0 }
action: @method:addEntry
}
{
value: { addOrCancel: 1 }
action: @method:cancelAdd
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @method:cancelAdd
}
]
}
}
}
2016-08-27 04:34:37 +00:00
mainMenuRumorz: {
desc: Rumorz
2017-12-01 00:15:18 +00:00
module: rumorz
2016-08-27 04:34:37 +00:00
options: {
cls: true
}
config: {
art: {
entries: RUMORS
add: RUMORADD
}
}
form: {
0: {
mci: {
VM1: {
focus: false
height: 10
}
TM2: {
argName: addOrExit
items: [ "yeah!", "nah" ]
"hotKeys" : { "Y" : 0, "N" : 1, "Q" : 1 }
submit: true
focus: true
}
}
submit: {
*: [
{
value: { addOrExit: 0 }
action: @method:viewAddScreen
}
{
value: { addOrExit: null }
action: @systemMethod:nextMenu
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:nextMenu
}
]
},
1: {
mci: {
ET1: {
focus: true
maxLength: 70
argName: rumor
}
TL2: {
width: 60
}
TM3: {
argName: addOrCancel
items: [ "add", "cancel" ]
"hotKeys" : { "A" : 0, "C" : 1, "Q" : 1 }
submit: true
}
}
submit: {
*: [
{
value: { addOrCancel: 0 }
action: @method:addEntry
}
{
value: { addOrCancel: 1 }
action: @method:cancelAdd
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @method:cancelAdd
}
]
}
}
}
2016-06-27 07:29:17 +00:00
ercClient: {
art: erc
2017-12-01 00:15:18 +00:00
module: erc_client
2016-06-27 07:29:17 +00:00
config: {
2016-06-29 04:38:29 +00:00
host: localhost
port: 5001
bbsTag: CHANGEME
}
2016-06-27 07:29:17 +00:00
form: {
0: {
mci: {
MT1: {
width: 79
height: 21
mode: preview
autoScroll: true
}
ET3: {
autoScale: false
width: 77
2016-06-29 04:38:29 +00:00
argName: inputArea
2016-06-27 07:29:17 +00:00
focus: true
submit: true
}
}
submit: {
*: [
{
2016-06-29 04:38:29 +00:00
value: { inputArea: null }
action: @method:inputAreaSubmit
}
2016-06-27 07:29:17 +00:00
]
}
actionKeys: [
{
keys: [ "tab" ]
}
{
keys: [ "up arrow" ]
action: @method:scrollDown
}
{
keys: [ "down arrow" ]
action: @method:scrollUp
}
]
}
}
}
2016-07-10 05:08:33 +00:00
bbsList: {
desc: Viewing BBS List
2017-12-01 00:15:18 +00:00
module: bbs_list
2016-07-10 05:08:33 +00:00
options: {
cls: true
}
config: {
art: {
entries: BBSLIST
add: BBSADD
}
}
form: {
0: {
mci: {
VM1: { maxLength: 32 }
TL2: { maxLength: 32 }
TL3: { maxLength: 32 }
TL4: { maxLength: 32 }
TL5: { maxLength: 32 }
TL6: { maxLength: 32 }
TL7: { maxLength: 32 }
TL8: { maxLength: 32 }
TL9: { maxLength: 32 }
}
actionKeys: [
{
keys: [ "a" ]
action: @method:addBBS
}
{
// :TODO: add delete key
keys: [ "d" ]
action: @method:deleteBBS
}
{
keys: [ "q", "escape" ]
2016-07-25 20:35:58 +00:00
action: @systemMethod:prevMenu
2016-07-10 05:08:33 +00:00
}
]
}
1: {
mci: {
ET1: {
argName: name
maxLength: 32
validate: @systemMethod:validateNonEmpty
}
ET2: {
argName: sysop
maxLength: 32
validate: @systemMethod:validateNonEmpty
}
ET3: {
argName: telnet
maxLength: 32
validate: @systemMethod:validateNonEmpty
}
ET4: {
argName: www
maxLength: 32
}
ET5: {
argName: location
maxLength: 32
}
ET6: {
argName: software
maxLength: 32
}
ET7: {
argName: notes
maxLength: 32
}
TM17: {
argName: submission
items: [ "save", "cancel" ]
submit: true
}
}
2016-07-25 16:47:57 +00:00
2016-07-10 05:08:33 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:cancelSubmit
}
2016-07-25 16:47:57 +00:00
]
2016-07-10 05:08:33 +00:00
submit: {
*: [
{
value: { "submission" : 0 }
action: @method:submitBBS
}
{
value: { "submission" : 1 }
action: @method:cancelSubmit
}
]
}
}
}
}
2015-10-28 02:21:58 +00:00
///////////////////////////////////////////////////////////////////////
// Doors Menu
///////////////////////////////////////////////////////////////////////
2015-10-18 02:34:39 +00:00
doorMenu: {
desc: Doors Menu
art: DOORMNU
prompt: menuCommand
submit: [
{
value: { command: "G" }
action: @menu:logoff
}
{
value: { command: "Q" }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-18 02:34:39 +00:00
}
{
2017-09-24 15:58:57 +00:00
value: { command: "PW" }
2015-10-18 02:34:39 +00:00
action: @menu:doorPimpWars
}
{
2017-09-24 15:58:57 +00:00
value: { command: "TW" }
2015-12-11 04:46:08 +00:00
action: @menu:doorTradeWars2002BBSLink
}
2016-01-04 02:40:34 +00:00
{
value: { command: "DL" }
action: @menu:doorDarkLands
}
2016-06-20 03:09:45 +00:00
{
value: { command: "DP" }
action: @menu:doorParty
}
2016-06-29 04:38:29 +00:00
{
2017-11-02 00:41:20 +00:00
value: { command: "CN" }
action: @menu:combatNet
}
{
2017-09-24 15:58:57 +00:00
value: { command: "AGENT" }
action: @menu:telnetBridgeAgency
2016-06-29 04:38:29 +00:00
}
2015-10-18 02:34:39 +00:00
]
}
2015-12-11 04:46:08 +00:00
2017-09-24 15:58:57 +00:00
//
// Example using the abracadabra module for a retro DOS door
//
2015-10-28 02:21:58 +00:00
doorPimpWars: {
desc: Playing PimpWars
2017-12-01 00:15:18 +00:00
module: abracadabra
2015-10-28 02:21:58 +00:00
config: {
name: PimpWars
dropFileType: DORINFO
2017-09-24 15:58:57 +00:00
cmd: /home/enigma/DOS/scripts/pimpwars.sh
2016-06-27 07:29:17 +00:00
args: [
2015-12-11 04:46:08 +00:00
"{node}",
"{dropFile}",
"{srvPort}",
2015-10-28 02:21:58 +00:00
],
nodeMax: 1
2015-10-28 03:12:55 +00:00
tooManyArt: DOORMANY
2015-12-11 04:46:08 +00:00
io: socket
2015-10-28 02:21:58 +00:00
}
2015-12-11 04:46:08 +00:00
}
2016-01-04 02:40:34 +00:00
2015-12-11 04:46:08 +00:00
//
// TradeWars 2000 example via BBSLink
//
// You will need to register with BBSLink to obtain sysCode, authCode and schemeCode
//
doorTradeWars2002BBSLink: {
desc: Playing TW 2002 (BBSLink)
2017-12-01 00:15:18 +00:00
module: bbs_link
2015-12-11 04:46:08 +00:00
config: {
sysCode: XXXXXXXX
authCode: XXXXXXXX
schemeCode: XXXXXXXX
door: tw
}
}
2016-06-20 03:09:45 +00:00
2017-11-02 00:41:20 +00:00
// DoorParty! support. You'll need to register to obtain credentials
2016-06-20 03:09:45 +00:00
doorParty: {
desc: Using DoorParty!
2017-12-01 00:15:18 +00:00
module: door_party
2016-06-20 03:09:45 +00:00
config: {
username: XXXXXXXX
password: XXXXXXXX
bbsTag: XX
}
}
2016-06-29 04:38:29 +00:00
2017-11-02 00:41:20 +00:00
// CombatNet support. You'll need to register at http://combatnet.us/ to obtain credentials
combatNet: {
desc: Using CombatNet
2017-12-01 00:15:18 +00:00
module: combatnet
2017-11-02 00:41:20 +00:00
config: {
bbsTag: CBNxxx
password: XXXXXXXXX
}
}
2017-09-24 15:58:57 +00:00
telnetBridgeAgency: {
2016-06-29 04:38:29 +00:00
desc: Connected to HappyLand BBS
2017-12-01 00:15:18 +00:00
module: telnet_bridge
2016-06-29 04:38:29 +00:00
config: {
2017-09-24 15:58:57 +00:00
host: agency.bbs.geek.nz
2016-06-29 04:38:29 +00:00
}
}
2015-08-10 01:32:38 +00:00
///////////////////////////////////////////////////////////////////////
2015-10-28 02:21:58 +00:00
// Message Area Menu
2015-08-10 01:32:38 +00:00
///////////////////////////////////////////////////////////////////////
2015-10-15 05:09:10 +00:00
messageArea: {
art: MSGMNU
desc: Message Area
2016-08-04 02:59:10 +00:00
prompt: messageMenuCommand
2015-10-15 05:09:10 +00:00
submit: [
2015-08-12 03:36:08 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "P" }
action: @menu:messageAreaNewPost
}
2016-02-03 04:35:59 +00:00
{
value: { command: "J" }
action: @menu:messageAreaChangeCurrentConference
}
2015-08-18 03:45:11 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "C" }
action: @menu:messageAreaChangeCurrentArea
}
2015-08-27 05:04:04 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "L" }
action: @menu:messageAreaMessageList
}
2015-08-16 19:35:34 +00:00
{
2015-10-15 05:09:10 +00:00
value: { command: "Q" }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-15 05:09:10 +00:00
}
2015-10-16 05:41:24 +00:00
{
value: { command: "G" }
2016-07-25 07:03:07 +00:00
action: @menu:fullLogoffSequence
}
{
value: { command: "<" }
action: @systemMethod:prevConf
}
{
value: { command: ">" }
action: @systemMethod:nextConf
}
{
value: { command: "[" }
action: @systemMethod:prevArea
}
{
value: { command: "]" }
action: @systemMethod:nextArea
2015-10-16 05:41:24 +00:00
}
2018-01-15 00:09:23 +00:00
{
value: { command: "D" }
action: @menu:messageAreaSetNewScanDate
}
2015-09-06 21:58:58 +00:00
{
2015-10-15 05:09:10 +00:00
value: 1
action: @menu:messageArea
2016-06-27 07:29:17 +00:00
}
2015-08-12 03:36:08 +00:00
]
2015-10-15 05:09:10 +00:00
}
2016-02-03 04:35:59 +00:00
messageAreaChangeCurrentConference: {
art: CCHANGE
2017-12-01 00:15:18 +00:00
module: msg_conf_list
2016-02-03 04:35:59 +00:00
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: conf
}
}
submit: {
*: [
{
value: { conf: null }
action: @method:changeConference
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
2018-01-15 00:09:23 +00:00
messageAreaSetNewScanDate: {
module: set_newscan_date
desc: Message Base
art: SETMNSDATE
config: {
target: message
scanDateFormat: YYYYMMDD
}
form: {
0: {
mci: {
ME1: {
focus: true
submit: true
argName: scanDate
maskPattern: "####/##/##"
}
SM2: {
argName: targetSelection
submit: false
justify: right
}
}
submit: {
*: [
{
value: { scanDate: null }
action: @method:scanDateSubmit
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
2015-10-15 05:09:10 +00:00
messageAreaChangeCurrentArea: {
2016-02-03 04:35:59 +00:00
// :TODO: rename this art to ACHANGE
2015-10-15 05:09:10 +00:00
art: CHANGE
2017-12-01 00:15:18 +00:00
module: msg_area_list
2015-10-28 02:21:58 +00:00
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: area
}
}
submit: {
*: [
2015-08-19 05:11:13 +00:00
{
2015-10-28 02:21:58 +00:00
value: { area: null }
action: @method:changeArea
2015-08-19 05:11:13 +00:00
}
]
2015-10-28 02:21:58 +00:00
}
actionKeys: [
2015-10-15 05:09:10 +00:00
{
keys: [ "escape", "q", "shift + q" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-15 05:09:10 +00:00
}
]
2015-08-18 21:27:14 +00:00
}
}
2015-10-28 02:21:58 +00:00
}
2016-02-03 04:35:59 +00:00
2015-10-11 22:05:45 +00:00
messageAreaMessageList: {
2017-12-01 00:15:18 +00:00
module: msg_list
2015-10-11 22:05:45 +00:00
art: MSGLIST
config: {
2015-10-28 02:21:58 +00:00
menuViewPost: messageAreaViewPost
2015-10-11 22:05:45 +00:00
}
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: message
}
}
submit: {
*: [
2015-08-31 03:42:24 +00:00
{
2015-10-11 22:05:45 +00:00
value: { message: null }
action: @method:selectMessage
2015-08-31 03:42:24 +00:00
}
]
2015-08-27 05:04:04 +00:00
}
2015-10-11 22:05:45 +00:00
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-11 22:05:45 +00:00
}
]
2015-08-27 05:04:04 +00:00
}
}
2015-10-11 22:05:45 +00:00
}
2015-09-10 03:55:16 +00:00
messageAreaViewPost: {
2017-12-01 00:15:18 +00:00
module: msg_area_view_fse
2015-09-10 03:55:16 +00:00
config: {
art: {
2015-10-28 02:21:58 +00:00
header: MSGVHDR
body: MSGBODY
footerView: MSGVFTR
help: MSGVHLP
2015-09-01 05:18:46 +00:00
},
2015-09-10 03:55:16 +00:00
editorMode: view
editorType: area
2015-10-10 01:27:43 +00:00
}
2015-10-07 03:21:13 +00:00
form: {
0: {
mci: {
// :TODO: ensure this block isn't even req. for theme to apply...
2015-09-01 05:18:46 +00:00
}
2015-10-07 03:21:13 +00:00
}
1: {
mci: {
MT1: {
width: 79
mode: preview
2015-09-12 23:17:00 +00:00
}
2015-10-07 03:21:13 +00:00
}
submit: {
*: [
2015-09-01 05:18:46 +00:00
{
2015-10-28 02:21:58 +00:00
value: message
action: @method:editModeEscPressed
2015-09-01 05:18:46 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
actionKeys: [
2015-09-12 23:17:00 +00:00
{
2015-10-10 01:27:43 +00:00
keys: [ "escape" ]
viewId: 1
2015-09-12 23:17:00 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
2: {
TLTL: {
mci: {
TL1: { width: 5 }
TL2: { width: 4 }
2015-09-01 05:18:46 +00:00
}
}
2015-10-10 01:27:43 +00:00
}
2015-09-20 04:55:09 +00:00
4: {
mci: {
HM1: {
// :TODO: (#)Jump/(L)Index (msg list)/Last
2015-10-10 01:27:43 +00:00
items: [ "prev", "next", "reply", "quit", "help" ]
2017-02-12 21:03:29 +00:00
focusItemIndex: 1
2015-09-08 03:18:09 +00:00
}
2015-10-10 01:27:43 +00:00
}
submit: {
*: [
2015-09-01 05:18:46 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 0 }
2015-10-05 04:04:56 +00:00
action: @method:prevMessage
2016-03-20 03:07:47 +00:00
}
2015-09-08 03:18:09 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 1 }
action: @method:nextMessage
}
2015-09-13 00:18:46 +00:00
{
2015-09-15 04:40:00 +00:00
value: { 1: 2 }
2015-09-13 00:18:46 +00:00
action: @method:replyMessage
extraArgs: {
menu: messageAreaReplyPost
}
2015-09-20 04:55:09 +00:00
}
2015-09-07 06:12:01 +00:00
{
2015-09-20 04:55:09 +00:00
value: { 1: 3 }
2015-12-11 04:46:08 +00:00
action: @systemMethod:prevMenu
2015-09-20 04:55:09 +00:00
}
{
value: { 1: 4 }
action: @method:viewModeMenuHelp
2015-09-01 05:18:46 +00:00
}
]
2015-10-10 01:27:43 +00:00
}
actionKeys: [
2015-09-08 03:18:09 +00:00
{
2015-09-18 05:17:15 +00:00
keys: [ "p", "shift + p" ]
action: @method:prevMessage
}
2015-09-08 03:18:09 +00:00
{
2015-09-15 04:40:00 +00:00
keys: [ "n", "shift + n" ]
action: @method:nextMessage
2016-06-27 07:29:17 +00:00
}
2015-09-14 03:15:55 +00:00
{
2015-09-18 05:17:15 +00:00
keys: [ "r", "shift + r" ]
2015-09-14 03:15:55 +00:00
action: @method:replyMessage
extraArgs: {
menu: messageAreaReplyPost
}
2015-09-18 05:17:15 +00:00
}
2015-09-20 04:55:09 +00:00
{
keys: [ "escape", "q", "shift + q" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-20 04:55:09 +00:00
}
{
keys: [ "?" ]
action: @method:viewModeMenuHelp
2016-06-27 07:29:17 +00:00
}
2015-09-08 03:18:09 +00:00
{
2015-10-10 01:27:43 +00:00
keys: [ "down arrow", "up arrow", "page up", "page down" ]
action: @method:movementKeyPressed
2015-09-08 03:18:09 +00:00
}
]
2015-09-01 05:18:46 +00:00
}
}
2016-07-25 16:47:57 +00:00
}
2015-09-13 00:18:46 +00:00
messageAreaReplyPost: {
2017-12-01 00:15:18 +00:00
module: msg_area_post_fse
2015-09-13 00:18:46 +00:00
config: {
art: {
header: MSGEHDR
2015-10-28 02:21:58 +00:00
body: MSGBODY
2015-09-13 00:18:46 +00:00
quote: MSGQUOT
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
2015-09-20 04:55:09 +00:00
help: MSGEHLP
2015-09-13 00:18:46 +00:00
}
editorMode: edit
editorType: area
}
form: {
0: {
mci: {
2015-10-28 02:21:58 +00:00
// :TODO: use appropriate system properties for max lengths
2015-09-13 00:18:46 +00:00
TL1: {
argName: from
}
ET2: {
argName: to
focus: true
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-13 00:18:46 +00:00
}
ET3: {
2016-06-27 07:29:17 +00:00
argName: subject
2015-09-13 00:18:46 +00:00
maxLength: 72
submit: true
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-13 00:18:46 +00:00
}
TL4: {
2015-09-20 04:55:09 +00:00
// :TODO: this is for RE: line (NYI)
2015-10-06 21:22:49 +00:00
//width: 27
//textOverflow: ...
2015-09-13 00:18:46 +00:00
}
}
2015-09-13 01:18:08 +00:00
submit: {
2016-07-25 16:47:57 +00:00
3: [
{
value: { subject: null }
action: @method:headerSubmit
}
]
2015-09-13 01:18:08 +00:00
}
2016-07-25 16:47:57 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
2015-09-13 00:18:46 +00:00
}
2015-09-13 01:18:08 +00:00
1: {
mci: {
MT1: {
2015-10-10 02:46:28 +00:00
width: 79
height: 14
argName: message
mode: edit
2015-09-13 01:18:08 +00:00
}
}
submit: {
*: [ { "value": "message", "action": "@method:editModeEscPressed" } ]
}
actionKeys: [
{
keys: [ "escape" ],
viewId: 1
}
]
2015-09-14 03:15:55 +00:00
}
2015-09-15 04:40:00 +00:00
3: {
2017-09-24 15:58:57 +00:00
mci: {
HM1: {
items: [ "save", "discard", "quote", "help" ]
2015-09-15 04:40:00 +00:00
}
2017-09-24 15:58:57 +00:00
}
2015-09-15 04:40:00 +00:00
2017-08-19 22:55:25 +00:00
submit: {
*: [
2015-09-20 04:55:09 +00:00
{
2017-08-19 22:55:25 +00:00
value: { 1: 0 }
2015-09-20 07:29:07 +00:00
action: @method:editModeMenuSave
2015-09-20 04:55:09 +00:00
}
{
2017-08-19 22:55:25 +00:00
value: { 1: 1 }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-20 04:55:09 +00:00
}
{
2017-08-19 22:55:25 +00:00
value: { 1: 2 },
2015-09-20 04:55:09 +00:00
action: @method:editModeMenuQuote
}
{
2017-08-19 22:55:25 +00:00
value: { 1: 3 }
2015-09-20 04:55:09 +00:00
action: @method:editModeMenuHelp
}
2015-09-15 04:40:00 +00:00
]
}
2017-08-19 22:55:25 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:editModeEscPressed
}
{
keys: [ "s", "shift + s" ]
action: @method:editModeMenuSave
}
{
keys: [ "d", "shift + d" ]
action: @systemMethod:prevMenu
}
{
keys: [ "q", "shift + q" ]
action: @method:editModeMenuQuote
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
}
]
2015-09-15 04:40:00 +00:00
}
2015-09-20 04:55:09 +00:00
// Quote builder
2015-09-15 04:40:00 +00:00
5: {
mci: {
MT1: {
width: 79
height: 7
}
VM3: {
width: 79
height: 4
2015-09-16 04:44:31 +00:00
argName: quote
2016-06-27 07:29:17 +00:00
}
2015-09-14 03:15:55 +00:00
}
2015-09-16 04:44:31 +00:00
submit: {
*: [
{
value: { quote: null }
action: @method:appendQuoteEntry
}
]
}
2015-09-17 04:31:09 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:quoteBuilderEscPressed
}
]
2015-09-14 03:15:55 +00:00
}
2015-09-13 00:18:46 +00:00
}
}
2015-08-18 03:45:11 +00:00
// :TODO: messageAreaSelect (change msg areas -> call @systemMethod -> fallback to menu
2015-10-16 05:41:24 +00:00
messageAreaNewPost: {
2016-07-25 07:03:07 +00:00
desc: Posting message,
2017-12-01 00:15:18 +00:00
module: msg_area_post_fse
2015-09-11 05:09:45 +00:00
config: {
art: {
header: MSGEHDR
2015-09-12 23:17:00 +00:00
body: MSGBODY
2015-09-11 05:09:45 +00:00
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
2015-09-20 04:55:09 +00:00
help: MSGEHLP
2015-10-16 05:41:24 +00:00
}
2015-09-11 05:09:45 +00:00
editorMode: edit
editorType: area
2015-10-16 05:41:24 +00:00
}
2015-10-07 03:21:13 +00:00
form: {
0: {
2015-09-11 05:09:45 +00:00
mci: {
TL1: {
2015-10-07 03:21:13 +00:00
argName: from
2015-09-11 05:09:45 +00:00
}
ET2: {
2015-10-07 03:21:13 +00:00
argName: to
focus: true
2015-09-21 01:10:09 +00:00
text: All
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-09-11 05:09:45 +00:00
}
2015-10-07 03:21:13 +00:00
ET3: {
argName: subject
maxLength: 72
submit: true
2015-12-12 22:52:56 +00:00
validate: @systemMethod:validateNonEmpty
2015-12-11 04:46:08 +00:00
// :TODO: Validate -> close/cancel if empty
2015-08-14 04:30:55 +00:00
}
2015-10-07 03:21:13 +00:00
}
2015-10-28 02:21:58 +00:00
submit: {
3: [
2015-09-11 05:09:45 +00:00
{
2015-10-28 02:21:58 +00:00
value: { subject: null }
action: @method:headerSubmit
2015-09-11 05:09:45 +00:00
}
]
2015-08-13 04:08:33 +00:00
}
2016-07-25 16:47:57 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
2015-10-07 03:21:13 +00:00
}
1: {
2015-09-12 23:17:00 +00:00
"mci" : {
MT1: {
2015-10-07 03:21:13 +00:00
width: 79
argName: message
mode: edit
2015-09-12 23:17:00 +00:00
}
2015-08-13 22:05:17 +00:00
}
2015-09-12 23:17:00 +00:00
submit: {
*: [ { "value": "message", "action": "@method:editModeEscPressed" } ]
2015-10-28 02:21:58 +00:00
}
2015-10-07 03:21:13 +00:00
actionKeys: [
2015-09-12 23:17:00 +00:00
{
2015-10-28 02:21:58 +00:00
keys: [ "escape" ]
viewId: 1
2015-09-12 23:17:00 +00:00
}
]
2015-10-28 02:21:58 +00:00
}
2: {
TLTL: {
mci: {
TL1: { width: 5 }
TL2: { width: 4 }
2015-08-14 04:30:55 +00:00
}
}
2015-10-28 02:21:58 +00:00
}
3: {
HM: {
mci: {
HM1: {
2015-10-07 03:21:13 +00:00
// :TODO: clear
"items" : [ "save", "discard", "help" ]
2015-08-14 04:30:55 +00:00
}
2015-10-28 02:21:58 +00:00
}
submit: {
*: [
2015-08-14 04:30:55 +00:00
{
2015-10-28 02:21:58 +00:00
value: { 1: 0 }
action: @method:editModeMenuSave
}
2015-08-14 04:30:55 +00:00
{
2015-10-28 02:21:58 +00:00
value: { 1: 1 }
2015-11-05 06:04:55 +00:00
action: @systemMethod:prevMenu
2015-10-07 03:21:13 +00:00
}
2015-08-14 04:30:55 +00:00
{
2015-10-28 02:21:58 +00:00
value: { 1: 2 }
action: @method:editModeMenuHelp
2015-09-13 00:18:46 +00:00
}
2015-08-14 04:30:55 +00:00
]
2015-10-28 02:21:58 +00:00
}
actionKeys: [
2015-08-14 04:30:55 +00:00
{
2015-09-21 01:10:09 +00:00
keys: [ "escape" ]
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
2015-08-14 04:30:55 +00:00
}
]
// :TODO: something like the following for overriding keymap
// this should only override specified entries. others will default
/*
"keyMap" : {
"accept" : [ "return" ]
}
*/
}
2015-08-13 04:08:33 +00:00
}
2015-08-12 03:36:08 +00:00
}
2015-10-15 05:09:10 +00:00
}
2016-07-25 07:03:07 +00:00
//
// User to User mail aka Email Menu
//
mailMenu: {
art: MAILMNU
desc: Mail Menu
prompt: menuCommand
submit: [
{
value: { command: "C" }
action: @menu:mailMenuCreateMessage
}
{
value: { command: "I" }
action: @menu:mailMenuInbox
}
{
value: { command: "Q" }
action: @systemMethod:prevMenu
}
{
value: { command: "G" }
action: @menu:fullLogoffSequence
}
{
value: 1
action: @menu:mailMenu
}
]
}
mailMenuCreateMessage: {
desc: Mailing Someone
2017-12-01 00:15:18 +00:00
module: msg_area_post_fse
2016-07-25 07:03:07 +00:00
config: {
art: {
header: MSGEHDR
body: MSGBODY
footerEditor: MSGEFTR
footerEditorMenu: MSGEMFT
help: MSGEHLP
},
editorMode: edit
editorType: email
messageAreaTag: private_mail
}
form: {
0: {
mci: {
TL1: {
argName: from
}
ET2: {
argName: to
focus: true
2018-01-13 16:08:17 +00:00
validate: @systemMethod:validateGeneralMailAddressedTo
2016-07-25 07:03:07 +00:00
}
ET3: {
argName: subject
maxLength: 72
submit: true
validate: @systemMethod:validateMessageSubject
}
}
submit: {
3: [
{
value: { subject: null }
action: @method:headerSubmit
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
}
1: {
mci: {
MT1: {
width: 79
argName: message
mode: edit
}
}
submit: {
*: [ { value: "message", action: "@method:editModeEscPressed" } ]
}
actionKeys: [
{
keys: [ "escape" ]
viewId: 1
}
]
},
2: {
TLTL: {
mci: {
TL1: {
width: 5
}
TL2: {
width: 4
}
}
}
}
3: {
HM: {
mci: {
HM1: {
// :TODO: clear
items: [ "save", "discard", "help" ]
}
}
submit: {
*: [
{
value: { 1: 0 }
action: @method:editModeMenuSave
}
{
value: { 1: 1 }
action: @systemMethod:prevMenu
}
{
value: { 1: 2 }
action: @method:editModeMenuHelp
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @method:editModeEscPressed
}
{
keys: [ "?" ]
action: @method:editModeMenuHelp
}
]
}
}
}
}
mailMenuInbox: {
2017-12-01 00:15:18 +00:00
module: msg_list
2018-01-27 04:41:53 +00:00
art: PRVMSGLIST
2016-07-25 07:03:07 +00:00
config: {
menuViewPost: messageAreaViewPost
messageAreaTag: private_mail
}
form: {
0: {
mci: {
VM1: {
focus: true
submit: true
argName: message
}
}
submit: {
*: [
{
value: { message: null }
action: @method:selectMessage
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
2017-02-12 21:03:29 +00:00
////////////////////////////////////////////////////////////////////////
2017-02-28 04:17:01 +00:00
// File Base
2017-02-12 21:03:29 +00:00
////////////////////////////////////////////////////////////////////////
2017-02-13 02:59:00 +00:00
fileBase: {
desc: File Base
2017-02-12 21:03:29 +00:00
art: FMENU
prompt: fileMenuCommand
submit: [
{
2017-09-04 02:45:00 +00:00
value: { menuOption: "L" }
2017-02-12 21:03:29 +00:00
action: @menu:fileBaseListEntries
}
2017-09-04 02:45:00 +00:00
{
value: { menuOption: "B" }
action: @menu:fileBaseBrowseByAreaSelect
}
2017-02-12 21:03:29 +00:00
{
value: { menuOption: "F" }
action: @menu:fileAreaFilterEditor
}
{
value: { menuOption: "Q" }
action: @systemMethod:prevMenu
}
{
value: { menuOption: "G" }
action: @menu:fullLogoffSequence
}
{
value: { menuOption: "D" }
action: @menu:fileBaseDownloadManager
}
2018-01-15 02:40:40 +00:00
{
value: { menuOption: "W" }
action: @menu:fileBaseWebDownloadManager
}
2017-02-12 21:03:29 +00:00
{
value: { menuOption: "U" }
action: @menu:fileBaseUploadFiles
}
{
value: { menuOption: "S" }
action: @menu:fileBaseSearch
}
2018-01-15 00:09:23 +00:00
{
value: { menuOption: "P" }
action: @menu:fileBaseSetNewScanDate
}
2017-02-12 21:03:29 +00:00
]
}
2018-01-15 00:09:23 +00:00
fileBaseSetNewScanDate: {
module: set_newscan_date
desc: File Base
art: SETFNSDATE
config: {
target: file
scanDateFormat: YYYYMMDD
}
form: {
0: {
mci: {
ME1: {
focus: true
submit: true
argName: scanDate
maskPattern: "####/##/##"
}
}
submit: {
*: [
{
value: { scanDate: null }
action: @method:scanDateSubmit
}
]
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
2017-02-12 21:03:29 +00:00
fileBaseListEntries: {
2017-12-01 00:15:18 +00:00
module: file_area_list
2017-02-12 21:03:29 +00:00
desc: Browsing Files
config: {
art: {
browse: FBRWSE
details: FDETAIL
detailsGeneral: FDETGEN
detailsNfo: FDETNFO
detailsFileList: FDETLST
help: FBHELP
}
}
form: {
0: {
mci: {
MT1: {
mode: preview
}
HM2: {
focus: true
submit: true
argName: navSelect
items: [
"prev", "next", "details", "toggle queue", "rate", "change filter", "help", "quit"
]
focusItemIndex: 1
}
2017-05-20 00:41:13 +00:00
// :TODO: these can be removed once the hack is not required:
TL10: {}
TL11: {}
TL12: {}
TL13: {}
TL14: {}
TL15: {}
TL16: {}
TL17: {}
TL18: {}
2017-02-12 21:03:29 +00:00
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:prevFile
}
{
value: { navSelect: 1 }
action: @method:nextFile
}
{
value: { navSelect: 2 }
action: @method:viewDetails
}
{
value: { navSelect: 3 }
action: @method:toggleQueue
}
{
value: { navSelect: 4 }
action: @menu:fileBaseGetRatingForSelectedEntry
}
{
value: { navSelect: 5 }
action: @menu:fileAreaFilterEditor
}
{
value: { navSelect: 6 }
action: @method:displayHelp
}
{
value: { navSelect: 7 }
action: @systemMethod:prevMenu
}
]
}
actionKeys: [
{
keys: [ "w", "shift + w" ]
action: @method:showWebDownloadLink
}
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
{
keys: [ "t", "shift + t" ]
action: @method:toggleQueue
}
{
keys: [ "f", "shift + f" ]
action: @menu:fileAreaFilterEditor
}
{
keys: [ "v", "shift + v" ]
action: @method:viewDetails
}
{
keys: [ "r", "shift + r" ]
action: @menu:fileBaseGetRatingForSelectedEntry
}
{
keys: [ "?" ]
action: @method:displayHelp
}
]
}
1: {
mci: {
HM1: {
focus: true
submit: true
argName: navSelect
items: [
"general", "nfo/readme", "file listing"
]
}
2017-05-20 00:41:13 +00:00
// :TODO: these can be removed once the hack is not required:
TL10: {}
TL11: {}
TL12: {}
TL13: {}
TL14: {}
TL15: {}
TL16: {}
TL17: {}
TL18: {}
2017-02-12 21:03:29 +00:00
}
actionKeys: [
{
keys: [ "escape", "q", "shift + q" ]
action: @method:detailsQuit
}
]
}
2: {
// details - general
mci: {}
}
3: {
// details - nfo/readme
mci: {
MT1: {
mode: preview
}
}
}
4: {
// details - file listing
mci: {
VM1: {
}
}
}
}
}
2017-09-04 02:45:00 +00:00
fileBaseBrowseByAreaSelect: {
desc: Browsing File Areas
2017-12-01 00:15:18 +00:00
module: file_base_area_select
2017-09-04 02:45:00 +00:00
art: FAREASEL
form: {
0: {
mci: {
VM1: {
focus: true
2018-01-28 20:02:24 +00:00
argName: areaTag
2017-09-04 02:45:00 +00:00
}
}
submit: {
*: [
{
2018-01-28 20:02:24 +00:00
value: { areaTag: null }
2017-09-04 02:45:00 +00:00
action: @method:selectArea
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
}
}
}
2017-02-12 21:03:29 +00:00
fileBaseGetRatingForSelectedEntry: {
desc: Rating a File
prompt: fileBaseRateEntryPrompt
options: {
cls: true
}
submit: [
// :TODO: handle esc/q
{
// pass data back to caller
value: { rating: null }
action: @systemMethod:prevMenu
}
]
}
fileBaseListEntriesNoResults: {
desc: Browsing Files
art: FBNORES
options: {
pause: true
2017-12-03 02:06:07 +00:00
menuFlags: [ "noHistory", "popParent" ]
2017-02-12 21:03:29 +00:00
}
}
fileBaseSearch: {
2017-12-01 00:15:18 +00:00
module: file_base_search
2017-02-12 21:03:29 +00:00
desc: Searching Files
art: FSEARCH
form: {
0: {
mci: {
ET1: {
focus: true
argName: searchTerms
}
BT2: {
argName: search
text: search
submit: true
}
ET3: {
maxLength: 64
argName: tags
}
SM4: {
maxLength: 64
argName: areaIndex
}
SM5: {
items: [
"upload date",
"uploaded by",
"downloads",
"rating",
"estimated year",
"size",
2017-09-15 02:54:35 +00:00
"filename",
2017-02-12 21:03:29 +00:00
]
argName: sortByIndex
}
SM6: {
items: [
"decending",
"ascending"
]
argName: orderByIndex
}
BT7: {
argName: advancedSearch
text: advanced search
submit: true
}
}
submit: {
*: [
{
value: { search: null }
action: @method:search
}
{
value: { advancedSearch: null }
action: @method:search
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
}
}
}
fileAreaFilterEditor: {
desc: File Filter Editor
2017-12-01 00:15:18 +00:00
module: file_area_filter_edit
2017-02-12 21:03:29 +00:00
art: FFILEDT
form: {
0: {
mci: {
ET1: {
argName: searchTerms
}
ET2: {
maxLength: 64
argName: tags
}
SM3: {
maxLength: 64
argName: areaIndex
}
SM4: {
items: [
"upload date",
"uploaded by",
"downloads",
"rating",
"estimated year",
"size",
]
argName: sortByIndex
}
SM5: {
items: [
"decending",
"ascending"
]
argName: orderByIndex
}
ET6: {
maxLength: 64
argName: name
validate: @systemMethod:validateNonEmpty
}
HM7: {
focus: true
items: [
"prev", "next", "make active", "save", "new", "delete"
]
argName: navSelect
focusItemIndex: 1
}
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:prevFilter
}
{
value: { navSelect: 1 }
action: @method:nextFilter
}
{
value: { navSelect: 2 }
action: @method:makeFilterActive
}
{
value: { navSelect: 3 }
action: @method:saveFilter
}
{
value: { navSelect: 4 }
action: @method:newFilter
}
{
value: { navSelect: 5 }
action: @method:deleteFilter
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
}
}
}
fileBaseDownloadManager: {
desc: Download Manager
2017-12-01 00:15:18 +00:00
module: file_base_download_manager
2017-02-12 21:03:29 +00:00
config: {
art: {
queueManager: FDLMGR
/*
NYI
details: FDLDET
*/
}
emptyQueueMenu: fileBaseDownloadManagerEmptyQueue
}
form: {
0: {
mci: {
VM1: {
argName: queueItem
}
HM2: {
focus: true
items: [ "download all", "quit" ]
argName: navSelect
}
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:downloadAll
}
{
value: { navSelect: 1 }
action: @systemMethod:prevMenu
}
]
}
actionKeys: [
{
keys: [ "a", "shift + a" ]
action: @method:downloadAll
}
{
keys: [ "delete", "r", "shift + r" ]
action: @method:removeItem
}
{
2017-09-29 03:34:58 +00:00
keys: [ "c", "shift + c" ]
action: @method:clearQueue
}
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
fileBaseWebDownloadManager: {
desc: Web D/L Manager
2017-12-01 00:15:18 +00:00
module: file_base_web_download_manager
2017-09-29 03:34:58 +00:00
config: {
art: {
queueManager: FWDLMGR
batchList: BATDLINF
}
emptyQueueMenu: fileBaseDownloadManagerEmptyQueue
}
form: {
0: {
mci: {
VM1: {
argName: queueItem
}
HM2: {
focus: true
items: [ "get batch link", "quit", "help" ]
argName: navSelect
}
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:getBatchLink
}
{
value: { navSelect: 1 }
action: @systemMethod:prevMenu
}
]
}
actionKeys: [
{
keys: [ "b", "shift + b" ]
action: @method:getBatchLink
}
{
keys: [ "delete", "r", "shift + r" ]
action: @method:removeItem
}
{
2017-02-12 21:03:29 +00:00
keys: [ "c", "shift + c" ]
action: @method:clearQueue
}
{
keys: [ "escape", "q", "shift + q" ]
action: @systemMethod:prevMenu
}
]
}
}
}
fileBaseDownloadManagerEmptyQueue: {
desc: Empty Download Queue
art: FEMPTYQ
options: {
pause: true
2017-12-03 02:06:07 +00:00
menuFlags: [ "noHistory", "popParent" ]
2017-02-12 21:03:29 +00:00
}
}
fileTransferProtocolSelection: {
desc: Protocol selection
2017-12-01 00:15:18 +00:00
module: file_transfer_protocol_select
2017-02-12 21:03:29 +00:00
art: FPROSEL
form: {
0: {
mci: {
VM1: {
focus: true
argName: protocol
}
}
submit: {
*: [
{
value: { protocol: null }
action: @method:selectProtocol
}
]
}
actionKeys: [
{
keys: [ "escape" ]
action: @systemMethod:prevMenu
}
]
}
}
}
fileBaseUploadFiles: {
desc: Uploading
2017-12-01 00:15:18 +00:00
module: upload
2017-02-12 21:03:29 +00:00
config: {
art: {
options: ULOPTS
fileDetails: ULDETAIL
processing: ULCHECK
dupes: ULDUPES
}
}
form: {
// options
0: {
mci: {
SM1: {
argName: areaSelect
focus: true
}
TM2: {
argName: uploadType
items: [ "blind", "supply filename" ]
}
ET3: {
argName: fileName
maxLength: 255
validate: @method:validateNonBlindFileName
}
HM4: {
argName: navSelect
items: [ "continue", "cancel" ]
submit: true
}
}
submit: {
*: [
{
value: { navSelect: 0 }
action: @method:optionsNavContinue
}
{
value: { navSelect: 1 }
action: @systemMethod:prevMenu
}
]
}
"actionKeys" : [
{
"keys" : [ "escape" ],
action: @systemMethod:prevMenu
}
]
}
1: {
mci: {
TL1: {}
TL2: {}
TL3: {}
MT4: {}
TL10: {}
}
}
// file details entry
2: {
mci: {
MT1: {
argName: shortDesc
tabSwitchesView: true
focus: true
}
ET2: {
argName: tags
}
ME3: {
argName: estYear
maskPattern: "####"
}
BT4: {
argName: continue
text: continue
submit: true
}
}
submit: {
*: [
{
value: { continue: null }
action: @method:fileDetailsContinue
}
]
}
}
// dupes
3: {
mci: {
VM1: {
/*
Use 'dupeInfoFormat' to custom format:
areaDesc
areaName
areaTag
desc
descLong
fileId
fileName
fileSha256
storageTag
uploadTimestamp
*/
mode: preview
}
}
}
}
}
fileBaseNoUploadAreasAvail: {
desc: File Base
art: ULNOAREA
options: {
pause: true
2018-01-15 02:40:40 +00:00
menuFlags: [ "noHistory", "popParent" ]
2017-02-12 21:03:29 +00:00
}
}
sendFilesToUser: {
desc: Downloading
2017-12-01 00:15:18 +00:00
module: file_transfer
2017-02-12 21:03:29 +00:00
config: {
// defaults - generally use extraArgs
protocol: zmodem8kSexyz
direction: send
}
}
recvFilesFromUser: {
desc: Uploading
2017-12-01 00:15:18 +00:00
module: file_transfer
2017-02-12 21:03:29 +00:00
config: {
// defaults - generally use extraArgs
protocol: zmodem8kSexyz
direction: recv
}
}
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
2015-10-28 02:21:58 +00:00
// Required entries
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
2015-09-12 23:17:00 +00:00
idleLogoff: {
art: IDLELOG
next: @systemMethod:logoff
2015-10-28 02:21:58 +00:00
}
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
// Demo Section
2015-10-28 02:21:58 +00:00
// :TODO: This entire section needs updated!!!
2015-07-31 15:11:57 +00:00
////////////////////////////////////////////////////////////////////////
2015-05-16 05:02:58 +00:00
"demoMain" : {
"art" : "demo_selection_vm.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"VM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"VM1" : {
"items" : [
2016-06-27 07:29:17 +00:00
"Single Line Text Editing Views",
2015-05-16 05:02:58 +00:00
"Spinner & Toggle Views",
"Mask Edit Views",
2015-05-16 20:39:14 +00:00
"Multi Line Text Editor",
2015-05-16 05:02:58 +00:00
"Vertical Menu Views",
"Horizontal Menu Views",
"Art Display",
2015-08-26 05:17:09 +00:00
"Full Screen Editor"
2015-05-16 05:02:58 +00:00
],
"height" : 10,
"itemSpacing" : 1,
"justify" : "center",
"focusTextStyle" : "small i"
}
2015-04-10 04:49:56 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@menu:demoEditTextView"
},
{
"value" : { "1" : 1 },
"action" : "@menu:demoSpinAndToggleView"
},
{
"value" : { "1" : 2 },
"action" : "@menu:demoMaskEditView"
},
{
2015-05-16 20:39:14 +00:00
"value" : { "1" : 3 },
"action" : "@menu:demoMultiLineEditTextView"
},
2015-08-26 05:17:09 +00:00
{
"value" : { "1" : 4 },
"action" : "@menu:demoVerticalMenuView"
},
2015-07-01 04:45:27 +00:00
{
"value" : { "1" : 5 },
"action" : "@menu:demoHorizontalMenuView"
},
2015-05-16 20:39:14 +00:00
{
"value" : { "1" : 6 },
2015-05-16 05:02:58 +00:00
"action" : "@menu:demoArtDisplay"
2015-06-25 04:45:21 +00:00
},
{
"value" : { "1" : 7 },
2015-06-25 22:33:17 +00:00
"action" : "@menu:demoFullScreenEditor"
2015-05-16 05:02:58 +00:00
}
]
2015-04-07 04:29:45 +00:00
}
}
}
}
2015-04-10 04:49:56 +00:00
},
2015-05-16 05:02:58 +00:00
"demoEditTextView" : {
"art" : "demo_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTETETETET" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"ET1" : {
"width" : 20,
"maxLength" : 20
},
"ET2" : {
"width" : 20,
"maxLength" : 40,
"textOverflow" : "..."
2015-04-29 03:15:36 +00:00
},
2015-05-16 05:02:58 +00:00
"ET3" : {
"width" : 20,
"fillChar" : "-",
"styleSGR1" : "|00|36",
"maxLength" : 20
2015-05-03 23:35:55 +00:00
},
2015-05-16 05:02:58 +00:00
"ET4" : {
"width" : 20,
"maxLength" : 20,
"password" : true
2015-05-15 05:01:00 +00:00
},
2015-05-16 05:02:58 +00:00
"BT5" : {
"width" : 8,
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-04-25 20:44:48 +00:00
}
2015-04-27 23:27:23 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-04-29 03:15:36 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoSpinAndToggleView" : {
"art" : "demo_spin_and_toggle.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTSMSMTM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"SM1" : {
"items" : [ "Henry Morgan", "François l'Ollonais", "Roche Braziliano", "Black Bart", "Blackbeard" ]
},
"SM2" : {
"items" : [ "Razor 1911", "DrinkOrDie", "TRSI" ]
},
"TM3" : {
"items" : [ "Yarly", "Nowaii" ],
"styleSGR1" : "|00|30|01",
2015-06-05 22:20:26 +00:00
"hotKeys" : { "Y" : 0, "N" : 1 }
2015-05-16 05:02:58 +00:00
},
"BT8" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 05:02:58 +00:00
}
2015-04-29 03:15:36 +00:00
},
2015-05-16 05:02:58 +00:00
"submit" : {
"*" : [
{
"value" : 8,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 8
}
]
2015-04-27 23:27:23 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoMaskEditView" : {
"art" : "demo_mask_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTMEME" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"ME1" : {
"maskPattern" : "##/##/##",
"styleSGR1" : "|00|30|01",
2015-07-22 05:52:20 +00:00
//"styleSGR2" : "|00|45|01",
"styleSGR3" : "|00|30|35",
"fillChar" : "#"
2015-05-16 20:39:14 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 20:39:14 +00:00
}
2015-05-18 03:33:27 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-05-16 20:39:14 +00:00
}
}
}
},
"demoMultiLineEditTextView" : {
"art" : "demo_multi_line_edit_text_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTMT" : {
2016-06-27 07:29:17 +00:00
"mci" : {
2015-05-16 20:39:14 +00:00
"MT1" : {
2015-06-20 21:15:37 +00:00
"width" : 70,
2015-05-18 03:33:27 +00:00
"height" : 17,
2015-07-22 05:52:20 +00:00
//"text" : "@art:demo_multi_line_edit_text_view_text.txt",
// "text" : "@systemMethod:textFromFile"
2015-09-11 05:09:45 +00:00
text: "Hints:\n\t* Insert / CTRL-V toggles overtype mode\n\t* CTRL-Y deletes the current line\n\t* Try Page Up / Page Down\n\t* Home goes to the start of line text\n\t* End goes to the end of a line\n\n\nTab handling:\n-------------------------------------------------\n\tA\tB\tC\tD\tE\tF\nA\tB\tC\tD\tE\tF\tG\tH\n\tA\tB\tC\tD\tE\tF\nA\tB\tC\tD\tE\tF\tG\tH\nA0\tBB\t1\tCCC\t2\tDDD\t3EEEE\nW\t\tX\t\tY\t\tZ\n\nAn excerpt from A Clockwork Orange:\n\"What sloochatted then, of course, was that my cellmates woke up and started joining in, tolchocking a bit wild in the near-dark, and the shoom seemed to wake up the whole tier, so that you could slooshy a lot of creeching and banging about with tin mugs on the wall, as though all the plennies in all the cells thought a big break was about to commence, O my brothers.\n",
2015-05-18 03:33:27 +00:00
"focus" : true
2015-05-16 20:39:14 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-05-16 05:02:58 +00:00
}
2015-05-18 03:33:27 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-05-15 05:01:00 +00:00
}
}
}
2015-05-16 05:02:58 +00:00
},
2015-07-01 04:45:27 +00:00
"demoHorizontalMenuView" : {
"art" : "demo_horizontal_menu_view1.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"BTHMHM" : {
2015-07-01 04:45:27 +00:00
"mci" : {
"HM1" : {
2015-07-02 02:18:34 +00:00
"items" : [ "One", "Two", "Three" ],
"hotKeys" : { "1" : 0, "2" : 1, "3" : 2 }
},
"HM2" : {
"items" : [ "Uno", "Dos", "Tres" ],
"hotKeys" : { "U" : 0, "D" : 1, "T" : 2 }
2015-07-01 04:45:27 +00:00
},
"BT5" : {
2015-07-10 05:23:37 +00:00
"text" : "< Back"
2015-07-01 04:45:27 +00:00
}
2015-07-02 02:18:34 +00:00
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
2015-07-01 04:45:27 +00:00
}
}
}
},
2015-08-26 05:17:09 +00:00
"demoVerticalMenuView" : {
"art" : "demo_vertical_menu_view1.ans",
"form" : {
"0" : {
"BTVM" : {
"mci" : {
"VM1" : {
"items" : [
"|33Oblivion/2",
"|33iNiQUiTY",
"|33ViSiON/X"
],
"focusItems" : [
"|33Oblivion|01/|00|332",
"|01|33i|00|33N|01i|00|33QU|01i|00|33TY",
"|33ViSiON/X"
]
//
// :TODO: how to do the following:
// 1) Supply a view a string for a standard vs focused item
// "items" : [...], "focusItems" : [ ... ] ?
// "draw" : "@method:drawItemX", then items: [...]
},
"BT5" : {
"text" : "< Back"
}
},
"submit" : {
"*" : [
{
"value" : 5,
"action" : "@menu:demoMain"
}
]
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 5
}
]
}
}
}
},
2015-05-16 05:02:58 +00:00
"demoArtDisplay" : {
"art" : "demo_selection_vm.ans",
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"VM" : {
2015-05-16 05:02:58 +00:00
"mci" : {
"VM1" : {
"items" : [
"Defaults - DOS ANSI",
2015-07-20 03:49:48 +00:00
"bw_mindgames.ans - DOS",
"test.ans - DOS",
2015-05-16 05:02:58 +00:00
"Defaults - Amiga",
"Pause at Term Height"
],
// :TODO: justify not working??
"focusTextStyle" : "small i"
}
},
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@menu:demoDefaultsDosAnsi"
2015-07-20 03:49:48 +00:00
},
{
"value" : { "1" : 1 },
"action" : "@menu:demoDefaultsDosAnsi_bw_mindgames"
},
{
"value" : { "1" : 2 },
"action" : "@menu:demoDefaultsDosAnsi_test"
}
2015-05-16 05:02:58 +00:00
]
2015-05-03 23:35:55 +00:00
}
}
}
}
2015-05-16 05:02:58 +00:00
},
"demoDefaultsDosAnsi" : {
2015-09-09 04:08:45 +00:00
"art" : "DM-ENIG2.ANS"
2015-07-20 03:49:48 +00:00
},
"demoDefaultsDosAnsi_bw_mindgames" : {
2015-09-09 04:08:45 +00:00
"art" : "bw_mindgames.ans"
2015-07-20 03:49:48 +00:00
},
"demoDefaultsDosAnsi_test" : {
2015-09-09 04:08:45 +00:00
"art" : "test.ans"
2015-06-25 04:45:21 +00:00
},
2015-06-25 22:33:17 +00:00
"demoFullScreenEditor" : {
2017-12-01 00:15:18 +00:00
"module" : "fse",
2015-06-26 04:34:33 +00:00
"config" : {
2015-07-04 18:02:37 +00:00
"editorType" : "netMail",
"art" : {
"header" : "demo_fse_netmail_header.ans",
"body" : "demo_fse_netmail_body.ans",
2015-09-04 20:28:05 +00:00
"footerEditor" : "demo_fse_netmail_footer_edit.ans",
"footerEditorMenu" : "demo_fse_netmail_footer_edit_menu.ans",
2015-07-11 22:39:42 +00:00
"footerView" : "demo_fse_netmail_footer_view.ans",
"help" : "demo_fse_netmail_help.ans"
2015-07-04 18:02:37 +00:00
}
2015-06-27 21:32:29 +00:00
},
2015-07-04 18:02:37 +00:00
"form" : {
"0" : {
2015-07-22 05:52:20 +00:00
"ETETET" : {
2015-07-04 18:02:37 +00:00
"mci" : {
"ET1" : {
// :TODO: from/to may be set by args
// :TODO: focus may change dep on view vs edit
"width" : 36,
2015-07-13 04:56:33 +00:00
"focus" : true,
"argName" : "to"
2015-07-04 18:02:37 +00:00
},
"ET2" : {
2015-07-13 04:56:33 +00:00
"width" : 36,
"argName" : "from"
2015-07-04 18:02:37 +00:00
},
"ET3" : {
"width" : 65,
"maxLength" : 72,
2015-07-13 04:56:33 +00:00
"submit" : [ "enter" ],
"argName" : "subject"
2015-07-04 18:02:37 +00:00
}
},
"submit" : {
"3" : [
{
2015-07-13 19:41:21 +00:00
"value" : { "subject" : null },
2015-07-04 18:02:37 +00:00
"action" : "@method:headerSubmit"
}
]
}
}
},
"1" : {
2015-07-22 05:52:20 +00:00
"MT" : {
2015-07-04 18:02:37 +00:00
"mci" : {
"MT1" : {
"width" : 79,
2015-07-06 01:05:55 +00:00
"height" : 17,
2015-07-13 04:56:33 +00:00
"text" : "", // :TODO: should not be req.
"argName" : "message"
2015-07-04 18:02:37 +00:00
}
},
"submit" : {
"*" : [
{
2015-07-13 19:41:21 +00:00
"value" : "message",
2015-07-09 04:49:22 +00:00
"action" : "@method:editModeEscPressed"
2015-07-04 18:02:37 +00:00
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"viewId" : 1
}
]
2015-07-04 18:02:37 +00:00
}
2015-07-06 01:05:55 +00:00
},
"2" : {
2015-07-22 05:52:20 +00:00
"TLTL" : {
2015-07-06 01:05:55 +00:00
"mci" : {
"TL1" : {
"width" : 5
},
"TL2" : {
"width" : 4
}
}
}
2015-07-09 04:07:25 +00:00
},
"3" : {
2015-07-22 05:52:20 +00:00
"HM" : {
2015-07-09 04:07:25 +00:00
"mci" : {
"HM1" : {
2015-07-12 06:32:31 +00:00
// :TODO: Continue, Save, Discard, Clear, Quote, Help
"items" : [ "Save", "Discard", "Quote", "Help" ]
2015-07-09 04:07:25 +00:00
}
2015-07-09 04:49:22 +00:00
},
"submit" : {
"*" : [
{
2015-07-09 23:06:09 +00:00
"value" : { "1" : 0 },
2015-07-12 06:32:31 +00:00
"action" : "@method:editModeMenuSave"
2015-07-09 04:49:22 +00:00
},
2015-07-10 05:23:37 +00:00
{
"value" : { "1" : 1 },
2015-07-12 02:12:07 +00:00
"action" : "@menu:demoMain"
2015-07-10 05:23:37 +00:00
},
{
"value" : { "1" : 2 },
2015-07-12 06:32:31 +00:00
"action" : "@method:editModeMenuQuote"
2015-07-10 05:23:37 +00:00
},
{
"value" : { "1" : 3 },
2015-07-12 02:12:07 +00:00
"action" : "@method:editModeMenuHelp"
2015-07-10 05:23:37 +00:00
},
2015-07-09 04:49:22 +00:00
{
"value" : 1,
"action" : "@method:editModeEscPressed"
}
]
2015-07-10 05:23:37 +00:00
},
"actionKeys" : [ // :TODO: Need better name
{
"keys" : [ "escape" ],
"action" : "@method:editModeEscPressed"
}
]
2015-04-27 02:46:16 +00:00
}
2015-04-25 20:44:48 +00:00
}
}
2016-06-27 07:29:17 +00:00
}
2015-03-24 05:12:19 +00:00
}
2016-06-27 07:29:17 +00:00
}