fix: proper logout via window.handleLogout with XHR fallback

- Both buttons call window.handleLogout (AuthManager.logout) or doLogoutFallback
- doLogoutFallback: XHR POST, hides #app, shows #login-screen, clears token
- No more localStorage.clear() or hard redirect — mimics showLoginScreen()
- Removed all conflicting JS event listeners
This commit is contained in:
2026-07-24 10:03:10 -04:00
parent 14a45c9136
commit 8bbf973097
+3 -2
View File
@@ -656,12 +656,13 @@
>
</span>
</button>
<script>function doLogoutFallback(){var x=new XMLHttpRequest();x.open('POST','/api/auth/logout');x.withCredentials=true;x.onload=function(){var a=document.getElementById('app');var l=document.getElementById('login-screen');if(a)a.classList.add('hidden');if(l)l.classList.remove('hidden');try{localStorage.removeItem('obsigate-token')}catch(e){}};x.send()}</script>
<button
class="menu-list-row menu-list-button"
id="logout-btn"
type="button"
role="menuitem"
onclick="fetch('/api/auth/logout',{method:'POST',credentials:'include'}).then(function(){localStorage.clear();window.location.href='/'}).catch(function(){localStorage.clear();window.location.href='/'})"
onclick="if(window.handleLogout)window.handleLogout();else{doLogoutFallback()}"
>
<span
class="menu-list-icon"
@@ -2007,7 +2008,7 @@
<input type="text" id="profile-name" class="config-input" placeholder="Votre nom" maxlength="60">
</div>
<button class="config-save-btn" id="profile-save" data-i18n="config.save">Enregistrer</button>
<button class="config-save-btn" id="profile-logout" style="background:var(--danger-bg);color:var(--danger);border-color:var(--danger);margin-left:8px" data-i18n="config.logout" onclick="if(window.handleLogout)window.handleLogout();else{fetch('/api/auth/logout',{method:'POST',credentials:'include'}).finally(function(){window.location.href='/'})}">Déconnexion</button>
<button class="config-save-btn" id="profile-logout" style="background:var(--danger-bg);color:var(--danger);border-color:var(--danger);margin-left:8px" data-i18n="config.logout" onclick="if(window.handleLogout)window.handleLogout();else{doLogoutFallback()}">Déconnexion</button>
<span class="profile-saved" id="profile-saved" style="display:none" data-i18n="config.saved">✓ Sauvegardé</span>
</div>
</section>