Fix: Blur greift bei jedem ersten Durchlauf der ausgewaehlten Lage
Vorheriger Patch hatte den rAF nur im Create-Flow gesetzt. Damit funktionierte
zwar das Anlegen, aber das Auswaehlen einer existierenden Lage, deren erste
Recherche gerade laeuft (oder nach einem manuellen ersten Refresh), blieb
unblurred.
Loesung: rAF mit add("blurred") jetzt zentral in selectIncident, sobald der
Progress-State isFirst=true und nicht minimiert ist. Damit greift der Blur
in allen Pfaden (Anlegen, manueller Refresh, Auswahl einer laufenden Lage,
Wechsel zwischen Faellen, Initial-Load via savedId).
Der zusaetzliche rAF in createIncident von 2ee90a4 ist damit redundant und
wieder entfernt — der zentrale Hook in selectIncident deckt den Fall mit ab.
cache-bust app.js auf v=20260427b.
Dieser Commit ist enthalten in:
@@ -628,7 +628,7 @@
|
|||||||
<script src="/static/js/ws.js?v=20260316b"></script>
|
<script src="/static/js/ws.js?v=20260316b"></script>
|
||||||
<script src="/static/js/components.js?v=20260316d"></script>
|
<script src="/static/js/components.js?v=20260316d"></script>
|
||||||
<script src="/static/js/layout.js?v=20260316b"></script>
|
<script src="/static/js/layout.js?v=20260316b"></script>
|
||||||
<script src="/static/js/app.js?v=20260427a"></script>
|
<script src="/static/js/app.js?v=20260427b"></script>
|
||||||
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
||||||
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
||||||
<script src="/static/js/chat.js?v=20260422a"></script>
|
<script src="/static/js/chat.js?v=20260422a"></script>
|
||||||
|
|||||||
@@ -736,9 +736,8 @@ const App = {
|
|||||||
const prevMini = document.getElementById('progress-mini');
|
const prevMini = document.getElementById('progress-mini');
|
||||||
if (prevMini) prevMini.style.display = 'none';
|
if (prevMini) prevMini.style.display = 'none';
|
||||||
const grid = document.querySelector('.tab-panels');
|
const grid = document.querySelector('.tab-panels');
|
||||||
// Blur nur entfernen, wenn er nicht direkt danach wieder gesetzt wird.
|
// Wenn gerade ein erster Refresh laeuft, Blur stehen lassen statt
|
||||||
// Beim Create-Flow (frischer isFirst-State + selectIncident im selben
|
// remove+add im selben Tick — CSS filter:blur greift sonst nicht.
|
||||||
// Tick) greift CSS filter:blur sonst nicht im selben Frame.
|
|
||||||
const _restState = isRefreshing ? UI._progressState[id] : null;
|
const _restState = isRefreshing ? UI._progressState[id] : null;
|
||||||
const _willReBlur = _restState && _restState.isFirst && !_restState.minimized;
|
const _willReBlur = _restState && _restState.isFirst && !_restState.minimized;
|
||||||
if (grid && !_willReBlur) grid.classList.remove('blurred');
|
if (grid && !_willReBlur) grid.classList.remove('blurred');
|
||||||
@@ -753,6 +752,14 @@ const App = {
|
|||||||
UI._showPopupProgress(state.step, {}, state);
|
UI._showPopupProgress(state.step, {}, state);
|
||||||
}
|
}
|
||||||
UI._lockActionsIfFirst(state.isFirst);
|
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 {
|
} else {
|
||||||
// No state yet — show popup (first status update will refine)
|
// No state yet — show popup (first status update will refine)
|
||||||
UI.showProgress('researching', {}, id, false);
|
UI.showProgress('researching', {}, id, false);
|
||||||
@@ -1783,14 +1790,6 @@ const App = {
|
|||||||
|
|
||||||
await this.selectIncident(incident.id);
|
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);
|
this._updateRefreshButton(true);
|
||||||
await API.refreshIncident(incident.id);
|
await API.refreshIncident(incident.id);
|
||||||
UI.showToast(`Lage "${incident.title}" angelegt. Recherche gestartet.`, 'success');
|
UI.showToast(`Lage "${incident.title}" angelegt. Recherche gestartet.`, 'success');
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren