From 54ee59681ed9c21aec8d6715b0f1845a82585e59 Mon Sep 17 00:00:00 2001 From: Pierre Marx Date: Wed, 18 Mar 2026 22:31:01 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20supprimer=20le=20checkbox=20D=C3=A9bloq?= =?UTF-8?q?uer=20devenu=20inutile=20(closes=20#15)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le serveur Python gère nativement le cleanup des sessions orphelines au login — plus besoin de forceDisconnect côté client. --- index.html | 12 ------- main.js | 5 --- renderer.js | 19 +++------- styles-modern.css | 90 ----------------------------------------------- 4 files changed, 5 insertions(+), 121 deletions(-) diff --git a/index.html b/index.html index 03ec5a9..8752b8c 100644 --- a/index.html +++ b/index.html @@ -38,18 +38,6 @@ - -
- - À cocher en cas de problème de connexion ou de session - bloquée. -
-
diff --git a/main.js b/main.js index 7ade4f0..3860f1a 100644 --- a/main.js +++ b/main.js @@ -395,11 +395,6 @@ ipcMain.handle('login-agent', async (event, credentials) => { try { log(`Tentative de connexion agent: ${credentials.email} Terminal: ${credentials.terminal}`); - log('Tentative de connexion agent', { - email: credentials.email, - terminal: credentials.terminal, - forceDisconnect: credentials.forceDisconnect || false - }); // Deconnecter l'adapter precedent s'il y en a un if (adapter.state === 'connected') { diff --git a/renderer.js b/renderer.js index 7f86680..9d2f738 100644 --- a/renderer.js +++ b/renderer.js @@ -170,7 +170,6 @@ async function handleLogin(e) { const accessCode = document.getElementById('accessCode').value; const password = document.getElementById('password').value; const terminal = document.getElementById('terminal').value; - const forceDisconnect = document.getElementById('forceDisconnect').checked; const errorDiv = document.getElementById('loginError'); const loginBtn = document.querySelector('#loginForm button[type="submit"]'); @@ -211,11 +210,11 @@ async function handleLogin(e) { localStorage.setItem('last-terminal', terminal); // Afficher la modal de progression de connexion - showLoginProgress(forceDisconnect); - + showLoginProgress(); + // Désactiver le bouton pendant la connexion loginBtn.disabled = true; - loginBtn.textContent = forceDisconnect ? 'Reconnexion...' : 'Connexion en cours...'; + loginBtn.textContent = 'Connexion en cours...'; errorDiv.textContent = ''; // Attendre un peu pour que l'animation soit visible @@ -227,7 +226,6 @@ async function handleLogin(e) { email: accessCode, // Utiliser directement le code agent comme email password: password, terminal: terminal, - forceDisconnect: forceDisconnect // Ajouter l'option de déconnexion forcée }; // Appeler l'authentification @@ -424,19 +422,12 @@ function resetLoginForm() { const accessCode = document.getElementById('accessCode'); const password = document.getElementById('password'); const terminal = document.getElementById('terminal'); - const forceDisconnect = document.getElementById('forceDisconnect'); const loginError = document.getElementById('loginError'); const loginBtn = document.querySelector('#loginForm button[type="submit"]'); - + if (accessCode) accessCode.value = ''; if (password) password.value = ''; - - // Réinitialiser le terminal (garder la dernière sélection si elle existe) - // Ne pas réinitialiser le terminal pour garder la préférence - - // Décocher la checkbox de déblocage - if (forceDisconnect) forceDisconnect.checked = false; - + // Vider les messages d'erreur if (loginError) loginError.textContent = ''; diff --git a/styles-modern.css b/styles-modern.css index 638a49a..157c059 100644 --- a/styles-modern.css +++ b/styles-modern.css @@ -227,96 +227,6 @@ body { font-size: 14px; } -/* Checkbox de déconnexion forcée */ -.force-disconnect-container { - margin: 25px 0 20px 0; - padding: 16px; - background: #f8f9fa; - border-radius: 8px; - border: 1px solid #e9ecef; - transition: all 0.2s ease; -} - -.force-disconnect-container:hover { - border-color: #dee2e6; - background: #f1f3f5; -} - -.checkbox-label { - display: flex; - align-items: flex-start; - cursor: pointer; - user-select: none; - font-size: 14px; - color: #333; - position: relative; -} - -.checkbox-label input[type="checkbox"] { - position: absolute; - opacity: 0; - cursor: pointer; - height: 18px; - width: 18px; - left: 0; - top: 1px; - z-index: 1; -} - -.checkbox-label::before { - content: ''; - display: inline-block; - width: 18px; - height: 18px; - margin-right: 12px; - margin-top: 1px; - border: 2px solid #dee2e6; - border-radius: 4px; - background: white; - transition: all 0.2s ease; - flex-shrink: 0; -} - -.checkbox-label input[type="checkbox"]:checked + span::before { - content: ''; - position: absolute; - left: 0; - top: 1px; - width: 18px; - height: 18px; - background: #667eea; - border: 2px solid #667eea; - border-radius: 4px; -} - -.checkbox-label input[type="checkbox"]:checked + span::after { - content: ''; - position: absolute; - left: 6px; - top: 4px; - width: 6px; - height: 11px; - border: solid white; - border-width: 0 2px 2px 0; - transform: rotate(45deg); -} - -.checkbox-label span { - font-weight: 600; - color: #495057; - letter-spacing: 0.3px; - padding-top: 1px; -} - -.checkbox-hint { - display: block; - margin-top: 6px; - margin-left: 30px; - font-size: 13px; - color: #6c757d; - line-height: 1.5; -} - /* === PAGE PRINCIPALE === */ #mainPage { flex-direction: column;