* Menus can specify status

* WIP changes of message loading in viewer - can now do next... WIP!!!
This commit is contained in:
Bryan Ashby
2015-09-06 15:58:58 -06:00
parent b911db75ca
commit 1f3948d84c
8 changed files with 169 additions and 65 deletions

Binary file not shown.

View File

@@ -279,6 +279,10 @@
{
"value" : { "command" : "Q" },
"action" : "@menu:mainMenu"
},
{
"value" : 1,
"action" : "@menu:messageArea"
}
]
},
@@ -429,26 +433,33 @@
}
}
},
"3" : {
"4" : {
"HM" : {
"mci" : {
"HM1" : {
// (P)rev/(N)ext/Post/(R)eply/(Q)uit/(?)Help
// (#)Jump/(L)Index (msg list)/Last
// :TODO: Continue, Save, Discard, Clear, Quote, Help
"items" : [ "Save", "Discard", "Quote", "Help" ]
"items" : [ "Prev", "Next", "Reply", "Quit", "Help" ]
}
}/*,
},
"submit" : {
"*" : [
{
"value" : { "1" : 0 },
"action" : "@method:editModeMenuSave"
"value" : { "1" : 1 },
"action" : "@method:nextMessage"
},
{
"value" : { "1" : 3 },
"action" : "@menu:messageArea"
}
]
}*/,
"actionKeys" : [ // :TODO: Need better name
},
"actionKeys" : [
{
"keys" : [ "escape" ],
"action" : "@method:editModeEscPressed"
"action" : "@method:editModeEscPressed" // :TODO: fixme
}
]
}
@@ -457,6 +468,7 @@
},
// :TODO: messageAreaSelect (change msg areas -> call @systemMethod -> fallback to menu
"messageAreaNewPost" : {
"status" : "Posting message",
"module" : "msg_area_post_fse",
"options" : { "cls" : true },
"fallback" : "messageArea", // :TODO: remove once default fallback is in place
@@ -597,34 +609,6 @@
}
}
},
/*
"messageAreaMenu" : {
"module" : "message_area",
"art" : "MSGAREA",
"options" : { "cls" : true },
"prompt" : "menuCommand",
"config" : {
"fseArt" : {
"header" : "demo_fse_netmail_header.ans",
"body" : "demo_fse_netmail_body.ans",
"footerEdit" : "demo_fse_netmail_footer_edit.ans",
"footerEditMenu" : "demo_fse_netmail_footer_edit_menu.ans",
"footerView" : "demo_fse_netmail_footer_view.ans",
"help" : "demo_fse_netmail_help.ans"
}
},
"submit" : [
{
"value" : { "command" : "R" },
"action" : "@method:readMessages"
},
{
"value" : { "command" : "P" },
"action" : "@method:postMessage"
}
]
}
*/
///////////////////////////////////////////////////////////////////////
// Doors
///////////////////////////////////////////////////////////////////////

View File

@@ -2,7 +2,8 @@
'use strict';
var FullScreenEditorModule = require('../core/fse.js').FullScreenEditorModule;
var Message = require('../core/message.js').Message;
var Message = require('../core/message.js');
var messageArea = require('../core/message_area.js');
var user = require('../core/user.js');
var _ = require('lodash');
@@ -26,6 +27,17 @@ function AreaViewFSEModule(options) {
this.editorType = 'area';
this.editorMode = 'view';
if(_.isObject(options.extraArgs)) {
this.messageList = options.extraArgs.messageList;
this.messageIndex = options.extraArgs.messageIndex;
}
this.messageList = this.messageList || [];
this.messageIndex = this.messageIndex || 0;
this.messageNumber = this.messageIndex + 1;
this.messageTotal = this.messageList.length;
//assert(_.isString(options.extraArgs.messageAreaName), 'messageAreaName must be supplied!');
//assert(options.extraArgs.messageId, 'messageId must be supplied!');
//assert(_.isString(options.extraArgs.messageUuid), 'messageUuid must be supplied!');
@@ -40,7 +52,21 @@ function AreaViewFSEModule(options) {
};
*/
this.menuMethods.nextMessage = function(formData, extraArgs) {
// :TODO: Next shouldn't even be a option if this is not the case:
if(self.messageIndex + 1 < self.messageList.length) {
self.messageNumber++; // :TODO: should consolidate index + number?
self.loadMessageByUuid(self.messageList[self.messageIndex++].messageUuid);
}
};
this.loadMessageByUuid = function(uuid) {
var msg = new Message();
msg.load( { uuid : uuid, user : self.client.user }, function loaded(err) {
self.setMessage(msg);
});
};
}
require('util').inherits(AreaViewFSEModule, FullScreenEditorModule);
@@ -55,5 +81,8 @@ AreaViewFSEModule.prototype.enter = function(client) {
AreaViewFSEModule.prototype.finishedLoading = function() {
//AreaViewFSEModule.super_.prototype.finishedLoading.call(this);
this.loadMessage(this.messageUuid);
if(this.messageList.length) {
console.log('loading from index ' + this.messageIndex)
this.loadMessageByUuid(this.messageList[this.messageIndex].messageUuid);
}
};

View File

@@ -56,10 +56,28 @@ function MessageListModule(options) {
this.menuMethods = {
selectMessage : function(formData, extraArgs) {
if(1 === formData.submitId) {
/*
extraArgs.messageAreaName
extraArgs.messageList
extraArgs.messageListIndex
*/
var selected = self.messageList[formData.value.message];
console.log(selected);
//
//console.log(selected);
var modOpts = {
name : 'messageAreaViewPost', // :TODO: should come from config?
extraArgs : {
messageAreaName : self.messageAreaName,
messageList : self.messageList,
messageListIndex : formData.value.message,
}
};
self.client.gotoMenuModule(modOpts);
/*
//
// Load full Message object
//
var msg = new Message();
@@ -83,6 +101,7 @@ function MessageListModule(options) {
self.client.gotoMenuModule(modOpts);
}
});
*/
}
}
};