From ae54d97d96b70c3b73f288497debdb3eadff9a61 Mon Sep 17 00:00:00 2001 From: Kantine Wrapper Date: Thu, 26 Feb 2026 10:35:28 +0100 Subject: [PATCH] fix: target localStorage cleanup to kantine_ prefix to prevent host session loss (v1.4.31) --- changelog.md | 3 +++ kantine.js | 7 ++++++- version.txt | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index d953c4f..88d69a7 100755 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,6 @@ +## v1.4.31 +- 🐛 **Bugfix**: Der "Lokalen Cache leeren"-Button löscht nun gezielt nur noch Kantine-spezifische Daten (`kantine_` Präfix). Bisher wurde die gesamte `localStorage` geleert, was dazu führte, dass man auch aus der zugrundeliegenden bessa.app-Sitzung ausgeloggt wurde. + ## v1.4.30 - 🐛 **Bugfix**: Login-Sitzung (`authToken` etc.) wird nun in der `localStorage` statt `sessionStorage` gespeichert, wodurch die Anmeldung beim Öffnen von Bookmarklets in neuen Tabs/Fenstern erhalten bleibt. - 🐛 **Bugfix**: Bestell-Erinnerungscountdown und Alarm-Notifications erscheinen nun nur noch für angemeldete Nutzer. diff --git a/kantine.js b/kantine.js index 2fe4544..b6d6132 100755 --- a/kantine.js +++ b/kantine.js @@ -344,7 +344,12 @@ if (btnClearCache) { btnClearCache.addEventListener('click', () => { if (confirm('Möchtest du wirklich alle lokalen Daten (inkl. Login-Session, Cache und Einstellungen) löschen? Die Seite wird danach neu geladen.')) { - localStorage.clear(); + // Only clear our own keys so we don't destroy the host app's (Bessa's) session + Object.keys(localStorage).forEach(key => { + if (key.startsWith('kantine_')) { + localStorage.removeItem(key); + } + }); window.location.reload(); } }); diff --git a/version.txt b/version.txt index 695d5ae..218d7c8 100755 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v1.4.30 +v1.4.31