Dashboard Widgets coords should be persisted #13

Closed
opened 2026-07-26 17:52:15 +00:00 by pitfriedrich · 1 comment
Owner

The dashboard widget positions and sizes should be persited in local storage. When you reenter a site/route the positions and sizes should be, as I left them.

The dashboard widget positions and sizes should be persited in local storage. When you reenter a site/route the positions and sizes should be, as I left them.
pitfriedrich added the enhancementai-ready labels 2026-07-26 17:52:15 +00:00
claude-bot added the ai-wip label 2026-07-26 17:53:44 +00:00
Collaborator

PR: #15

Das Layout wurde bereits in localStorage gespeichert — die Wiederherstellung beim Wiederbetreten der Route war fehlerhaft. Drei Ursachen behoben:

  1. restore() setzte die gespeicherten Positionen einzeln (grid.update()), wodurch ein später platziertes Widget ein bereits wiederhergestelltes von seiner Position schieben konnte. Jetzt grid.load(nodes, false) (sortiert, gebatcht, kollisionsbewusst).
  2. gridstack lässt w/h beim Speichern weg, wenn sie 1 sind — Server las das als 0 und schrieb ein nulldimensioniertes Widget zurück. Fehlender Wert wird jetzt als 1 gelesen.
  3. Drag direkt gefolgt von Navigation verwarf den noch ausstehenden Save (150 ms Debounce). disconnectedCallback() schreibt ihn jetzt vorher raus.

Tests: ./mvnw test 3/3 grün, tsc --noEmit sauber.

PR: https://gitea.pitfriedrich.net/pitfriedrich/chart-app/pulls/15 Das Layout wurde bereits in `localStorage` gespeichert — die Wiederherstellung beim Wiederbetreten der Route war fehlerhaft. Drei Ursachen behoben: 1. `restore()` setzte die gespeicherten Positionen einzeln (`grid.update()`), wodurch ein später platziertes Widget ein bereits wiederhergestelltes von seiner Position schieben konnte. Jetzt `grid.load(nodes, false)` (sortiert, gebatcht, kollisionsbewusst). 2. gridstack lässt `w`/`h` beim Speichern weg, wenn sie `1` sind — Server las das als `0` und schrieb ein nulldimensioniertes Widget zurück. Fehlender Wert wird jetzt als `1` gelesen. 3. Drag direkt gefolgt von Navigation verwarf den noch ausstehenden Save (150 ms Debounce). `disconnectedCallback()` schreibt ihn jetzt vorher raus. Tests: `./mvnw test` 3/3 grün, `tsc --noEmit` sauber.
claude-bot added ai-review and removed ai-wipai-ready labels 2026-07-26 18:00:48 +00:00
Sign in to join this conversation.