Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs

This commit is contained in:
Bryan Ashby
2016-01-03 19:41:35 -07:00
9 changed files with 292 additions and 87 deletions

View File

@@ -369,9 +369,6 @@
art: LETTER
options: { pause: true }
next: newUserFeedbackToSysOp
extraArgs: {
messageAreaName: private_mail
}
}
newUserFeedbackToSysOp: {
@@ -395,7 +392,9 @@
help: MSGEHLP
},
editorMode: edit
editorType: area
editorType: email
messageAreaName: private_mail
toUserId: 1 /* always to +op */
}
form: {
0: {
@@ -505,6 +504,7 @@
options: { pause: true }
next: fullLoginSequenceLastCallers
}
fullLoginSequenceLastCallers: {
desc: Last Callers
module: last_callers
@@ -517,8 +517,34 @@
module: whos_online
art: WHOSON
options: { pause: true }
next: fullLoginSequenceSysStats
next: fullLoginSequenceNewScanConfirm
}
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
next: fullLoginSequenceSysStats
config: {
messageListMenu: newScanMessageList
}
}
fullLoginSequenceSysStats: {
desc: System Stats
art: SYSSTAT
@@ -532,6 +558,40 @@
next: mainMenu
}
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
}
]
}
}
}
///////////////////////////////////////////////////////////////////////
// Main Menu
///////////////////////////////////////////////////////////////////////
@@ -743,6 +803,10 @@
value: { command: "4" }
action: @menu:doorTradeWars2002BBSLink
}
{
value: { command: "DL" }
action: @menu:doorDarkLands
}
]
}
@@ -763,6 +827,24 @@
io: socket
}
}
doorDarkLands: {
desc: Playing Dark Lands
module: abracadabra
config: {
name: DARKLANDS
dropFileType: DOOR
cmd: /home/nuskooler/dev/enigma-bbs/doors/darklands/start.sh
args: [
"{node}",
"{dropFile}",
"{srvPort}",
],
nodeMax: 1
tooManyArt: DOORMANY
io: socket
}
}
doorLORD: {
desc: Playing L.O.R.D.
@@ -860,7 +942,6 @@
module: msg_list
art: MSGLIST
config: {
listType: public
menuViewPost: messageAreaViewPost
}
form: {

View File

@@ -45,7 +45,7 @@ function AreaPostFSEModule(options) {
if(err) {
// :TODO:... sooooo now what?
} else {
console.log(msg);
console.log(msg); // :TODO: remove me -- probably log that one was saved, however.
}
self.nextMenu();

View File

@@ -52,9 +52,21 @@ function MessageListModule(options) {
var self = this;
var config = this.menuConfig.config;
this.listType = config.listType || 'public';
this.messageAreaName = config.messageAreaName;
this.messageList = [];
if(options.extraArgs) {
//
// |extraArgs| can override |messageAreaName| provided by config
// as well as supply a pre-defined message list
//
if(options.extraArgs.messageAreaName) {
this.messageAreaName = options.extraArgs.messageAreaName;
}
if(options.extraArgs.messageList) {
this.messageList = options.extraArgs.messageList;
}
}
this.menuMethods = {
selectMessage : function(formData, extraArgs) {
@@ -85,9 +97,11 @@ require('util').inherits(MessageListModule, MenuModule);
MessageListModule.prototype.enter = function(client) {
MessageListModule.super_.prototype.enter.call(this, client);
if('private' === this.listType) {
this.messageAreaName = Message.WellKnownAreaNames.Private;
} else {
//
// Config can specify |messageAreaName| else it comes from
// the user's current area
//
if(!this.messageAreaName) {
this.messageAreaName = client.user.properties.message_area_name;
}
};
@@ -110,14 +124,21 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
vc.loadFromMenuConfig(loadOpts, callback);
},
function fetchMessagesInArea(callback) {
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaName, function msgs(err, msgList) {
if(msgList && 0 === msgList.length) {
callback(new Error('No messages in area'));
} else {
self.messageList = msgList;
callback(err);
}
});
//
// Config can supply messages else we'll need to populate the list now
//
if(_.isArray(self.messageList)) {
callback(0 === self.messageList.length ? new Error('No messages in area') : null);
} else {
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaName, function msgs(err, msgList) {
if(msgList && 0 === msgList.length) {
callback(new Error('No messages in area'));
} else {
self.messageList = msgList;
callback(err);
}
});
}
},
function getLastReadMesageId(callback) {
messageArea.getMessageAreaLastReadId(self.client.user.userId, self.messageAreaName, function lastRead(err, lastReadId) {

View File

@@ -46,6 +46,19 @@
}
}
loginGlobalNewScan: {
art: GNSPMPT
mci: {
TM1: {
argName: promptValue
items: [ "yes", "no" ]
focus: true
hotKeys: { Y: 0, N: 1 }
hotKeySubmit: true
}
}
}
"menuCommand" : {
art: MNUPRMT
"mci" : {