Unify browser connection controls (Connect / Disconnect)
This commit is contained in:
+14
-11
@@ -119,8 +119,7 @@ static const char s_index_html[] =
|
||||
"<div class=\"button-row\">\n"
|
||||
"<button id=\"request-control\" class=\"button primary\" type=\"button\" disabled>Request control</button>\n"
|
||||
"<button id=\"release-control\" class=\"button danger\" type=\"button\" disabled>Release control</button>\n"
|
||||
"<button id=\"disconnect\" class=\"button danger\" type=\"button\">Disconnect</button>\n"
|
||||
"<button id=\"reconnect\" class=\"button\" type=\"button\">Reconnect</button>\n"
|
||||
"<button id=\"connection-toggle\" class=\"button danger\" type=\"button\">Disconnect</button>\n"
|
||||
"</div>\n"
|
||||
"<p id=\"input-state\" class=\"input-state\" data-enabled=\"false\" aria-live=\"polite\">"
|
||||
"Observer mode — terminal input is disabled.</p>\n"
|
||||
@@ -152,8 +151,7 @@ static const char s_app_js[] =
|
||||
"const connectionDetail = element('connection-detail');\n"
|
||||
"const requestControl = element('request-control');\n"
|
||||
"const releaseControl = element('release-control');\n"
|
||||
"const disconnectButton = element('disconnect');\n"
|
||||
"const reconnectButton = element('reconnect');\n"
|
||||
"const connectionToggle = element('connection-toggle');\n"
|
||||
"const terminalHost = element('terminal');\n"
|
||||
"const terminal = new Terminal({\n"
|
||||
" allowProposedApi: false, convertEol: false, cursorBlink: true, disableStdin: true,\n"
|
||||
@@ -196,7 +194,10 @@ static const char s_app_js[] =
|
||||
" terminal.options.disableStdin = !writer;\n"
|
||||
" requestControl.disabled = !socketOpen() || writer;\n"
|
||||
" releaseControl.disabled = !socketOpen() || !writer;\n"
|
||||
" disconnectButton.disabled = unloading || (!reconnectEnabled && socket === null && ticketAbort === null);\n"
|
||||
" const connectionActive = reconnectEnabled || socket !== null || ticketAbort !== null || reconnectTimer !== null;\n"
|
||||
" connectionToggle.disabled = unloading;\n"
|
||||
" connectionToggle.textContent = connectionActive ? 'Disconnect' : 'Connect';\n"
|
||||
" connectionToggle.classList.toggle('danger', connectionActive);\n"
|
||||
" inputState.dataset.enabled = writer ? 'true' : 'false';\n"
|
||||
" inputState.textContent = writer\n"
|
||||
" ? 'Writer mode — terminal input is enabled.'\n"
|
||||
@@ -335,7 +336,14 @@ static const char s_app_js[] =
|
||||
"releaseControl.addEventListener('click', () => {\n"
|
||||
" if (role === 'writer' && socketOpen()) socket.send('release-writer');\n"
|
||||
"});\n"
|
||||
"disconnectButton.addEventListener('click', () => {\n"
|
||||
"connectionToggle.addEventListener('click', () => {\n"
|
||||
" const connectionActive = reconnectEnabled || socket !== null || ticketAbort !== null || reconnectTimer !== null;\n"
|
||||
" if (!connectionActive) {\n"
|
||||
" reconnectEnabled = true;\n"
|
||||
" reconnectDelay = 1000;\n"
|
||||
" connect();\n"
|
||||
" return;\n"
|
||||
" }\n"
|
||||
" reconnectEnabled = false;\n"
|
||||
" ++connectionGeneration;\n"
|
||||
" clearReconnectTimer();\n"
|
||||
@@ -346,11 +354,6 @@ static const char s_app_js[] =
|
||||
" setRole('observer');\n"
|
||||
" setConnection('Disconnected', 'warn', 'Disconnected by user. Automatic reconnect is paused.');\n"
|
||||
"});\n"
|
||||
"reconnectButton.addEventListener('click', () => {\n"
|
||||
" reconnectEnabled = true;\n"
|
||||
" reconnectDelay = 1000;\n"
|
||||
" connect();\n"
|
||||
"});\n"
|
||||
"const fitTerminal = () => {\n"
|
||||
" fitFrame = 0;\n"
|
||||
" const bounds = terminalHost.getBoundingClientRect();\n"
|
||||
|
||||
Reference in New Issue
Block a user