diff --git a/WHATSNEW.md b/WHATSNEW.md index 4ae304d6..da29647a 100644 --- a/WHATSNEW.md +++ b/WHATSNEW.md @@ -2,11 +2,16 @@ This document attempts to track **major** changes and additions in ENiGMA½. For details, see GitHub. ## 0.0.13-beta -* Removed terminal `cursor position reports` from most locations in the code. This should greatly increase the number of terminal programs that work with Enigma 1/2. For more information, see [Issue #222](https://github.com/NuSkooler/enigma-bbs/issues/222). This may also resolve other issues, such as [Issue #365](https://github.com/NuSkooler/enigma-bbs/issues/365), and [Issue #320](https://github.com/NuSkooler/enigma-bbs/issues/320). Anyone that previously had terminal incompatibilities please re-check and let us know! +* Removed terminal `cursor position reports` from most locations in the code. This should greatly increase the number of terminal programs that work with ENiGMA½. For more information, see [Issue #222](https://github.com/NuSkooler/enigma-bbs/issues/222). This may also resolve other issues, such as [Issue #365](https://github.com/NuSkooler/enigma-bbs/issues/365), and [Issue #320](https://github.com/NuSkooler/enigma-bbs/issues/320). Anyone that previously had terminal incompatibilities please re-check and let us know! * Bumped up the minimum [Node.js](https://nodejs.org/en/) version to V14. This will allow more expressive Javascript programming syntax with ECMAScript 2020 to improve the development experience. * Added new configuration options for `term.checkUtf8Encoding`, `term.checkAnsiHomePostion`, `term.cp437TermList`, and `term.utf8TermList`. More information on these options is available in `UPGRADE.md` +* New Waiting For Caller (WFC) support via the `wfc.js` module. +* Many new system statistics available via the StatLog such as current and average load, memory, etc. +* Many new MCI codes: `MB`, `MF`, `LA`, `CL`, `UU`, `FT`, `DD`, `FB`, `DB`, `LC`, `LT`, `LD`, and more. See [MCI](./docs/art/mci.md). +* SyncTERM style font support detection. * Many additional backward-compatible bug fixes since the first release of 0.0.12-beta. See the [project repository](https://github.com/NuSkooler/enigma-bbs) for more information. + ## 0.0.12-beta * The `master` branch has become mainline. What this means to users is `git pull` will always give you the latest and greatest. Make sure to read [Updating](./docs/admin/updating.md) and keep an eye on `WHATSNEW.md` (this file) and [UPGRADE](UPGRADE.md)! See also [ticket #276](https://github.com/NuSkooler/enigma-bbs/issues/276). * Development now occurs against [Node.js 14 LTS](https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V14.md). diff --git a/art/themes/luciano_blocktronics/theme.hjson b/art/themes/luciano_blocktronics/theme.hjson index 4353a1fe..1e2f9b4a 100644 --- a/art/themes/luciano_blocktronics/theme.hjson +++ b/art/themes/luciano_blocktronics/theme.hjson @@ -249,13 +249,21 @@ mainMenuWaitingForCaller: { config: { nowDateTimeFormat: "|00|11dddd|08, |11MMMM Do YYYY |08/ |11h|08:|11mm|08:|11ss|03a" - lastLoginDateTimeFormat: "|00|11ddd h|08:|11mm|03a" + lastLoginDateTimeFormat: "|00|10ddd hh|08:|10mm|02a" mainInfoFormat10: "|00|11{now} {currentUserName} |08- |03mail|08: " mainInfoFormat11: "|00|10{callsToday:>5}" mainInfoFormat12: "|00|10{postsToday:>5}" - mainInfoFormat19: "|00|10{lastLoginUserName:<19} |02{lastLogin}" + mainInfoFormat18: "|00|10{lastLoginUserName:<27} |02{lastLogin}" + + mainInfoFormat19: "|00|10{freeMemoryBytes!sizeWithoutAbbr} |02{freeMemoryBytes!sizeAbbr} free |08/ |10{totalMemoryBytes!sizeWithoutAbbr} |02{totalMemoryBytes!sizeAbbr}" + mainInfoFormat20: "|00|10{systemCurrentLoad} |02% |08/ |10{systemAvgLoad} |02load avg|08." + mainInfoFormat21: "|00|10{processUptimeSeconds!durationSeconds}" + + mainInfoFormat23: "|00|10{totalCalls:>5}" + mainInfoFormat24: "|00|10{totalPosts:>5}" + mainInfoFormat22: "|00|10{totalFiles} |08/ |10{totalFileBytes!sizeWithoutAbbr} |02{totalFileBytes!sizeAbbr}" quickLogLevel: info quickLogLevelIndicators: { @@ -269,15 +277,17 @@ } 0: { mci: { + TL19: { width: 23 } + TL20: { width: 23 } VM1: { height: 5 widht: 37 - itemFormat: "|00|11{node:<3.2} |10{userName:>13} |08> |04{action:<14.13} |14{serverName}" + itemFormat: "|00|11{node:<3.2} |10{userName:>13} |08> |02{action:<14.13} |14{serverName}" } VM2: { height: 5 width: 73 - itemFormat: "{levelIndicator} |15{timestamp} |07{message}" + itemFormat: "{levelIndicator} |15{timestamp} |07{message:<51.50}" } } } diff --git a/art/themes/luciano_blocktronics/wfc.ans b/art/themes/luciano_blocktronics/wfc.ans index b682f92a..a8f5087a 100644 Binary files a/art/themes/luciano_blocktronics/wfc.ans and b/art/themes/luciano_blocktronics/wfc.ans differ diff --git a/core/stat_log.js b/core/stat_log.js index fee54a0f..5595b203 100644 --- a/core/stat_log.js +++ b/core/stat_log.js @@ -366,7 +366,7 @@ class StatLog { const basicSysInfo = { mem : 'total, free', - currentLoad : 'avgload, currentLoad', + currentLoad : 'avgLoad, currentLoad', }; SysInfo.get(basicSysInfo) @@ -380,8 +380,8 @@ class StatLog { const loadStats = { // Not avail on BSD, yet. - average : _.get(sysInfo, 'currentLoad.avgload', 0), - current : _.get(sysInfo, 'currentLoad.currentLoad', 0), + average : _.get(sysInfo, 'currentLoad.avgLoad', 0).toFixed(2), + current : _.get(sysInfo, 'currentLoad.currentLoad', 0).toFixed(2), }; this.setNonPersistentSystemStat(SysProps.SystemLoadStats, loadStats); diff --git a/core/view.js b/core/view.js index 1a44d830..7f8df248 100644 --- a/core/view.js +++ b/core/view.js @@ -120,7 +120,7 @@ View.prototype.setPosition = function(pos) { // // Allow the following forms: [row, col], { row : r, col : c }, or (row, col) // - if(util.isArray(pos)) { + if(Array.isArray(pos)) { this.position.row = pos[0]; this.position.col = pos[1]; } else if(_.isNumber(pos.row) && _.isNumber(pos.col)) { @@ -259,7 +259,7 @@ View.prototype.setFocusProperty = function(focused) { }; View.prototype.setFocus = function(focused) { - // Call separate method to differentiate between a value set as a + // Call separate method to differentiate between a value set as a // property vs focus programmatically called. this.setFocusProperty(focused); this.restoreCursor(); diff --git a/core/wfc.js b/core/wfc.js index 6260f6ec..a94bfb42 100644 --- a/core/wfc.js +++ b/core/wfc.js @@ -99,12 +99,18 @@ exports.getModule = class WaitingForCallerModule extends MenuModule { }); } + enter() { + this.client.stopIdleMonitor(); + super.enter(); + } + leave() { _.remove(Log.log.streams, stream => { return stream.name === 'wfc-ringbuffer'; }); this._stopRefreshing(); + this.client.startIdleMonitor(); super.leave(); } diff --git a/docs/_docs/art/mci.md b/docs/_docs/art/mci.md index 43c08162..3d7a0c19 100644 --- a/docs/_docs/art/mci.md +++ b/docs/_docs/art/mci.md @@ -97,8 +97,8 @@ There are many predefined MCI codes that can be used anywhere on the system (pla | `DB` | Total download amount *today* (formatted to appropriate bytes/megs/etc. ) | | `MB` | System memory | | `MF` | System _free_ memory | -| `LA` | System load average (e.g. 0.25)
(Not available for all platforms) | -| `CL` | System current load percentage
(Not available for all platforms) | +| `LA` | System load average (e.g. 0.25)
(May not be available on some platforms) | +| `CL` | System current load percentage
(May not be available on some platforms) | | `UU` | System uptime in friendly format | | `LC` | Last caller to the system (username) | | `LT` | Time of last caller | @@ -135,7 +135,7 @@ a Vertical Menu (`%VM`): Old-school BBSers may recognize this as a lightbar menu | `BT` | Button | A button | ...it's a button. See [Button](views/button_view.md) | | `VM` | Vertical Menu | A vertical menu | AKA a vertical lightbar; Useful for lists. See [Vertical Menu](views/vertical_menu_view.md) | | `HM` | Horizontal Menu | A horizontal menu | AKA a horizontal lightbar. See [Horizontal Menu](views/horizontal_menu_view.md) | -| `FM` | Full Menu | A menu that can go both vertical and horizontal. | See [Full Menu](views/full_menu_view.md) | +| `FM` | Full Menu | A menu that can go both vertical and horizontal. | See [Full Menu](views/full_menu_view.md) | | `SM` | Spinner Menu | A spinner input control | Select *one* from multiple options. See [Spinner Menu](views/spinner_menu_view.md) | | `TM` | Toggle Menu | A toggle menu | Commonly used for Yes/No style input. See [Toggle Menu](views/toggle_menu_view.md)| | `PL` | Predefined Label | Show environment information | See [Predefined Label](views/predefined_label_view.md)| diff --git a/package.json b/package.json index efb1ea5d..8dbb5a6a 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "uuid-parse": "1.1.0", "ws": "7.4.3", "yazl": "^2.5.1", - "systeminformation" : "^4.27.5" + "systeminformation" : "^5.11.14" }, "devDependencies": { "eslint": "^8.13.0" diff --git a/yarn.lock b/yarn.lock index e3d6607f..3a038a02 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1821,10 +1821,10 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -systeminformation@^4.27.5: - version "4.34.23" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-4.34.23.tgz#54c54ced5adc49c27cda953b73c0819ed56edd45" - integrity sha512-33+lQwlLxXoxy0o9WLOgw8OjbXeS3Jv+pSl+nxKc2AOClBI28HsdRPpH0u9Xa9OVjHLT9vonnOMw1ug7YXI0dA== +systeminformation@^5.11.14: + version "5.11.14" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.11.14.tgz#21fcb6f05d33e17d69c236b9c1b3d9c53d1d2b3a" + integrity sha512-m8CJx3fIhKohanB0ExTk5q53uI1J0g5B09p77kU+KxnxRVpADVqTAwCg1PFelqKsj4LHd+qmVnumb511Hg4xow== tar@^4: version "4.4.19"