From 959fff4651084f37475f3a616768f98d7d9f9d9a Mon Sep 17 00:00:00 2001 From: rene Date: Thu, 14 May 2026 16:41:52 +0200 Subject: [PATCH] =?UTF-8?q?UX:=20K=C3=BCndigung-Toast=20zeigt=20Ablaufdatu?= =?UTF-8?q?m=20(SW=20by-v949)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/main.py | 2 +- backend/static/js/app.js | 2 +- backend/static/js/pages/settings.js | 12 +++++++++++- backend/static/sw.js | 2 +- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/backend/main.py b/backend/main.py index c1aee66..aab3ca0 100644 --- a/backend/main.py +++ b/backend/main.py @@ -406,7 +406,7 @@ async def serve_media(path: str, request: _Request): raise _HE(404, "Nicht gefunden.") return _media_response(filepath) -APP_VER = "948" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "949" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/static/js/app.js b/backend/static/js/app.js index a2302f4..d0cdbf1 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '948'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '949'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.5.1'; // ← semantische Version, wird bei make release gesetzt const IS_STAGING = location.hostname === 'staging.banyaro.app'; // Cache-Bust-Parameter nach Update-Reload sofort entfernen diff --git a/backend/static/js/pages/settings.js b/backend/static/js/pages/settings.js index 89e527b..d5cb453 100644 --- a/backend/static/js/pages/settings.js +++ b/backend/static/js/pages/settings.js @@ -422,7 +422,17 @@ window.Page_settings = (() => { const fresh = await API.auth.me(); Object.assign(_appState.user, fresh); UI.modal.close(); - UI.toast.success('Kündigung bestätigt. Eine Bestätigungsmail wurde gesendet.'); + const tier = fresh.subscription_tier || ''; + const label = { pro: 'Pro', breeder: 'Züchter' }[tier] || tier; + const exp = fresh.subscription_expires_at; + const expFmt = exp + ? new Date(exp).toLocaleDateString('de-DE', {day:'numeric',month:'long',year:'numeric'}) + : null; + UI.toast.success( + expFmt + ? `Kündigung bestätigt — ${label} läuft noch bis ${expFmt}.` + : 'Kündigung bestätigt. Eine Bestätigungsmail wurde gesendet.' + ); _render(); } catch (e) { btn.disabled = false; diff --git a/backend/static/sw.js b/backend/static/sw.js index 0242bac..cbb7241 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -3,7 +3,7 @@ Offline-Cache + Push Notifications + Tile-Cache ============================================================ */ -const CACHE_VERSION = 'by-v948'; +const CACHE_VERSION = 'by-v949'; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten const CACHE_API = 'ban-yaro-api-v1'; // API-Response-Cache