Cleanup, docs, screen shot of WFC
This commit is contained in:
parent
8a351ecd7d
commit
95183fd3b3
|
@ -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
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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(),
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
20
core/wfc.js
20
core/wfc.js
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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...
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -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.
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 54 KiB |
Loading…
Reference in New Issue