From 498b89d7bad02f74b6d2cec0397e1781c9ca9f2c Mon Sep 17 00:00:00 2001 From: simon Date: Fri, 29 May 2026 21:25:03 +0200 Subject: [PATCH] Clear tap status in dashboard after 2s display window. formatLastTap no longer falls back to server last_tap once the ephemeral tapDisplay timer expires. Co-authored-by: Cursor --- goTool/webui/index.html | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/goTool/webui/index.html b/goTool/webui/index.html index 278495e..fc216c4 100644 --- a/goTool/webui/index.html +++ b/goTool/webui/index.html @@ -827,23 +827,22 @@ const d = this.activeTapDisplay(c); if (d) return labels[d.kind] || d.kind; if (!c?.last_tap) return '…'; - return labels[c.last_tap] || c.last_tap; + return '—'; }, tapTitle(c) { if (!this.state?.live_stream) return 'Live-Stream aus'; if (!this.tapNotifyAny(c)) return 'Tap-Notify nicht konfiguriert (S/D/T)'; const d = this.activeTapDisplay(c); - if (!d && !c?.last_tap) return 'Warte auf Tap-Event…'; - const kind = d?.kind || c?.last_tap; - const at = d?.shownAt || c?.last_tap_at; - const age = at ? (Date.now() - at) + ' ms her' : ''; - return `Letzter Tap: ${kind}${age ? ' · ' + age : ''}`; + if (d) { + const age = (Date.now() - d.shownAt) + ' ms her'; + return `Tap: ${d.kind} · ${age}`; + } + if (!c?.last_tap) return 'Warte auf Tap-Event…'; + return 'Bereit — letzter Tap ausgeblendet'; }, tapCellClass(c) { if (this.activeTapDisplay(c)) return 'tap-hit'; - if (!c?.last_tap || !c?.last_tap_at) return 'text-muted'; - if (Date.now() - c.last_tap_at < this.TAP_DISPLAY_MS) return 'tap-hit'; - return ''; + return 'text-muted'; }, formatSize(n) { if (n == null) return '';