Cleanup, docs, screen shot of WFC

This commit is contained in:
Bryan Ashby 2022-08-04 11:32:09 -06:00
parent 8a351ecd7d
commit 95183fd3b3
No known key found for this signature in database
GPG Key ID: C2C1B501E4EFD994
7 changed files with 28 additions and 13 deletions

View File

@ -300,23 +300,23 @@
statusAvailableIndicators: [ "N", "Y" ] statusAvailableIndicators: [ "N", "Y" ]
statusVisibleIndicators: [ "N", "Y" ] statusVisibleIndicators: [ "N", "Y" ]
nodeStatusSelectionFormat: "|00|11{realName}\n{serverName}" nodeStatusSelectionFormat: "|00|07{realName:<12}\n|08- |07{serverName:<10}\n|08- |07{remoteAddress:<10}"
} }
0: { 0: {
mci: { mci: {
TL16: { TL16: {
fillChar: . fillChar: .
} }
TL17: { width: 23 } TL20: { width: 30 }
TL18: { width: 23 } TL22: { width: 30 }
TL19: { width: 14 } TL24: { width: 30 }
// node status // node status
VM1: { VM1: {
height: 5 height: 5
width: 37 width: 37
itemFormat: "|00 |11{node:<3.2} |11{userName:<12} |07{action:<14.13} |15{serverName}" itemFormat: "|00 |15{node:<3.2} |11{userName:<12} |07{action:<14.13} |15{serverName}"
focusItemFormat: "|00|15> |11{node:<3.2} |11{userName:<12} |07{action:<14.13} |15{serverName}" focusItemFormat: "|00|10> |15{node:<3.2} |11{userName:<12} |07{action:<14.13} |15{serverName}"
focusItemAtTop: false focusItemAtTop: false
} }
// quick log // quick log

View File

@ -100,7 +100,7 @@ function Client(/*input, output*/) {
// :TODO: clean this up: We have a ugly transition state in which we have a pure raw config vs a ConfigLoader in which get() must be called // :TODO: clean this up: We have a ugly transition state in which we have a pure raw config vs a ConfigLoader in which get() must be called
try { try {
return this.currentThemeConfig.get(); return this.currentThemeConfig.get();
} catch(e) { } catch (e) {
return this.currentThemeConfig; return this.currentThemeConfig;
} }
} else { } else {

View File

@ -79,6 +79,7 @@ function getActiveConnectionList(
isSecure: ac.session.isSecure, isSecure: ac.session.isSecure,
isVisible: ac.user.isVisible(), isVisible: ac.user.isVisible(),
isAvailable: ac.user.isAvailable(), isAvailable: ac.user.isAvailable(),
remoteAddress: ac.friendlyRemoteAddress(),
}; };
// //

View File

@ -439,11 +439,6 @@ exports.getModule = class WaitingForCallerModule extends MenuModule {
totalFiles: fileAreaStats.totalFiles || 0, totalFiles: fileAreaStats.totalFiles || 0,
totalFileBytes: fileAreaStats.totalFileBytes || 0, totalFileBytes: fileAreaStats.totalFileBytes || 0,
// totalUploads :
// totalUploadBytes :
// totalDownloads :
// totalDownloadBytes :
// Today's Stats // Today's Stats
callsToday: StatLog.getSystemStatNum(SysProps.LoginsToday), callsToday: StatLog.getSystemStatNum(SysProps.LoginsToday),
postsToday: StatLog.getSystemStatNum(SysProps.MessagesToday), postsToday: StatLog.getSystemStatNum(SysProps.MessagesToday),
@ -532,9 +527,24 @@ exports.getModule = class WaitingForCallerModule extends MenuModule {
}); });
}); });
// If this is our first pass, we'll also update the selection
const firstStatusRefresh = nodeStatusView.getCount() === 0;
// :TODO: Currently this always redraws due to setItems(). We really need painters alg.; The alternative now is to compare items... yuk. // :TODO: Currently this always redraws due to setItems(). We really need painters alg.; The alternative now is to compare items... yuk.
nodeStatusView.setItems(nodeStatusItems); nodeStatusView.setItems(nodeStatusItems);
this._selectNodeByIndex(nodeStatusView, this.selectedNodeStatusIndex); // redraws this._selectNodeByIndex(nodeStatusView, this.selectedNodeStatusIndex); // redraws
if (firstStatusRefresh) {
const nodeStatusSelectionView = this.getView(
'main',
MciViewIds.main.selectedNodeStatusInfo
);
if (nodeStatusSelectionView) {
const item = nodeStatusView.getItems()[0];
this._updateNodeStatusSelection(nodeStatusSelectionView, item);
}
}
return cb(null); return cb(null);
} }

View File

@ -57,7 +57,9 @@ exports.getModule = class WhosOnlineModule extends MenuModule {
.map(oe => .map(oe =>
Object.assign(oe, { Object.assign(oe, {
text: oe.userName, text: oe.userName,
timeOn: _.upperFirst(oe.timeOn.humanize()), timeOn: oe.timeOn
? _.upperFirst(oe.timeOn.humanize())
: 0, // :TODO: fix me. We can always track time...
}) })
); );

View File

@ -5,6 +5,8 @@ title: Waiting For Caller (WFC)
## The Waiting For Caller (WFC) Module ## The Waiting For Caller (WFC) Module
The `wfc.js` module provides a Waiting For Caller (WFC) type dashboard from a bygone era. Many traditional features are available including newer concepts for modern times. Node spy is left out as it feels like something that should be left in the past. The `wfc.js` module provides a Waiting For Caller (WFC) type dashboard from a bygone era. Many traditional features are available including newer concepts for modern times. Node spy is left out as it feels like something that should be left in the past.
![WFC](../../assets/images/wfc.png)<br/>
## Accessing the WFC ## Accessing the WFC
By default, the WFC may be accessed via the `!WFC` main menu command when connected over a secure connection via a user with the proper [ACS](../configuration/acs.md). This can be configured as per any other menu in the system. Note that ENiGMA½ does not expose the WFC as a standalone application as this would be much less flexible. To connect locally, simply use your favorite terminal or for example: `ssh -l yourname localhost 8889`. See **Security** below for more information. By default, the WFC may be accessed via the `!WFC` main menu command when connected over a secure connection via a user with the proper [ACS](../configuration/acs.md). This can be configured as per any other menu in the system. Note that ENiGMA½ does not expose the WFC as a standalone application as this would be much less flexible. To connect locally, simply use your favorite terminal or for example: `ssh -l yourname localhost 8889`. See **Security** below for more information.

BIN
docs/assets/images/wfc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB