Skip to content

fix(settings): restore radio groups by name on autosave rollback - #184

Merged
CallMeTechie merged 1 commit into
masterfrom
fix/autoupdate-radio-rollback
Jun 25, 2026
Merged

CallMeTechie merged 1 commit into
masterfrom
fix/autoupdate-radio-rollback

Conversation

@CallMeTechie

Copy link
Copy Markdown
Owner

Fix: Autosave-Rollback stellt Radio-Gruppen per name wieder her

Beim Audit aller Autosave-Felder gefunden (Fehlerpfad-only, kein stiller Save-Verlust): rollbackField() im Autosave-Controller stellte bei einem fehlgeschlagenen Save diskrete Controls aus dem Snapshot wieder her via el.checked = !!snap[el.id]. Gruppierte Radios (z. B. au-mode) haben kein Element-id, daher snap[''] === undefined → das gerade geklickte Radio wurde entwählt statt das vorher gewählte wiederherzustellen → Gruppe zeigte nichts ausgewählt.

valuesById keyt Radio-Gruppen per Gruppen-name ({ 'au-mode': selectedValue }). Fix: die ganze Gruppe per document.getElementsByName(el.name) auf den Snapshot-Wert zurücksetzen (das passende Radio .checked setzen entwählt die Geschwister automatisch). Checkbox-Zweig (mit IDs) sauber abgetrennt; Toggle/Select unverändert.

Nur Fehlerpfad (rollbackField läuft nur bei Confirm-Abbruch oder fehlgeschlagenem Save) — der Erfolgspfad ist unberührt. Smoke-Assertion ergänzt (Controller nutzt getElementsByName + snap[el.name]). Tests grün (autosave core+smoke+secret 22/22). DOM-Verhalten = dokumentierter No-jsdom-Blindfleck, wird live spot-gecheckt.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Jrun6RoK7g75W5L8ZEpBzh

Grouped radios (e.g. au-mode) lack element ids, so rollbackField's
snap[el.id] lookup unchecked the clicked radio on a failed save instead of
restoring the previously-selected one. Restore the whole group by name from
the snapshot value (valuesById keys radio groups by name).
@CallMeTechie
CallMeTechie merged commit 2730925 into master Jun 25, 2026
8 checks passed
@CallMeTechie
CallMeTechie deleted the fix/autoupdate-radio-rollback branch June 25, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant