From aaecfc435dd1462f5892cdd21eb9abd924aa41cc Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Thu, 1 Oct 2026 11:34:55 +0200 Subject: [PATCH] fix(theme): Theme aus den wirksamen statt den rohen Einstellungen anwenden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit initCalendar baute mit mergeEffective() korrekt die wirksamen Einstellungen zusammen, benutzte danach aber die rohe Server-Antwort zum Anwenden: applyTheme(settings) statt applyTheme(state.settings) Fuer jede Einstellung, deren Sync-Flag aus ist, ist der wirksame Wert laut effectiveValue() der browser-lokale — der wurde damit stillschweigend ignoriert. Die Einstellungstabelle zeigte also einen Wert an, waehrend die Oberflaeche einen anderen benutzte. Derselbe Fehler bei setLang: die Zeile mit dem wirksamen Wert wurde wenige Zeilen spaeter vom rohen Server-Wert ueberschrieben. Die doppelte Zuweisung faellt weg, die richtige bleibt. Co-Authored-By: Claude Opus 5 --- frontend/js/calendar.js | 8 +++++--- frontend/js/version.js | 2 +- frontend/sw.js | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/js/calendar.js b/frontend/js/calendar.js index a9b54a5..ecfb2d9 100644 --- a/frontend/js/calendar.js +++ b/frontend/js/calendar.js @@ -153,9 +153,11 @@ export async function initCalendar() { // initial fetchAndRender) so a reload reopens settings instead of stripping it. uiSettingsOpen = urlState.settings === true; - setLang(settings.language || 'de'); - applyTheme(settings); - applyFavicon(settings.primary_color); + // state.settings, not the raw server response: for any key whose sync flag + // is off the effective value is this browser's local one, and using the raw + // value here silently ignored it (and clobbered the setLang above). + applyTheme(state.settings); + applyFavicon(state.settings.primary_color); updateViewButtons(); renderCalendarList(); renderMiniCal(); diff --git a/frontend/js/version.js b/frontend/js/version.js index efa7fa2..398f93f 100644 --- a/frontend/js/version.js +++ b/frontend/js/version.js @@ -1,2 +1,2 @@ // Increment APP_VERSION with every code change -export const APP_VERSION = 'v95'; +export const APP_VERSION = 'v96'; diff --git a/frontend/sw.js b/frontend/sw.js index d4598a3..8f5809d 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -7,7 +7,7 @@ // the entry HTML / version files). New releases take effect on the next // reload, no manual SW unregister required. -const CACHE_VERSION = 'calendarr-v41'; +const CACHE_VERSION = 'calendarr-v42'; const OFFLINE_SHELL = ['/', '/index.html']; self.addEventListener('install', event => {