From 34aeb04a8825f799eac780dfb1157ac09ce5d98d Mon Sep 17 00:00:00 2001 From: UserIsMH Date: Fri, 1 May 2026 15:59:32 +0200 Subject: [PATCH] Ereignis-Timeline: Klick auf Heatmap-Balken filtert den Stream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vorher scrollte ein Klick auf einen Balken nur zur passenden Zeit- Gruppe — bei langem Stream kaum erkennbar. Jetzt filtert der Klick den Stream auf das Zeitfenster des Balkens und zeigt nur diese Einträge. - Aktiver Balken: vergrößert (scaleY 1.6) + goldener Hintergrund + starker Glow + kleiner ▼-Pfeil darunter; alle anderen Balken auf 40% Opacity gedimmt. - Banner zwischen Strip und Stream zeigt "Gefiltert auf [Label] · X Einträge" mit "Filter aufheben"-Button. - Zweiter Klick auf denselben Balken oder Banner-Button hebt den Filter auf. - Filter/Range-Buttons setzen den Strip-Window-Filter zurück (sonst inkonsistente Doppel-Filterung). - Lagen-Wechsel räumt _activeStripWindow. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/static/css/style.css | 61 +++++++++++++++++++++++ src/static/dashboard.html | 4 +- src/static/js/app.js | 102 +++++++++++++++++++------------------- 3 files changed, 115 insertions(+), 52 deletions(-) diff --git a/src/static/css/style.css b/src/static/css/style.css index d8c12d4..a2274f3 100644 --- a/src/static/css/style.css +++ b/src/static/css/style.css @@ -2490,6 +2490,67 @@ a.dev-source-pill:hover { .ht-strip-cell.has-snapshot { box-shadow: inset 0 -3px 0 var(--accent); } +.ht-strip-cell.active { + background: var(--accent); + transform: scaleY(1.6); + box-shadow: var(--glow-accent-strong), inset 0 -3px 0 var(--accent); + z-index: 2; + position: relative; +} +.ht-strip-cell.active::after { + content: '▼'; + position: absolute; + bottom: -10px; + left: 50%; + transform: translateX(-50%); + font-size: 8px; + color: var(--accent); + pointer-events: none; +} +.ht-strip:has(.ht-strip-cell.active) .ht-strip-cell:not(.active):not(.empty) { + opacity: 0.4; +} + +/* Banner: aktiver Strip-Filter */ +.ht-strip-banner { + display: flex; + align-items: center; + gap: var(--sp-md); + padding: 6px 12px; + background: var(--tint-accent); + border: 1px solid var(--accent); + border-radius: var(--radius); + font-size: 12px; + color: var(--text-primary); + margin-top: 4px; +} +.ht-strip-banner-icon { + color: var(--accent); + font-size: 10px; +} +.ht-strip-banner-text { + flex: 1; + color: var(--text-secondary); +} +.ht-strip-banner-text strong { + color: var(--accent); + font-family: var(--font-mono); +} +.ht-strip-banner-close { + border: 1px solid var(--accent); + background: transparent; + color: var(--accent); + font-size: 11px; + font-weight: 600; + padding: 2px 10px; + border-radius: var(--radius); + cursor: pointer; + transition: background 0.15s ease; +} +.ht-strip-banner-close:hover { + background: var(--accent); + color: var(--bg-card); +} .ht-strip-labels { display: grid; gap: 2px; diff --git a/src/static/dashboard.html b/src/static/dashboard.html index b00d2a7..13e7bad 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -13,7 +13,7 @@ - +