Skip to content

Commit 29d6607

Browse files
A hidden ^WebTerminal("CleanStart") option add, no Auth message fix
1 parent e967a80 commit 29d6607

8 files changed

Lines changed: 33 additions & 10 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"printableName": "Cache Web Terminal",
66
"description": "Web-based terminal emulator for Caché administering.",
77
"author": "ZitRo",
8-
"version": "4.0.0-beta.4",
8+
"version": "4.0.0-beta.5",
99
"gaID": "UA-83005064-2",
1010
"releaseNumber": 26,
1111
"scripts": {

readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,4 +182,4 @@ function myInitHandler (terminal) {
182182
iFrame.addEventListener("load", function () {
183183
iFrame.contentWindow.onTerminalInit(myInitHandler); // handle terminal initialization
184184
});
185-
```
185+
```

src/client/js/config.js

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { onInit } from "./init";
66

77
const STORAGE_NAME = `terminal-config`;
88
const boolean = ["true", "false"],
9+
temps = {},
910
boolTransform = (a) => a === `true`,
1011
intTransform = (a) => parseInt(a);
1112

@@ -66,7 +67,8 @@ let config =
6667
onInit(() => locale.setLocale(config.language));
6768

6869
export function get (key) {
69-
return typeof config[key] === "undefined" ? null : config[key];
70+
return typeof temps[key] !== "undefined" ? temps[key]
71+
: typeof config[key] === "undefined" ? null : config[key];
7072
}
7173

7274
/**
@@ -81,7 +83,7 @@ function onUpdate (updated) {
8183
}
8284

8385
/**
84-
*
86+
* Set the configuration option.
8587
* @param {string} key
8688
* @param {*} value
8789
* @param {boolean} localOnly - Updates only the local values.
@@ -110,6 +112,18 @@ export function set (key, value, localOnly = false) {
110112
return "";
111113
}
112114

115+
/**
116+
* Sets the option only for the current session.
117+
* @param {string} key
118+
* @param {*} value
119+
*/
120+
export function setTemp (key, value) {
121+
if (!metadata.hasOwnProperty(key)
122+
|| (metadata[key].values && metadata[key].values.indexOf(value) === -1))
123+
return;
124+
temps[key] = metadata[key].transform ? metadata[key].transform(value) : value;
125+
}
126+
113127
export function reset () {
114128
for (let p in config) {
115129
if (metadata[p] && !metadata[p].global)

src/client/js/network/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ export function checkUpdate () {
1919
}
2020

2121
function handleNetworkData (data) {
22+
if (!config.get(`updateCheck`)) {
23+
return;
24+
}
2225
input.clearPrompt();
2326
if (data[`motd`] && config.get(`initMessage`))
2427
output.printLine(data[`motd`]);

src/client/js/server/handlers.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ import * as config from "../config";
77
import * as analytics from "../analytics";
88

99
export function init (data = {}) {
10-
if (config.get("initMessage")) {
10+
if (config.get("initMessage") && !data["cleanStart"]) {
1111
output.printLine(`CWTv${ terminal.VERSION } ${ data["system"] }:\x1b[(keyword)m${
1212
data["username"] }\x1b[0m${ data["name"] ? ` (${ data["name"] })` : `` }`);
1313
if (data["firstLaunch"])
1414
output.printLine(locale.get(`firstLaunchMessage`));
1515
}
16+
if (data["cleanStart"]) config.setTemp("updateCheck", "false");
1617
analytics.collect(data);
1718
config.set(`serverName`, data["name"], true);
1819
document.title = `${ data["name"] || data["system"] } - WebTerminal`;

src/client/js/server/index.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,4 @@ export function send (handler, data, callback) {
140140
firstMessage = message;
141141
stack.push(message);
142142
freeStack();
143-
}
144-
145-
// todo: remove after test
146-
window.send = send;
143+
}

src/cls/WebTerminal/Engine.cls

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ Method SendLoginInfo()
181181
set obj = ##class(%ZEN.proxyObject).%New()
182182
set obj.username = $USERNAME
183183
set obj.name = $get(^WebTerminal("Name"))
184+
set obj.cleanStart = $data(^WebTerminal("CleanStart"))
184185
set obj.system = $SYSTEM
185186
set obj.firstLaunch = ($get(^WebTerminal("FirstLaunch"), 1) '= 0)
186187
set obj.InstanceGUID = ##class(%SYS.System).InstanceGUID()
@@ -192,7 +193,7 @@ Method SendLoginInfo()
192193
/// Triggered when new connection established.
193194
Method Server() As %Status
194195
{
195-
set authRes = ..RequireAuthorization()
196+
set authRes = ..RequireAuthorization() // $LB("", $Namespace)
196197
set authMessage = $ListGet(authRes, 1)
197198
if (authMessage = "") {
198199
set namespace = $ListGet(authRes, 2)

src/cls/WebTerminal/Handlers.cls

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,4 +220,11 @@ ClassMethod TracingStatus (client As WebTerminal.Engine, data As %ZEN.proxyObjec
220220
return $$$OK
221221
}
222222

223+
ClassMethod Auth (client As WebTerminal.Engine, data As %ZEN.proxyObject = "") As %Status
224+
{
225+
// This method is implemented in Engine class. In case of auth is off, this method handles
226+
// the auth request and never respond (like when you send something to /dev/null).
227+
return $$$OK
228+
}
229+
223230
}

0 commit comments

Comments
 (0)