Trigger-skript med kartkoordinater

Trigger-skript med kartkoordinater

Designet til Compose har blitt oppdatert. Siden kan inneholde skjermbilder av det gamle designet, men informasjonen er oppdatert. Vi takker for din tålmodighet mens vi oppdaterer bildene!

English

Dersom du ønsker å bruke kart-element i tjenesten din, og du er pålagt å overholde Universell Utforming (UU), så bør du sette deg inn i denne veiledningen. Et suksesskriterium i UU er nemlig at all skjemafunksjonalitet skal være anvendelig utelukkende med tastatur. Kart-funksjonalitet er generelt vrient kun med tastatur. Det er likevel mulig i å imøtekomme kravet (kilde: uutilsynet) dersom det er mulig å oppgi koordinater i skjema som automatisk markeres i kartet. I denne veiledningen vil det demonstreres hvordan dette suksesskriteriumet kan løses med trigger-skript. Kodespråket i Compose 8 er Groovy.

Legg til et kart- og to input-elementer på en skjemaside. For å fasilitere optimal brukervennlighet skal vi sette et trigger-skript både på input-elementene og også på kart-elementet. Slik vil en endring i alle tre elementene reflekteres automatisk. Det er forresten ikke nødvendig å bytte validering på feltene, da en kartmarkør defineres som en tekststreng.

Først setter vi triggere som markerer i kartet automatisk når både en lengdegrad og en breddegrad er satt. Velg et av input-elementene, naviger til Bygger-fanen i panelet med Egenskaper og trykk Trigger-knappen.

Trykk Legg til-knappen for å legge til en trigger, og velg at det skal trigges et skript etter utfylling. Hvis kart-grensesnittet skal reflektere koordinatene under utfylling, vil endringen i kartet kunne medføre mye unødvendig innlasting frem og tilbake og virke irriterende for sluttbrukeren.

En kartmarkør/kartsvar består av to koordinater formatert på følgende måte: 'breddegrad,lengdegrad'. Det vil ikke være mulig å markere i et kart uten både en lengdegrad og breddegrad, så derfor settes en if-setning som sjekker at både lengdegrad og breddegrad er oppgitt før markøren markeres. Det resterende skriptet former et fullstendig kartsvar fra breddegraden og lengdegraden:

if(Q2.answer != null && Q3.answer != null){ Q1.setAnswer(Q2.answer + ',' + Q3.answer) }

Husk å skifte ut Q-ID-ene med de riktige numrene til elementene i ditt skjema. I dette tilfellet er Q1 kartet, Q2 er breddegrad og Q3 er lengdegrad. Kopier skriptet med ctrl/cmd+C, fordi det samme skriptet skal legges på det andre input-feltet. Trykk OK for å lagre skriptet, og lag akkurat den samme triggeren på det siste input-feltet.

Nå vil vi sette en trigger på kartet som fyller input-feltene med koordinater fra en markør valgt i kart-grensesnittet. Velg kartet, naviger til Bygger-fanen i panelet med egenskaper og trykk på Trigger-knappen.

Triggere på kart kan kun trigges under utfylling. I skriptet trenger vi ingen if-setning. Kartsvar har to særegne metoder, nemlig .longitude og .latitude som henter ut koordinatene. Trykk OK når du har lagt inn skriptet, og husk å lagre kladden før du forhåndsviser siden.

Q2.answer = Q1.answer.latitude Q3.answer = Q1.answer.longitude

Test at skriptene reflekteres riktig ved å markere i kartet og endre lengdegrad og breddegrad.