From efae707fa9f6c39c8ca0d0c2817acba5aea88ce9 Mon Sep 17 00:00:00 2001 From: claude-dev Date: Tue, 21 Apr 2026 14:02:52 +0000 Subject: [PATCH] Fix: Blur + Aktions-Lock beim Anlegen eines Falls sofort aktiv MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Beim Create-Flow wurde selectIncident() aufgerufen, BEVOR der Fall als refreshend markiert wurde. Dadurch entfernte selectIncident den '.blurred'-Zustand des Tab-Containers und rief _lockActionsIfFirst(false) auf — der Fallinhalt war zwischen Oeffnen und Eintreffen der ersten WebSocket-Statusnachricht kurzzeitig klickbar und unblurred. Jetzt wird der Refresh-Status und ein Initial-State mit isFirst=true schon VOR selectIncident gesetzt. selectIncident erkennt isRefreshing und ruft _showPopupProgress + _lockActionsIfFirst(true) mit dem bestehenden State auf — Blur und Lock greifen sofort. --- src/static/js/app.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/static/js/app.js b/src/static/js/app.js index 402878d..82fd47a 100644 --- a/src/static/js/app.js +++ b/src/static/js/app.js @@ -1766,12 +1766,19 @@ const App = { closeModal('modal-new'); await this.loadIncidents(); + + // Refresh-Status VOR selectIncident setzen, damit selectIncident + // beim Oeffnen sofort Blur + Aktions-Lock setzt (statt sie erst + // per WebSocket-Nachricht spaeter wieder zu aktivieren — dazwischen + // war der Fallinhalt kurzzeitig unblurred und klickbar). + this._refreshingIncidents.add(incident.id); + UI._progressState[incident.id] = { + step: 'queued', isFirst: true, startTime: null, minimized: false, + }; + await this.selectIncident(incident.id); - // Sofort ersten Refresh starten - this._refreshingIncidents.add(incident.id); this._updateRefreshButton(true); - // showProgress called via handleStatusUpdate await API.refreshIncident(incident.id); UI.showToast(`Lage "${incident.title}" angelegt. Recherche gestartet.`, 'success'); }