diff --git a/backend/main.py b/backend/main.py index cfd6cc7..dc31b11 100644 --- a/backend/main.py +++ b/backend/main.py @@ -327,7 +327,7 @@ MEDIA_DIR = os.getenv("MEDIA_DIR", "/data/media") os.makedirs(MEDIA_DIR, exist_ok=True) app.mount("/media", StaticFiles(directory=MEDIA_DIR), name="media") -APP_VER = "781" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "783" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/static/index.html b/backend/static/index.html index 1ed294a..dd4b114 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -575,10 +575,10 @@ - - - - + + + + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 639ec6c..8d6c130 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 = '781'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '783'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.5.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/js/worlds.js b/backend/static/js/worlds.js index 12f0deb..ef13b02 100644 --- a/backend/static/js/worlds.js +++ b/backend/static/js/worlds.js @@ -918,24 +918,24 @@ window.Worlds = (() => { } function _applyBgImage(url) { - const track = document.getElementById('worlds-track'); - if (!track) return; + const ov = document.getElementById('worlds-overlay'); + if (!ov) return; if (url) { const toLoad = new Image(); toLoad.onload = () => { _hasBgPhoto = true; - track.style.backgroundImage = `url('${url}')`; - track.style.backgroundSize = '100% auto'; - track.style.backgroundPosition = '0 40%'; - track.style.backgroundRepeat = 'no-repeat'; + ov.style.backgroundImage = `url('${url}')`; + ov.style.backgroundSize = 'cover'; + ov.style.backgroundPosition = 'center 40%'; + ov.style.backgroundRepeat = 'no-repeat'; document.getElementById('wh-photo-hint')?.remove(); }; toLoad.onerror = () => _applyBgImage(null); toLoad.src = url; } else { _hasBgPhoto = false; - track.style.backgroundImage = 'linear-gradient(160deg,#1a1f35 0%,#16213e 33%,#1a2535 67%,#0f1921 100%)'; - track.style.backgroundSize = '100% 100%'; + ov.style.backgroundImage = 'linear-gradient(160deg,#1a1f35 0%,#16213e 33%,#1a2535 67%,#0f1921 100%)'; + ov.style.backgroundSize = '100% 100%'; } } @@ -979,8 +979,8 @@ window.Worlds = (() => { const staleMin = Math.max(weatherObj.ageMin || 0, dogsObj.ageMin || 0); // Panorama-Bild setzen (nur wenn noch kein Bild vorhanden) - const track = document.getElementById('worlds-track'); - if (dog && !track?.style.backgroundImage?.startsWith('url')) { + const ov = document.getElementById('worlds-overlay'); + if (dog && !ov?.style.backgroundImage?.startsWith('url')) { _loadDailyImage(dog).then(_applyBgImage); } else if (!dog) { _applyBgImage(null); } @@ -1325,24 +1325,29 @@ window.Worlds = (() => {
-
- 🎆 - ${bday === 'today' ? '🎂' : '🎁'} - 🎇 +
+ + +
${bday === 'today' ? `Alles Gute zum ${bdayYear}. Geburtstag, ${_esc(dog.name)}!` - : `Morgen hat ${_esc(dog.name)} Geburtstag! 🥳`} + : `Morgen hat ${_esc(dog.name)} Geburtstag!`}
-
- 🎉🎊🎉 +
+ + + + +
${bdayYear ? `
- ${bday === 'today' ? `${bdayYear} Jahr${bdayYear !== 1 ? 'e' : ''} gemeinsam 🐾` : `Wird ${bdayYear} Jahr${bdayYear !== 1 ? 'e' : ''} alt`} + ${bday === 'today' ? `${bdayYear} Jahr${bdayYear !== 1 ? 'e' : ''} gemeinsam` : `Wird ${bdayYear} Jahr${bdayYear !== 1 ? 'e' : ''} alt`}
` : ''} -
- ${bday === 'today' ? '🐾 Was hat sich Ban Yaro gewünscht? →' : '✨ KI-Überraschungsideen →'} +
+ + ${bday === 'today' ? 'Was hat sich Ban Yaro gewünscht?' : 'KI-Überraschungsideen'}
${bday === 'today' && new Date().getHours() >= 18 ? ` diff --git a/backend/static/sw.js b/backend/static/sw.js index 96eaace..f38d799 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-v781'; +const CACHE_VERSION = 'by-v783'; 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