diff --git a/backend/main.py b/backend/main.py index 8c84f5b..4c973dc 100644 --- a/backend/main.py +++ b/backend/main.py @@ -410,7 +410,7 @@ async def serve_media(path: str, request: _Request): raise _HE(404, "Nicht gefunden.") return _media_response(filepath) -APP_VER = "999" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "1000" # 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 7e5fe33..d7eaab5 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 = '999'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1000'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← 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/landing.html b/backend/static/landing.html index 561a710..7348db0 100644 --- a/backend/static/landing.html +++ b/backend/static/landing.html @@ -741,17 +741,7 @@ Made in Germany Offline-fähig -
+ @@ -1576,30 +1566,36 @@ fetch('/api/stats/public') .then(function(r) { return r.json(); }) .then(function(d) { - var ids = { - users: ['stat-users', 'big-users'], - dogs: ['stat-dogs', 'big-dogs'], - km: ['stat-km', 'big-km'], - forum_posts: [null, 'big-posts'], - }; function set(id, val) { var el = document.getElementById(id); if (el) el.textContent = fmt.format(val); } - set('stat-users', d.users); - set('stat-dogs', d.dogs); - set('stat-km', d.km); - set('big-users', d.users); - set('big-dogs', d.dogs); - set('big-km', d.km); - set('big-posts', d.forum_posts); - set('big-diary', d.diary_entries); - set('stat-diary', d.diary_entries); - set('stat-kotbeutel', d.kotbeutel); - set('big-kotbeutel', d.kotbeutel); + // Stats-Band (weiter unten) + set('big-users', d.users); + set('big-dogs', d.dogs); + set('big-km', d.km); + set('big-posts', d.forum_posts); + set('big-diary', d.diary_entries); + set('big-kotbeutel', d.kotbeutel); + // Hero-Streifen: aufsteigend nach Wert sortiert, dynamisch aufgebaut var heroStats = document.getElementById('hero-stats'); - if (heroStats && d.users > 0) heroStats.style.display = 'flex'; + if (!heroStats || !d.users) return; + + var items = [ + { val: d.users, label: 'Hundemenschen' }, + { val: d.dogs, label: 'Hunde' }, + { val: d.km, label: 'km Gassi-Wege' }, + { val: d.diary_entries, label: 'Tagebuch-Einträge' }, + { val: d.kotbeutel, label: 'Mülleimer für Kotbeutel'}, + ]; + items.sort(function(a, b) { return a.val - b.val; }); + + heroStats.innerHTML = items.map(function(item, i) { + return (i > 0 ? '·' : '') + + '' + fmt.format(item.val) + ' ' + item.label; + }).join(''); + heroStats.style.display = 'flex'; }) .catch(function() {}); diff --git a/backend/static/sw.js b/backend/static/sw.js index 9675dee..84e2787 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-v999'; +const CACHE_VERSION = 'by-v1000'; 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