hajkmap / Hajk

A modern, full-featured OpenLayers based map viewer and editor
MIT License
123 stars 47 forks source link

Toggle all for groups/layer groups should work as expected #283

Closed FatemeHosseini closed 3 years ago

FatemeHosseini commented 5 years ago

Lagergrupper med 'Toggla alla-knapp' som själv innehåller underlagergrupper, inte kan tända lager som ligger i underlagergrupper; oavsett om underlagergruppen har 'Toggla alla-knapp' aktiverad eller inte.

image

FatemeHosseini commented 5 years ago

Jag hittade en annan intressant nu när jag testar. Se bilderna nedan, Mätpunkter och Lagergrupp nivå1 ligger i samma nivå. Om jag tänder Mätpunkter blir Kartlager grå men om jag tänder Lagergrupp nivå1 händer det inte något. image

image

jacobwod commented 5 years ago

Har testat här och tyvärr kvarstår issuen @sbk-linus @FatemeHosseini:

Issue 283 LayerSwitcher

Konfigurerat i admin enligt följande (med "vanliga, hajk2-grupper"): bild

jacobwod commented 5 years ago

Lyckligtvis påverkas bara Hajk2-grupper.

De nya Hajk3-grupperna hänger med vid toggling av huvudgrupp. Däremot så är det olika indrag på de olika grupptyperna, @sbk-linus. I nedanstående bild är de båda Hajk-grupperna samt Undergrupp på samma nivå, direkt under Kök. Men man får intrycket att Undergrupp ligger som Kök->Hajk-grupp->Undergrupp, vilket det alltså inte gör. Kan du fixa till stylingen?

bild

jacobwod commented 5 years ago

@sbk-linus Din senaste commit verkar inte ge några resultat här, se hur "Undergrupp" stylas.

image

Bortsett från stylingen har vi även problemet med togglingen. Är det nåt du tittar på också?

sbk-linus commented 5 years ago

Konfigurerade lagren på samma sätt som i exemplet, men det såg inte likadant ut. Har du någon config du skulle kunna dela?

jacobwod commented 5 years ago

Givetvis, men utan tillhörande layers.json kommer du förvisso se lagren men inte kunna ladda dem. Jag är osäker på om Hajk kommer "veta" att några av lagren är av typen hajk3-lagergrupp, så det är osäkert hur dessa kommer stylas hos dig. Men här är det relevanta avsnittet (ersätt det du har i tools[type="layerswitcher"].options.groups med följande):

{"groups":[{"id":"59b47b05-53ed-58ab-86e2-de5b13863384","parent":"-1","name":"Kök","toggled":true,"expanded":true,"layers":[{"id":"187","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"186","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"406","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"647","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"646","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null}],"groups":[{"id":"222e8cae-2137-034f-e609-288a594fe19f","parent":"59b47b05-53ed-58ab-86e2-de5b13863384","name":"Undergrupp","toggled":true,"expanded":true,"layers":[{"id":"100","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"380","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null}],"groups":[]}]},{"id":"11f7c430-ec36-0526-aed9-422f67a745ee","parent":"-1","name":"En grupp","toggled":true,"expanded":true,"layers":[{"id":"648","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null},{"id":"641","visibleAtStart":false,"drawOrder":1000,"visibleForGroups":null,"infobox":null}],"groups":[]}]}

I admin är det som sagt så här: Undergrupp är på samma nivå som de två Hajk-grupperna, båda har alltså Kök som förälder.

image
sbk-linus commented 5 years ago

Kan inte återskapa buggen i min utvecklingsmiljö. Skulle du kunna kolla på detta istället, @jacobwod?

jacobwod commented 5 years ago

OK får kolla när jag är tillbaka mitten på nästa vecka.

FatemeHosseini commented 5 years ago

"Tänd alla"-knappen fungerar inte när man har mera nivåer, se exemplet nedan. image

Jag kan bara tända alla som hamnar på lagergruppen som heter Busstrafik.

jacobwod commented 5 years ago

Du menar att det händer ingenting när du kryssar i "TRANSPORTER OCH INFRASTRUKTUR" eller "Transporter"?

FatemeHosseini commented 5 years ago

Japp!

jacobwod commented 5 years ago

Kollade på det och det ser inte bra ut. Toggle all verkar endast "ta" på det som finns definierat som lager i OpenLayers layers array. "Våra" egna grupper som skapas i admin är ju inte det. Resultatet blir att de förbises av toggle: bug-se12138221

Inställt såhär i admin: bild

Felet ligger i att vi loopar genom ett objekt som inte innehåller våra grupper. Det ser man tydligt här, allt som händer vidare i toggleLayers() utgår från arrayen som fås tillbaka från OpenLayers: https://github.com/hajkmap/Hajk/blob/master/new-client/src/plugins/layerswitcher/components/LayerGroup.js#L180

FatemeHosseini commented 5 years ago

Jag kan tända alla lager som visas i bilden nedan men checkboxen blir inte ifylld. image

sweco-seqtob commented 3 years ago

Vet inte om den här buggen fortfarande är aktiv men jag har en PR på gång som löser "hajkgrupper" i "hajkgrupper" för lagerhanteraren.

jacobwod commented 3 years ago

Vet inte om den här buggen fortfarande är aktiv men jag har en PR på gång som löser "hajkgrupper" i "hajkgrupper" för lagerhanteraren.

Ja, fortfarande öppen så din PR är välkommen!

sweco-seqtob commented 3 years ago

@jacobwod found another bug when having one layer and a group in a group and only checked they layer. Fixed by commit https://github.com/hajkmap/Hajk/commit/21e7545f52dc04b3627b6cf2fba376a848b43c85

jacobwod commented 3 years ago

Well done, merging in.

jacobwod commented 3 years ago

Ah it's already in master, perfect. I can confirm that this seems to squash down the last edge case I could find.

Before: Skärmavbild 2021-01-26 kl  15 11 21

After: Skärmavbild 2021-01-27 kl  09 51 01

Closing. 👍