Restore saved-session preconnect UI with HttpOnly auth flow
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
// Maintainer-controlled web client version.
|
// Maintainer-controlled web client version.
|
||||||
// Format: YYYY.MM.DD Rn (example: 2026.02.20 R2)
|
// Format: YYYY.MM.DD Rn (example: 2026.02.20 R2)
|
||||||
window.CHGRID_WEB_VERSION = "2026.02.28 R316";
|
window.CHGRID_WEB_VERSION = "2026.02.28 R317";
|
||||||
// Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid.
|
// Optional display timezone for timestamps. Falls back to America/Detroit if unset/invalid.
|
||||||
window.CHGRID_TIME_ZONE = "America/Detroit";
|
window.CHGRID_TIME_ZONE = "America/Detroit";
|
||||||
|
|||||||
@@ -625,7 +625,8 @@ function applyVoiceSendPermission(): void {
|
|||||||
|
|
||||||
/** Enables/disables the connect button based on state and nickname validity. */
|
/** Enables/disables the connect button based on state and nickname validity. */
|
||||||
function updateConnectAvailability(): void {
|
function updateConnectAvailability(): void {
|
||||||
const showLogout = state.running;
|
const hasSavedSessionHint = sanitizeAuthUsername(authUsername).length > 0;
|
||||||
|
const showLogout = state.running || hasSavedSessionHint;
|
||||||
dom.logoutButton.classList.toggle('hidden', !showLogout);
|
dom.logoutButton.classList.toggle('hidden', !showLogout);
|
||||||
dom.logoutButton.disabled = !showLogout;
|
dom.logoutButton.disabled = !showLogout;
|
||||||
if (state.running) {
|
if (state.running) {
|
||||||
@@ -636,12 +637,21 @@ function updateConnectAvailability(): void {
|
|||||||
dom.authSessionView.classList.add('hidden');
|
dom.authSessionView.classList.add('hidden');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (hasSavedSessionHint) {
|
||||||
|
dom.authSessionText.textContent = `Logged in as ${sanitizeAuthUsername(authUsername)}.`;
|
||||||
|
dom.showRegisterButton.classList.add('hidden');
|
||||||
|
dom.authModeSeparator.classList.add('hidden');
|
||||||
|
dom.loginView.classList.add('hidden');
|
||||||
|
dom.registerView.classList.add('hidden');
|
||||||
|
dom.authSessionView.classList.remove('hidden');
|
||||||
|
} else {
|
||||||
dom.showRegisterButton.classList.remove('hidden');
|
dom.showRegisterButton.classList.remove('hidden');
|
||||||
dom.authModeSeparator.classList.remove('hidden');
|
dom.authModeSeparator.classList.remove('hidden');
|
||||||
dom.showRegisterButton.textContent = authMode === 'login' ? 'Register' : 'Login';
|
dom.showRegisterButton.textContent = authMode === 'login' ? 'Register' : 'Login';
|
||||||
dom.loginView.classList.toggle('hidden', authMode !== 'login');
|
dom.loginView.classList.toggle('hidden', authMode !== 'login');
|
||||||
dom.registerView.classList.toggle('hidden', authMode !== 'register');
|
dom.registerView.classList.toggle('hidden', authMode !== 'register');
|
||||||
dom.authSessionView.classList.add('hidden');
|
dom.authSessionView.classList.add('hidden');
|
||||||
|
}
|
||||||
const usernameMin = authPolicy?.usernameMinLength ?? 1;
|
const usernameMin = authPolicy?.usernameMinLength ?? 1;
|
||||||
const passwordMin = authPolicy?.passwordMinLength ?? 1;
|
const passwordMin = authPolicy?.passwordMinLength ?? 1;
|
||||||
const hasLoginCredentials =
|
const hasLoginCredentials =
|
||||||
@@ -651,8 +661,13 @@ function updateConnectAvailability(): void {
|
|||||||
dom.registerPassword.value.trim().length >= passwordMin &&
|
dom.registerPassword.value.trim().length >= passwordMin &&
|
||||||
dom.registerPassword.value === dom.registerPasswordConfirm.value;
|
dom.registerPassword.value === dom.registerPasswordConfirm.value;
|
||||||
const authReady = authMode === 'login' ? true : hasRegisterCredentials;
|
const authReady = authMode === 'login' ? true : hasRegisterCredentials;
|
||||||
dom.connectButton.textContent =
|
dom.connectButton.textContent = hasSavedSessionHint
|
||||||
authMode === 'register' ? 'Register & Connect' : hasLoginCredentials ? 'Log In & Connect' : 'Connect';
|
? 'Connect'
|
||||||
|
: authMode === 'register'
|
||||||
|
? 'Register & Connect'
|
||||||
|
: hasLoginCredentials
|
||||||
|
? 'Log In & Connect'
|
||||||
|
: 'Connect';
|
||||||
dom.connectButton.disabled = mediaSession.isConnecting() || !authReady;
|
dom.connectButton.disabled = mediaSession.isConnecting() || !authReady;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user