FriendsOfREDAXO / geolocation

Tile-Proxy/Cache und Kartendarstellung mit Leaflet für REDAXO 5.13+
MIT License
26 stars 3 forks source link

Vorselektierte Karten in Kartensätzen #107

Closed christophboecker closed 1 year ago

christophboecker commented 1 year ago

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.

grafik

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