diff --git a/src/static/dashboard.html b/src/static/dashboard.html index f88d6b0..0ce9484 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -628,7 +628,7 @@ - + diff --git a/src/static/js/app.js b/src/static/js/app.js index 36936e7..95dcf4e 100644 --- a/src/static/js/app.js +++ b/src/static/js/app.js @@ -736,9 +736,8 @@ const App = { const prevMini = document.getElementById('progress-mini'); if (prevMini) prevMini.style.display = 'none'; const grid = document.querySelector('.tab-panels'); - // Blur nur entfernen, wenn er nicht direkt danach wieder gesetzt wird. - // Beim Create-Flow (frischer isFirst-State + selectIncident im selben - // Tick) greift CSS filter:blur sonst nicht im selben Frame. + // Wenn gerade ein erster Refresh laeuft, Blur stehen lassen statt + // remove+add im selben Tick — CSS filter:blur greift sonst nicht. const _restState = isRefreshing ? UI._progressState[id] : null; const _willReBlur = _restState && _restState.isFirst && !_restState.minimized; if (grid && !_willReBlur) grid.classList.remove('blurred'); @@ -753,6 +752,14 @@ const App = { UI._showPopupProgress(state.step, {}, state); } UI._lockActionsIfFirst(state.isFirst); + // _showPopupProgress setzt .blurred bereits, aber CSS filter + // greift nach dem grossen DOM-Reshuffle (Display-Toggle, + // renderSidebar, leerge innerHTML) im selben Frame nicht + // zuverlaessig. Im naechsten Frame nochmal setzen — + // idempotent, falls schon gesetzt. + if (state.isFirst && grid && !state.minimized) { + requestAnimationFrame(() => grid.classList.add('blurred')); + } } else { // No state yet — show popup (first status update will refine) UI.showProgress('researching', {}, id, false); @@ -1783,14 +1790,6 @@ const App = { await this.selectIncident(incident.id); - // Im Create-Flow greift CSS filter:blur nach dem viel DOM-Reshuffle - // (Modal-Close, renderSidebar, Tab-Wechsel) im selben Frame nicht - // zuverlaessig. Im naechsten Frame nochmal setzen — Aufwand minimal. - requestAnimationFrame(() => { - const _grid = document.querySelector('.tab-panels'); - if (_grid) _grid.classList.add('blurred'); - }); - this._updateRefreshButton(true); await API.refreshIncident(incident.id); UI.showToast(`Lage "${incident.title}" angelegt. Recherche gestartet.`, 'success');