Fix: Session-Timer fehlt auf Hellevator / Kämpfe / Posteingang #36

Merged
DasAoD merged 1 commit from fix/session-timer-missing-on-some-pages into main 2026-09-06 12:53:40 +02:00
Owner

Problem

Nach #35 lief der Idle-Timeout auf Hellevator, Kämpfe (fights.php) und Posteingang (inbox.php) ins Leere: Countdown und Warndialog fehlten, die Session wurde dort ohne Vorwarnung beendet. Auch Einstellungen (settings.php) war betroffen.

Ursache: Diese Seiten rendern die Navbar, rufen aber renderScripts() nicht auf (eigene inline-<script>-Blöcke). Damit gab es kein window.SF_SESSION und session-timeout.js wurde nie geladen.

Fix

Config + Loader wandern von renderScripts() in renderNavbar() (direkt nach </nav>) – dort sitzt der #sessionTimer-Span ohnehin schon. renderNavbar() wird von jeder eingeloggten Seite aufgerufen, also greift der Timer jetzt überall einheitlich. renderScripts() lädt wieder nur overlay.js + main.js.

session-timeout.js ist bewusst standalone (kein jQuery/main.js nötig, nur die .confirm-*-Styles aus main.css).

Nachtrag: die zweite Nachbesserung (Timer nur bei echten Interaktionen zurücksetzen) ist nicht Teil dieses PRs – siehe Folge-PR.

🤖 Generated with Claude Code

## Problem Nach #35 lief der Idle-Timeout auf **Hellevator**, **Kämpfe** (`fights.php`) und **Posteingang** (`inbox.php`) ins Leere: Countdown und Warndialog fehlten, die Session wurde dort ohne Vorwarnung beendet. Auch **Einstellungen** (`settings.php`) war betroffen. **Ursache:** Diese Seiten rendern die Navbar, rufen aber `renderScripts()` **nicht** auf (eigene inline-`<script>`-Blöcke). Damit gab es kein `window.SF_SESSION` und `session-timeout.js` wurde nie geladen. ## Fix Config + Loader wandern von `renderScripts()` in **`renderNavbar()`** (direkt nach `</nav>`) – dort sitzt der `#sessionTimer`-Span ohnehin schon. `renderNavbar()` wird von jeder eingeloggten Seite aufgerufen, also greift der Timer jetzt überall einheitlich. `renderScripts()` lädt wieder nur `overlay.js` + `main.js`. `session-timeout.js` ist bewusst standalone (kein jQuery/main.js nötig, nur die `.confirm-*`-Styles aus `main.css`). > Nachtrag: die zweite Nachbesserung (Timer nur bei echten Interaktionen zurücksetzen) ist **nicht** Teil dieses PRs – siehe Folge-PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- fights.php, hellevator.php and inbox.php render the navbar but not renderScripts(), so they never got window.SF_SESSION / session-timeout.js — the session expired there with no countdown or warning
- move the config + loader emit into renderNavbar() (right after </nav>), where the #sessionTimer span already lives, so every authenticated page with a navbar gets it (also settings.php)
- renderScripts() reverted to just overlay.js + main.js

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
DasAoD merged commit 7aba361886 into main 2026-09-06 12:53:40 +02:00
DasAoD changed title from Fix: Session-Timer fehlt auf Hellevator / Kämpfe / Posteingang to Fix: Session-Timer – überall sichtbar + nur bei echten Interaktionen zurücksetzen 2026-09-06 12:58:21 +02:00
DasAoD changed title from Fix: Session-Timer – überall sichtbar + nur bei echten Interaktionen zurücksetzen to Fix: Session-Timer fehlt auf Hellevator / Kämpfe / Posteingang 2026-09-06 12:58:48 +02:00
Sign in to join this conversation.
No description provided.