2016-06-27 07:29:17 +00:00
{
2015-09-09 04:08:45 +00:00
/*
ENiGMA½ Menu Configuration
2015-09-11 03:01:04 +00:00
This configuration is in HJSON format. Strict to-spec JSON is also
perfectly valid. The hjson npm can be used to convert to/from JSON.
See http://hjson.org/ for more information and syntax.
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
next: newUserApplicationSsh
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
2015-05-16 05:02:58 +00:00
// :TODO: need a good way to localize these ... Standard Orig->Lookup seems good.
2015-09-27 21:35:24 +00:00
items: [ "login", "apply", "log off" ]
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
{
2015-09-12 23:17:00 +00:00
value: { 1: 0 }
2015-10-28 02:21:58 +00:00
action: @menu:login
}
2015-05-16 05:02:58 +00:00
{
2015-09-12 23:17:00 +00:00
value: { 1: 1 },
2015-09-23 03:31:56 +00:00
action: @menu:newUserApplication
2015-10-28 02:21:58 +00:00
}
2015-05-16 05:02:58 +00:00
{
2015-09-12 23:17:00 +00:00
value: { 1: 2 },
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
}
}
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
}
2015-09-21 02:23:55 +00:00
/*
2015-10-28 02:21:58 +00:00
TODO: display PRINT before this (Obv/2) or NEWUSER1 (Mystic)
2015-09-21 02:23:55 +00:00
*/
newUserApplication: {
2015-12-11 04:46:08 +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
}
}
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: {
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 }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-10-22 18:22:03 +00:00
}
]
}
actionKeys: [
{
keys: [ "escape" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
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
2015-09-23 05:13:06 +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: {
argName: from
}
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
2015-10-16 05:41:24 +00:00
module: last_callers
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
module: whos_online
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
module: onelinerz
next: fullLoginSequenceNewScanConfirm
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
module: @systemModule:new_scan
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: {
desc: Viewing New Message List
module: msg_list
art: NEWMSGS
config: {
menuViewPost: messageAreaViewPost
}
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
}
]
}
}
}
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
}
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-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
}
2015-09-27 21:35:24 +00:00
mainMenuLastCallers: {
2015-10-18 17:48:08 +00:00
desc: Last Callers
2015-09-27 21:35:24 +00:00
module: last_callers
art: LASTCALL
options: { pause: true }
}
2015-11-26 01:03:47 +00:00
mainMenuWhosOnline: {
desc: Who's Online
module: whos_online
art: WHOSON
options: { pause: true }
}
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
}
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 }
}
2015-10-18 17:48:08 +00:00
mainMenuUserList: {
desc: User Listing
module: user_list
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: {
module: @systemModule:user_config
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
module: @systemModule:new_scan
art: NEWSCAN
config: {
messageListMenu: newScanMessageList
}
}
mainMenuFeedbackToSysOp: {
2016-07-25 07:03:07 +00:00
desc: Feedback to SysOp
2016-01-15 05:48:42 +00:00
module: msg_area_post_fse
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
module: onelinerz
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-06-27 07:29:17 +00:00
ercClient: {
art: erc
module: erc_client
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
module: bbs_list
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
}
{
value: { command: "1" }
action: @menu:doorPimpWars
}
{
value: { command: "2" }
action: @menu:doorLORD
}
2015-12-11 04:46:08 +00:00
{
value: { command: "4" }
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
{
value: { command: "HL" }
action: @menu:telnetBridgeHappyLand
}
2015-10-18 02:34:39 +00:00
]
}
2015-12-11 04:46:08 +00:00
2015-10-28 02:21:58 +00:00
doorPimpWars: {
desc: Playing PimpWars
2016-06-27 07:29:17 +00:00
module: abracadabra
2015-10-28 02:21:58 +00:00
config: {
name: PimpWars
dropFileType: DORINFO
2015-12-11 04:46:08 +00:00
cmd: /home/nuskooler/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
doorDarkLands: {
desc: Playing Dark Lands
2016-06-27 07:29:17 +00:00
module: abracadabra
2016-01-04 02:40:34 +00:00
config: {
name: DARKLANDS
dropFileType: DOOR
cmd: /home/nuskooler/dev/enigma-bbs/doors/darklands/start.sh
2016-06-27 07:29:17 +00:00
args: [
2016-01-04 02:40:34 +00:00
"{node}",
"{dropFile}",
"{srvPort}",
],
nodeMax: 1
tooManyArt: DOORMANY
io: socket
}
}
2016-06-27 07:29:17 +00:00
2015-10-28 02:21:58 +00:00
doorLORD: {
desc: Playing L.O.R.D.
module: abracadabra
config: {
name: LORD
dropFileType: DOOR
cmd: /usr/bin/dosemu
args: [
"-quiet", "-f", "/home/nuskooler/DOS/X/LORD/dosemu.conf", "X:\\LORD\\START.BAT {node}"
]
}
}
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)
module: bbs_link
config: {
sysCode: XXXXXXXX
authCode: XXXXXXXX
schemeCode: XXXXXXXX
door: tw
}
}
2016-06-20 03:09:45 +00:00
doorParty: {
desc: Using DoorParty!
module: @systemModule:door_party
config: {
username: XXXXXXXX
password: XXXXXXXX
bbsTag: XX
}
}
2016-06-29 04:38:29 +00:00
telnetBridgeHappyLand: {
desc: Connected to HappyLand BBS
module: telnet_bridge
config: {
host: andrew.homeunix.org
port: 2023
//host: agency.bbs.geek.nz
//port: 23
}
}
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
}
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
module: msg_conf_list
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
}
]
}
}
}
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
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: {
module: msg_list
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: {
module: msg_area_view_fse
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" ]
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: {
2015-09-13 01:18:08 +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: {
HM: {
mci: {
HM1: {
2015-10-07 03:21:13 +00:00
items: [ "save", "discard", "quote", "help" ]
2015-09-15 04:40:00 +00:00
}
}
2015-09-14 03:15:55 +00:00
submit: {
*: [
2015-09-20 07:29:07 +00:00
{
value: { 1: 0 }
action: @method:editModeMenuSave
}
2015-09-18 04:53:19 +00:00
{
value: { 1: 1 }
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-18 04:53:19 +00:00
}
2015-09-14 03:15:55 +00:00
{
value: { 1: 2 },
2015-09-15 04:40:00 +00:00
action: @method:editModeMenuQuote
2015-09-14 03:15:55 +00:00
}
2015-09-18 04:53:19 +00:00
{
value: { 1: 3 }
action: @method:editModeMenuHelp
}
2015-09-14 03:15:55 +00:00
]
}
2015-09-15 04:40:00 +00:00
actionKeys: [
{
keys: [ "escape" ]
action: @method:editModeEscPressed
}
2015-09-20 04:55:09 +00:00
{
keys: [ "s", "shift + s" ]
2015-09-20 07:29:07 +00:00
action: @method:editModeMenuSave
2015-09-20 04:55:09 +00:00
}
{
keys: [ "d", "shift + d" ]
2015-11-04 06:15:49 +00:00
action: @systemMethod:prevMenu
2015-09-20 04:55:09 +00:00
}
{
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,
2015-10-16 05:41:24 +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
module: msg_area_post_fse
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
validate: @systemMethod:validateUserNameExists
}
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: {
module: msg_list
art: MSGLIST
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
}
]
}
}
}
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" : {
2015-08-08 21:52:47 +00:00
"module" : "@systemModule: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
}