Update-Knopf: Seitensprung im Großbild-Layout behoben
Auf Update prüfen/Update installieren ließ die Seite im Seitenleisten-Layout sichtbar nach oben springen - render()s eigene Scroll-Wiederherstellung reichte hier nicht, vermutlich weil die Zustandsänderung des Update-Sensors zusätzlich über HAs eigenes set-hass-Durchreichen an das eingebettete Panel einen zweiten Render-Pfad anstößt. Statt die genaue Ursache weiter zu jagen: fester Scroll-Merkwert vor dem Klick, per requestAnimationFrame nach jedem eigenen render()-Aufruf dieses Ablaufs erneut erzwungen. Live bei 1280x800 verifiziert: kein Sprung mehr. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
@@ -4669,7 +4669,22 @@ function ereignisseVerdrahten() {
|
||||
// diese drei Aktionen brauchen einen sichtbaren Ladezustand, siehe
|
||||
// INTEGRATION_UPDATE_LAEUFT's Kommentar an der Deklaration.
|
||||
if (aktion === "pruefen" || aktion === "installieren") {
|
||||
// Im Großbild-Layout (Seitenleiste statt Tableiste) sprang die Seite
|
||||
// beim Klick sichtbar nach oben, obwohl render() den Scroll eigentlich
|
||||
// wiederherstellt (v.scrollTop = merkeScroll) - die Zustandsänderung
|
||||
// an sensor.audi_dashboard_app_version, die dieser Aufruf auslöst,
|
||||
// verschiebt scrollTop zusätzlich über einen zweiten, äußeren Pfad
|
||||
// (HA reicht jede Zustandsänderung an das eingebettete Panel durch).
|
||||
// Statt die Ursache dort zu jagen: fester Merkwert vor dem Klick, per
|
||||
// rAF nach jedem render() dieses Ablaufs erneut erzwungen - wirkt
|
||||
// gegen render()s eigene Wiederherstellung UND gegen den äußeren Pfad.
|
||||
const merkeScrollUpdate = $("#view").scrollTop;
|
||||
const scrollWiederherstellen = () => requestAnimationFrame(() => {
|
||||
const view = $("#view");
|
||||
if (view) view.scrollTop = merkeScrollUpdate;
|
||||
});
|
||||
INTEGRATION_UPDATE_LAEUFT = aktion; render();
|
||||
scrollWiederherstellen();
|
||||
HASS.callService(DOMAIN, `update_${aktion}`, {})
|
||||
.catch((err) => {
|
||||
hinweis(
|
||||
@@ -4677,7 +4692,7 @@ function ereignisseVerdrahten() {
|
||||
err && err.message ? err.message : "Der Dienst konnte nicht ausgeführt werden.",
|
||||
);
|
||||
})
|
||||
.finally(() => { INTEGRATION_UPDATE_LAEUFT = null; render(); });
|
||||
.finally(() => { INTEGRATION_UPDATE_LAEUFT = null; render(); scrollWiederherstellen(); });
|
||||
} else if (aktion === "neustart") {
|
||||
INTEGRATION_UPDATE_LAEUFT = "neustart"; render();
|
||||
HASS.callService("homeassistant", "restart", {}).catch((err) => {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"domain": "audi_dashboard",
|
||||
"name": "Audi Dashboard",
|
||||
"version": "2026.8.24.11",
|
||||
"version": "2026.8.24.12",
|
||||
"documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md",
|
||||
"issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues",
|
||||
"codeowners": ["@paul"],
|
||||
|
||||
Reference in New Issue
Block a user