Im Formular für Kartensätze kann zusätzlich zur reinen Auswahl und Festlegung der Reihenfolge durch diesen PR festgelegt werden, welche der Karten/Layer aktiviert sind.
Basiskarten: Davon kann nur eine aktiviert sein (Radio-Button). Bisher war immer die erste Karte die aktivierte. Nun kann es auch eine der anderen Kartens ein. "Aktiv"-Status und Reihenfolge sind entkoppelt.
Overlay-Karten: Bisher waren die Karten grundsätzlich ab Kartenstart deaktiviert. Jetzt können Karten, eine oder mehrere, ausgewählt werden, die direkt auf der Basiskarte angezeigt werden. (Checkbox).
Wie in #103 angedacht lies es sich nicht umsetzen, da Safari keine select-Option mit innen liegendem \-Tag erlaubt.
Statt dessen gibt es nun ein komplexeres HTML, das auf Bootstrap´s List-Group beruht. Die Abwicklung übernimmt ein neues YForm-Value "layerselect", das auf be_manager_relation aufbaut und nur für dieses Formular verfügbar ist. Der im Original von be_manager_relation erstellte HTML-Code mit der widget-list wird modifiziert und nur in Teilen (Anfang, Ende, Popup-Button, Options) wiederverwendet.
Der Popup-Button löst den gewöhnten Effekt aus: Popup öffnen, Auswahl in ein (nun hidden) Select übernehmen. Via MutationObserver wird das erkannt und der neue Eintrag in die neue Liste überführt.
Zusätzlich gibt es zwei Felder in der Tabelle (layer_selected, overlay_selected), die keine Entsprechung in einem YForm-Field haben, sondern von layerselect verwaltet werden. Dort stehen die Ids der selektierten Einträge der Liste (Haken der Checkbox/Radio-Button).
Beim Update werden die Tabellen und Felddefinitionen angepasst.
JS-seitig kommt im neuen Value CustomHTML zu Einsatz:
\ als Klammer um das Widget. Hier läuft der Mutation-Observer.
\ für die Einträge verwaltet Buttons und Key-Events zum Verschieben der Elemente, zum Anklicken (Check/Radio) und Entfernen
\ stellt etwas andere "Buttons" zur Verfügung (löst CustomEvents aus, parametrisiert durch HTML-Attribute)
Im Formular für Kartensätze kann zusätzlich zur reinen Auswahl und Festlegung der Reihenfolge durch diesen PR festgelegt werden, welche der Karten/Layer aktiviert sind.
Basiskarten: Davon kann nur eine aktiviert sein (Radio-Button). Bisher war immer die erste Karte die aktivierte. Nun kann es auch eine der anderen Kartens ein. "Aktiv"-Status und Reihenfolge sind entkoppelt.
Overlay-Karten: Bisher waren die Karten grundsätzlich ab Kartenstart deaktiviert. Jetzt können Karten, eine oder mehrere, ausgewählt werden, die direkt auf der Basiskarte angezeigt werden. (Checkbox).
Wie in #103 angedacht lies es sich nicht umsetzen, da Safari keine select-Option mit innen liegendem \-Tag erlaubt.
Statt dessen gibt es nun ein komplexeres HTML, das auf Bootstrap´s List-Group beruht. Die Abwicklung übernimmt ein neues YForm-Value "layerselect", das auf be_manager_relation aufbaut und nur für dieses Formular verfügbar ist. Der im Original von be_manager_relation erstellte HTML-Code mit der widget-list wird modifiziert und nur in Teilen (Anfang, Ende, Popup-Button, Options) wiederverwendet.
Der Popup-Button löst den gewöhnten Effekt aus: Popup öffnen, Auswahl in ein (nun hidden) Select übernehmen. Via MutationObserver wird das erkannt und der neue Eintrag in die neue Liste überführt.
Zusätzlich gibt es zwei Felder in der Tabelle (layer_selected, overlay_selected), die keine Entsprechung in einem YForm-Field haben, sondern von layerselect verwaltet werden. Dort stehen die Ids der selektierten Einträge der Liste (Haken der Checkbox/Radio-Button).
Beim Update werden die Tabellen und Felddefinitionen angepasst.
JS-seitig kommt im neuen Value CustomHTML zu Einsatz:
closes #103