From 2cf87bab7e8d523ad7f2a780ce91bd32a10ff1fc Mon Sep 17 00:00:00 2001 From: rene Date: Thu, 14 May 2026 16:29:09 +0200 Subject: [PATCH] =?UTF-8?q?UX:=20Routen=20Standby=20=E2=80=94=20Fingerabdr?= =?UTF-8?q?uck-Button=20statt=20ganzer=20Bildschirm=20(SW=20by-v947)?= 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/routes.js | 40 +++++++++++++++++++++---------- backend/static/sw.js | 2 +- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/backend/main.py b/backend/main.py index 6c17b53..ab1ba08 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 = "946" # muss mit APP_VER in app.js übereinstimmen +APP_VER = "947" # 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 20c119a..2948711 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 = '946'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '947'; // ← 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/routes.js b/backend/static/js/pages/routes.js index 32186f9..9b6c37b 100644 --- a/backend/static/js/pages/routes.js +++ b/backend/static/js/pages/routes.js @@ -668,13 +668,25 @@ window.Page_routes = (() => { · 0.00 km - - - - -
2 Sek. halten
+ `; document.body.appendChild(ovl); @@ -789,16 +801,18 @@ window.Page_routes = (() => { _recOvl.addEventListener('touchstart', _onRecOvlTouch, { passive: true }); _recOvl.addEventListener('pointerdown', _onRecOvlTouch); - // Long-Press auf dem Schwarzbildschirm → nach 4s zurück zur Aufzeichnung - const dim = document.getElementById('rk-rec-dim'); + // Long-Press auf Fingerabdruck-Button → nach 2s zurück zur Aufzeichnung + const dim = document.getElementById('rk-rec-dim'); + const unlockBtn = document.getElementById('rk-dim-unlock-btn'); let _lpTimer = null; const cancelLp = () => { clearTimeout(_lpTimer); const prog = document.getElementById('rk-dim-prog'); if (prog) { prog.style.transition = 'none'; prog.style.strokeDashoffset = '150.8'; } }; - dim.addEventListener('pointerdown', e => { + unlockBtn.addEventListener('pointerdown', e => { e.stopPropagation(); + unlockBtn.setPointerCapture(e.pointerId); const prog = document.getElementById('rk-dim-prog'); if (prog) { prog.style.transition = 'stroke-dashoffset 2s linear'; prog.style.strokeDashoffset = '0'; } _lpTimer = setTimeout(() => { @@ -807,9 +821,9 @@ window.Page_routes = (() => { _resetRecInactTimer(); }, 2000); }); - dim.addEventListener('pointerup', cancelLp); - dim.addEventListener('pointercancel', cancelLp); - dim.addEventListener('pointerleave', cancelLp); + unlockBtn.addEventListener('pointerup', cancelLp); + unlockBtn.addEventListener('pointercancel', cancelLp); + unlockBtn.addEventListener('pointerleave', cancelLp); } function _onRecOvlTouch(e) { diff --git a/backend/static/sw.js b/backend/static/sw.js index c90276e..c808da1 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-v946'; +const CACHE_VERSION = 'by-v947'; 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