Promote develop → main (2026-04-29 20:10 UTC) #3
@@ -1,4 +1,12 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"version": "2026-04-29T20:10Z",
|
||||||
|
"date": "2026-04-29",
|
||||||
|
"title": "Blur versucht zu fixen",
|
||||||
|
"items": [
|
||||||
|
"war nix..."
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "2026-04-26T21:10Z",
|
"version": "2026-04-26T21:10Z",
|
||||||
"date": "2026-04-26",
|
"date": "2026-04-26",
|
||||||
|
|||||||
@@ -626,9 +626,9 @@
|
|||||||
<script src="/static/vendor/leaflet.markercluster.js"></script>
|
<script src="/static/vendor/leaflet.markercluster.js"></script>
|
||||||
<script src="/static/js/api.js?v=20260423a"></script>
|
<script src="/static/js/api.js?v=20260423a"></script>
|
||||||
<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=20260427a"></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=20260423a"></script>
|
<script src="/static/js/app.js?v=20260427c"></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,7 +736,11 @@ 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');
|
||||||
if (grid) grid.classList.remove('blurred');
|
// 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');
|
||||||
|
|
||||||
if (isRefreshing) {
|
if (isRefreshing) {
|
||||||
const state = UI._progressState[id];
|
const state = UI._progressState[id];
|
||||||
|
|||||||
@@ -336,7 +336,16 @@ const UI = {
|
|||||||
overlay.classList.add('blocking');
|
overlay.classList.add('blocking');
|
||||||
// Apply blur to grid
|
// Apply blur to grid
|
||||||
const grid = document.querySelector('.tab-panels');
|
const grid = document.querySelector('.tab-panels');
|
||||||
if (grid) grid.classList.add('blurred');
|
if (grid) {
|
||||||
|
grid.classList.add('blurred');
|
||||||
|
// Sicherheitsnetz: bei viel DOM-Reshuffle im selben Tick
|
||||||
|
// (Display-Wechsel, renderSidebar, leere innerHTML) greift
|
||||||
|
// CSS filter:blur erst beim naechsten Layout-Pass. Im
|
||||||
|
// naechsten Frame nochmal setzen — idempotent.
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
if (state && state.isFirst) grid.classList.add('blurred');
|
||||||
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
overlay.classList.remove('blocking');
|
overlay.classList.remove('blocking');
|
||||||
}
|
}
|
||||||
|
|||||||
In neuem Issue referenzieren
Einen Benutzer sperren