fix: Gilden-Auswahl bleibt nach Simulation/Filtern erhalten #4
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
DasAoD/sf-guildscanner!4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/persist-guild-selection-across-simulation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bug
Nach einem Simulationslauf (egal ob eine oder mehrere Gilden) verschwanden alle Checkbox-Häkchen in der Ergebnistabelle. Grund:
renderTable()baut die Tabellenzeilen komplett neu auf (tbody.innerHTML = ''), ohne den vorherigen Auswahlzustand zu übernehmen — undpollSimProgress()ruft nach Abschluss der SimulationapplyFilter()(→renderTable()) auf, um die neuen Sim-Ergebnisse anzuzeigen.Bei wenigen Gilden nur lästig, bei 10-20+ ausgewählten Gilden (z. B. um mit verschiedenen Pilz-Anzahlen zu vergleichen) unpraktisch, weil man jedes Mal alles neu anhaken musste.
Fix
selectedGuilds(einSetaus Gildennamen) ist jetzt die eigentliche Quelle der Wahrheit für die Auswahl, nicht mehr nur der DOM-Zustand der Checkboxen. Beim Rendern werden die Checkboxen anhand dieses Sets vorbelegt (checked, falls der Name drin ist) und aktualisieren es bei jeder Änderung (toggleGuildSelection,toggleAll,selectAllVisible,deselectAll). Damit übersteht die Auswahl jeden Tabellen-Neuaufbau (Filtern, Sortieren, nach einer Simulation) — nur „Auswahl aufheben" oder manuelles Abhaken entfernt einen Eintrag.Kein Backend betroffen.
Test
cargo build --all-targetsweiterhin sauber (reine Frontend-Änderung).node --check), alle$('id')-Referenzen gegen vorhandene HTML-IDs abgeglichen.🤖 Generated with Claude Code
Bisher wurden die Checkbox-Häkchen bei jedem renderTable()-Aufruf verworfen, weil die Tabellenzeilen komplett neu gebaut wurden (tbody innerHTML = ''), ohne den vorherigen Auswahlzustand zu übernehmen. Das war besonders beim wiederholten Simulieren nervig (Ergebnis ruft applyFilter() -> renderTable() auf, alle Häkchen weg) - bei 10+ ausgewählten Gilden musste man jedes Mal neu anhaken. Fix: selectedGuilds (ein Set aus Gildennamen) ist jetzt die Quelle der Wahrheit für die Auswahl, nicht mehr der DOM-Zustand allein. Checkboxen werden beim Rendern anhand dieses Sets vorbelegt und aktualisieren es bei Änderung. Damit übersteht die Auswahl jeden Neuaufbau der Tabelle (Filtern, Sortieren, nach einer Simulation) - nur "Auswahl aufheben" oder manuelles Abhaken entfernt einen Eintrag noch. Kein Backend-Änderung nötig. cargo build --all-targets weiterhin sauber, JS-Syntax geprüft (node --check), alle $('id')-Referenzen gegen vorhandene HTML-IDs abgeglichen.