Verbesserung
Top-Thema
Detail
Wichtig
Detail
Detail
#26254
Layout-Export scheitert beim Ändern von Layouts mit Overlays
Im Rahmen von Ticket #26183 wurde gefixt, dass Layouts aus dem Dateisystem nach Änderungen dynamisch neu geladen werden. Insbesondere wird bei jedem Zugriff auf den Cache für die Dateisystem Layouts geprüft, ob dieser noch aktuell ist. Falls nicht, dann wird der Cache aktualisiert.
Beim Export von Layouts wird zuerst das neue Layout ins Dateisystem geschrieben und anschließend das alte, jetzt ungültige, Layout aus dem Cache entfernt. Die Änderungen, die durch Overlays entstanden sind, befinden sich nun im exportierten Layout. Deswegen wird der Cache der Overlays angepasst bzw. die Overlays für dieses Layout entfernt.
Diese Reihenfolge führt durch die Änderungen in Ticket #26183 zu Problemen. Beim Entfernen des alten, ungültigen Layouts befindet sich bereits das neue Layout im Dateisystem. Bevor er das alte Layout löscht aktualisiert er den Cache. Da ein neues Layout sich im Dateisystem befindet, lädt er dieses neu. Die Overlays wurden noch nicht entfernt. D.h. beim Versuch das Layout zu erstellen, versucht er auf das neue Layout die alten Overlays zu applizieren. Die Änderungen befinden sich jedoch bereits im neuen Layout. Dies führt zu Fehlern über Duplikate bzw. nicht eindeutige Komponentennamen.
Test
Passe ein Layout an, dass mindestens ein Overlay besitzt und benutzt.
Beispiel: Navigiere in die Administration > Development und erstelle einen neuen Tab neben den anderen In-App Editoren, bspw. dem Hilfe-Editor. Exportiere anschließend das Layout ins Dateisystem. Erwartung: Kein Fehler.