diff --git a/backend/main.py b/backend/main.py index f2aa6fd..bf3a3bc 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 = "1081" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "1082" # muss mit APP_VER in app.js übereinstimmen @app.get("/.well-known/assetlinks.json") async def assetlinks(): diff --git a/backend/static/css/components.css b/backend/static/css/components.css index ee3a382..ee134f5 100644 --- a/backend/static/css/components.css +++ b/backend/static/css/components.css @@ -8872,28 +8872,24 @@ svg.empty-state-icon { 5 Pfade — Score 0 (grau) bis 5 (grün, gefüllt) ============================================================ */ #offline-indicator { - display: none; /* Default: aus */ + display: flex; /* Default: sichtbar — JS blendet auf Detail-Seiten aus */ position: fixed; right: 20px; /* gleicher right wie #worlds-fab */ bottom: calc(env(safe-area-inset-bottom, 16px) + 16px + 54px + 12px); /* FAB-Bottom + FAB-Höhe + 12px */ width: 40px; height: 40px; border-radius: 50%; - background: rgba(255,255,255,0.85); - backdrop-filter: blur(6px); - -webkit-backdrop-filter: blur(6px); - border: 1px solid rgba(0,0,0,0.08); - box-shadow: 0 2px 8px rgba(0,0,0,0.12); + background: rgba(255,255,255,0.95); + border: 2px solid var(--c-border); + box-shadow: 0 2px 10px rgba(0,0,0,0.18); align-items: center; justify-content: center; padding: 0; cursor: pointer; z-index: 61; /* knapp über dem FAB (60), unter Modals */ - transition: transform 0.12s, box-shadow 0.12s; + transition: transform 0.12s, opacity 0.2s; } -/* Welten aktiv → Indikator sichtbar (CSS-Sibling + JS-Klasse als Fallback) */ -#worlds-overlay.worlds-visible ~ #offline-indicator, -#offline-indicator.visible { display: flex; } +#offline-indicator.is-hidden { display: none; } /* JS-gesteuert: in Detail-Seiten */ [data-theme="dark"] #offline-indicator { background: rgba(31,41,55,0.85); diff --git a/backend/static/index.html b/backend/static/index.html index 017d122..b8426aa 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -101,9 +101,9 @@ - - - + + + @@ -630,11 +630,11 @@ - - - - - + + + + + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 789a149..f882e5a 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 = '1081'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1082'; // ← 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/js/offline-indicator.js b/backend/static/js/offline-indicator.js index 802fd04..ba2971d 100644 --- a/backend/static/js/offline-indicator.js +++ b/backend/static/js/offline-indicator.js @@ -190,12 +190,16 @@ window.OfflineIndicator = (() => { // ---------------------------------------------------------- // Sichtbarkeit an Welten-Overlay koppeln + // — default sichtbar; nur ausblenden wenn explizit auf Detail-Seite // ---------------------------------------------------------- function _syncVisibility() { if (!_btn) return; const ov = document.getElementById('worlds-overlay'); - const inWorlds = !!ov?.classList.contains('worlds-visible'); - _btn.classList.toggle('visible', inWorlds); + if (!ov) return; // ohne Welten-Overlay sichtbar lassen + const inWorlds = ov.classList.contains('worlds-visible') + || ov.style.display === 'block' + || ov.style.display === ''; + _btn.classList.toggle('is-hidden', !inWorlds); } // ---------------------------------------------------------- diff --git a/backend/static/sw.js b/backend/static/sw.js index 7259411..c6b47d2 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -4,7 +4,7 @@ ============================================================ */ // ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab -const VER = '1081'; +const VER = '1082'; const CACHE_VERSION = `by-v${VER}`; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten