Problem: Jede Änderung (Slot, Feiertag, Monat) baut das komplette Grid inkl. aller Listener neu auf.
Fix: Gezielte Updates der betroffenen Zelle; Event-Delegation statt eines Listeners pro <select>.
**Schweregrad:** LOW–MEDIUM
**Dateien:** `js/calendar.js:147-301`
**Problem:** Jede Änderung (Slot, Feiertag, Monat) baut das komplette Grid inkl. aller Listener neu auf.
**Fix:** Gezielte Updates der betroffenen Zelle; Event-Delegation statt eines Listeners pro `<select>`.
Behoben in 8cd8908: Tag-Zellen-Aufbau in makeDayCell(d) extrahiert. Slot-Änderungen und Feiertag/Betriebsurlaub-Toggles rendern jetzt nur die betroffene Zelle neu (cell.replaceWith) statt des gesamten Grids inkl. aller Listener. Strukturänderungen (Monat/Jahr/Slot-Anzahl) bleiben Voll-Render. Verhaltensgleiche Extraktion; headless ohne JS-Fehler geladen, Tests grün. Interaktive Render-Tests folgen in #13.
Behoben in `8cd8908`: Tag-Zellen-Aufbau in `makeDayCell(d)` extrahiert. Slot-Änderungen und Feiertag/Betriebsurlaub-Toggles rendern jetzt **nur die betroffene Zelle** neu (`cell.replaceWith`) statt des gesamten Grids inkl. aller Listener. Strukturänderungen (Monat/Jahr/Slot-Anzahl) bleiben Voll-Render. Verhaltensgleiche Extraktion; headless ohne JS-Fehler geladen, Tests grün. Interaktive Render-Tests folgen in #13.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Schweregrad: LOW–MEDIUM
Dateien:
js/calendar.js:147-301Problem: Jede Änderung (Slot, Feiertag, Monat) baut das komplette Grid inkl. aller Listener neu auf.
Fix: Gezielte Updates der betroffenen Zelle; Event-Delegation statt eines Listeners pro
<select>.Behoben in
8cd8908: Tag-Zellen-Aufbau inmakeDayCell(d)extrahiert. Slot-Änderungen und Feiertag/Betriebsurlaub-Toggles rendern jetzt nur die betroffene Zelle neu (cell.replaceWith) statt des gesamten Grids inkl. aller Listener. Strukturänderungen (Monat/Jahr/Slot-Anzahl) bleiben Voll-Render. Verhaltensgleiche Extraktion; headless ohne JS-Fehler geladen, Tests grün. Interaktive Render-Tests folgen in #13.