From 26fac0e824080f96c3e62116c547d545f2bd74cb Mon Sep 17 00:00:00 2001 From: UserIsMH Date: Fri, 1 May 2026 22:06:06 +0200 Subject: [PATCH] Analysepipeline: Reset auf "pending" beim Refresh-Start MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Beim ersten Schritt (sources_review) eines neuen Refreshs werden alle nachfolgenden Schritte sichtbar auf "pending" (grau) zurückgesetzt. Vorher hingen sie weiterhin als "done" vom letzten Refresh in grün herum, während die Pipeline schon einen neuen Durchlauf zeigte. - Bedingung in pipeline.js entschärft: nicht mehr nur bei pass_number > 1 (Multi-Pass), sondern bei jedem ersten Schritt-Active - Bei Reset wird das ganze Stage neu gezeichnet (nicht nur der einzelne Block), damit die zurückgesetzten Schritte tatsächlich grau erscheinen - Greift sowohl bei normalem Refresh als auch bei Multi-Pass-Wechsel einer Research-Lage Co-Authored-By: Claude Opus 4.7 (1M context) --- src/static/dashboard.html | 2 +- src/static/js/pipeline.js | 21 +++++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/static/dashboard.html b/src/static/dashboard.html index ecee0b2..2b4921a 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -646,7 +646,7 @@ - + diff --git a/src/static/js/pipeline.js b/src/static/js/pipeline.js index 0f3551b..a4b184b 100644 --- a/src/static/js/pipeline.js +++ b/src/static/js/pipeline.js @@ -141,20 +141,29 @@ const Pipeline = { } } - // Wenn ein neuer Pass startet (pass_number > prev und status="active" beim ERSTEN step): - // alle Schritte zurück auf pending setzen, damit die Animation neu durchläuft. + // Wenn der ERSTE Schritt (sources_review) auf "active" geht, beginnt ein neuer + // Refresh oder ein neuer Multi-Pass-Durchlauf — alle nachfolgenden Schritte auf + // "pending" (grau) zuruecksetzen, damit der User sieht: das ist neu und + // noch nicht durchlaufen. Sonst stehen sie als "done" vom letzten Mal da. + let didReset = false; if (d.status === 'active' && this._definition && this._definition.length - && key === this._definition[0].key && passNr > 1 && (!prev || prev.pass_number < passNr)) { - // Alle anderen Steps in "pending" zurueck (visuell), Werte behalten wir + && key === this._definition[0].key) { this._definition.forEach(s => { if (s.key !== key && this._stateByKey[s.key]) { this._stateByKey[s.key].status = 'pending'; + didReset = true; } }); } - this._patchBlock(key); - this._patchMiniBlock(key); + if (didReset) { + // Beim Reset alle Bloecke neu zeichnen, nicht nur den aktuellen + this._render(); + this._renderMini(); + } else { + this._patchBlock(key); + this._patchMiniBlock(key); + } }, _onRefreshDone(msg) {