From 0c95b1ba1c9663da1e72373defad50bfc574e3b8 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 13 May 2025 01:33:26 +0200 Subject: [PATCH 01/39] Themes(pubs): add reusable cups question (https://en.osm.town/@sunset_sakura/114496889401421866) --- assets/layers/cafe_pub/cafe_pub.json | 33 +++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json index ca934ab072..2b9052268c 100644 --- a/assets/layers/cafe_pub/cafe_pub.json +++ b/assets/layers/cafe_pub/cafe_pub.json @@ -285,7 +285,7 @@ ], "tagRenderings": [ "images", - "level", + "reviews", { "question": { "nl": "Wat is de naam van deze zaak?", @@ -432,13 +432,40 @@ "email", "phone", "payment-options", - "wheelchair-access", + "level", "smoking", + "wheelchair-access", + { + "question": { + "en": "Does {title()} accept bring-your-own reusable cups?" + }, + "id": "pub_reusable_packaging", + "mappings": [ + { + "if": "reusable_packaging:accept=yes", + "then": { + "en": "Accepts reusable cups" + } + }, + { + "if": "reusable_packaging:accept=no", + "alsoShowIf": "reusable_packaging:accept=", + "then": { + "en": "Does not accept reusable cups" + } + }, + { + "if": "reusable_packaging:accept=only", + "then": { + "en": "Only serves to people who bring reusable cups" + } + } + ] + }, "service:electricity", "seating", "dog-access", "internet-all", - "reviews", "toilet_at_amenity_lib.all" ], "filter": [ From 5319412dacea4e9885a7c911e955efdc60840eee Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 9 May 2025 15:35:38 +0200 Subject: [PATCH 02/39] Fix: inspector: fix AggregateImages.svelte --- src/UI/History/AggregateImages.svelte | 6 +++--- src/UI/Image/AttributedImage.svelte | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/UI/History/AggregateImages.svelte b/src/UI/History/AggregateImages.svelte index 020c8285a8..faf9cc8527 100644 --- a/src/UI/History/AggregateImages.svelte +++ b/src/UI/History/AggregateImages.svelte @@ -15,13 +15,13 @@ Promise.all(features.map((f) => downloader.downloadHistory(f.properties.id))) ) let imageKeys = new Set( - ...["panoramax", "image:streetsign", "image:menu"].map((k) => { + [].concat(...["panoramax", "image:streetsign", "image:menu", "toilets:wheelchair:panoramax"].map((k) => { const result: string[] = [k] for (let i = 0; i < 10; i++) { result.push(k + ":" + i) } return result - }) + })) ) let usernamesSet = new Set(onlyShowUsername) let allDiffs: Store< @@ -42,7 +42,7 @@ {:else if $addedImages.length === 0} No images added by this contributor {:else} -
+
{#each $addedImages as imgDiff}
diff --git a/src/UI/Image/AttributedImage.svelte b/src/UI/Image/AttributedImage.svelte index 33a304fc63..20a1ddf3ba 100644 --- a/src/UI/Image/AttributedImage.svelte +++ b/src/UI/Image/AttributedImage.svelte @@ -45,7 +45,7 @@ let showBigPreview = new UIEventSource(false) onDestroy( showBigPreview.addCallbackAndRun((shown) => { - state.guistate.setPreviewedImage(shown ? image : undefined) + state?.guistate?.setPreviewedImage(shown ? image : undefined) }) ) if (previewedImage) { From cd0400fc517a43657421e22124d7ff2f40c3259b Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 9 May 2025 17:20:02 +0200 Subject: [PATCH 03/39] UX: allow ',' in input of floats, kerb height now accepts pfloat instead of pnat --- assets/layers/entrance/entrance.json | 2 +- .../InputElement/Validators/FloatValidator.ts | 17 +++++++++++++++-- .../InputElement/Validators/PFloatValidator.ts | 16 ++++++++++++---- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/assets/layers/entrance/entrance.json b/assets/layers/entrance/entrance.json index 05d576f5a5..3f95503155 100644 --- a/assets/layers/entrance/entrance.json +++ b/assets/layers/entrance/entrance.json @@ -629,7 +629,7 @@ "es": "Altura del bordillo de la puerta", "it": "Altezza del gradino della porta" }, - "type": "pnat" + "type": "pfloat" }, "mappings": [ { diff --git a/src/UI/InputElement/Validators/FloatValidator.ts b/src/UI/InputElement/Validators/FloatValidator.ts index 4ce5da81ea..2fb5bfcb4b 100644 --- a/src/UI/InputElement/Validators/FloatValidator.ts +++ b/src/UI/InputElement/Validators/FloatValidator.ts @@ -6,15 +6,28 @@ import { ValidatorType } from "../Validators" export default class FloatValidator extends Validator { inputmode: "decimal" = "decimal" as const + protected static readonly formattingHasComma = ("" + 1.42).indexOf(",") > 0 + constructor(name?: ValidatorType, explanation?: string) { super(name ?? "float", explanation ?? "A decimal number", "decimal") } - isValid(str) { + /** + * + * new FloatValidator().isValid("0,2") // => true + */ + isValid(str: string) { + console.log("Is valid?", str, FloatValidator.formattingHasComma) + if (!FloatValidator.formattingHasComma) { + str = str.replace(",", ".") + } return !isNaN(Number(str)) && !str.endsWith(".") && !str.endsWith(",") } - reformat(str): string { + reformat(str: string): string { + if (!FloatValidator.formattingHasComma) { + str = str.replace(",", ".") + } return "" + Number(str) } diff --git a/src/UI/InputElement/Validators/PFloatValidator.ts b/src/UI/InputElement/Validators/PFloatValidator.ts index cc5d108a9b..7b3c2aa713 100644 --- a/src/UI/InputElement/Validators/PFloatValidator.ts +++ b/src/UI/InputElement/Validators/PFloatValidator.ts @@ -1,14 +1,22 @@ import { Translation } from "../../i18n/Translation" import Translations from "../../i18n/Translations" -import { Validator } from "../Validator" +import FloatValidator from "./FloatValidator" -export default class PFloatValidator extends Validator { +export default class PFloatValidator extends FloatValidator { constructor() { super("pfloat", "A positive decimal number or zero") } - isValid = (str) => - !isNaN(Number(str)) && Number(str) >= 0 && !str.endsWith(".") && !str.endsWith(",") + isValid(str: string) { + if (!super.isValid(str)) { + return false + } + if (!FloatValidator.formattingHasComma) { + str = str.replace(",", ".") + } + const n = Number(str) + return n >= 0 + } getFeedback(s: string): Translation { const spr = super.getFeedback(s) From 6df457fb387e42280c525306e1edcf282bf90c9b Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 9 May 2025 22:37:25 +0200 Subject: [PATCH 04/39] Themes(elevator): Move speech output question higher, add condition on induction loop question, see #2411 --- assets/layers/elevator/elevator.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/assets/layers/elevator/elevator.json b/assets/layers/elevator/elevator.json index 4d019cadf8..761b0dfc43 100644 --- a/assets/layers/elevator/elevator.json +++ b/assets/layers/elevator/elevator.json @@ -367,7 +367,6 @@ } ] }, - "induction-loop", { "id": "tactile_writing_available", "question": { @@ -524,6 +523,16 @@ } } } + }, + { + "builtin": "induction-loop", + "override": { + "condition": { + "and+": [ + "speech_output=yes" + ] + } + } } ], "allowMove": { From 51aa43efaa3fd5156e068ae6830454ef518f77fd Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 9 May 2025 23:50:01 +0200 Subject: [PATCH 05/39] Themes(shops): add hairdresser specific questions --- assets/layers/food/food.json | 77 +++----------------------- assets/layers/questions/questions.json | 70 +++++++++++++++++++++++ assets/layers/shops/shops.json | 50 ++++++++++++++++- 3 files changed, 127 insertions(+), 70 deletions(-) diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 9683e6d699..95f9e53d0d 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -708,76 +708,15 @@ } }, { - "id": "Reservation", - "condition": "takeaway!=only", - "question": { - "en": "Is a reservation required for this place?", - "nl": "Is reserveren verplicht voor deze zaak?", - "de": "Ist an diesem Ort eine Reservierung erforderlich?", - "ca": "És necessari reservar en aquest lloc?", - "fr": "Est-il nécessaire de réserver à cet endroit ?", - "pl": "Czy w tym miejscu rezerwacja jest wymagana?", - "cs": "Je pro toto místo nutná rezervace?", - "es": "¿Se requiere reserva para este lugar?", - "it": "È richiesta una prenotazione per questo posto?" - }, - "mappings": [ - { - "if": "reservation=required", - "then": { - "en": "A reservation is required at this place", - "nl": "Reserveren is verplicht voor deze zaak", - "de": "Hier ist eine Reservierung erforderlich", - "ca": "En aquest lloc cal reservar", - "fr": "Il est nécessaire de réserver à cet endroit", - "cs": "Na tomto místě je nutná rezervace", - "es": "Se requiere reserva en este lugar", - "it": "In questo posto è richiesta una prenotazione" - } + "builtin": "reservation", + "override": { + "condition": { + "and+": [ + "takeaway!=only" + ] }, - { - "if": "reservation=recommended", - "then": { - "en": "A reservation is not required, but still recommended to make sure you get a table", - "nl": "Reserveren is niet verplicht, maar wordt wel aangeraden om zeker te zijn van een tafel", - "de": "Eine Reservierung ist nicht erforderlich, wird aber empfohlen, damit Sie einen Tisch bekommen", - "ca": "No cal fer reserva, però tot i així es recomana per assegurar-vos que teniu taula", - "fr": "Une réservation n'est pas obligatoire, mais est recommandée pour être sûr d'avoir une table", - "cs": "Rezervace není nutná, ale přesto se doporučuje, abyste se ujistili, že dostanete stůl", - "es": "No se requiere reserva, pero aún así se recomienda para asegurar una mesa", - "it": "Non è richiesta una prenotazione, ma è comunque consigliata per assicurarsi un tavolo" - } - }, - { - "if": "reservation=yes", - "then": { - "en": "Reservation is possible at this place", - "nl": "Reserveren is mogelijk voor deze zaak", - "de": "Eine Reservierung ist an diesem Ort möglich", - "ca": "És possible reservar en aquest lloc", - "fr": "La réservation est possible à cet endroit", - "pl": "W tym miejscu możliwa jest rezerwacja", - "cs": "Rezervace je možná na tomto místě", - "es": "Es posible reservar en este lugar", - "it": "In questo posto è possibile prenotare" - } - }, - { - "if": "reservation=no", - "then": { - "en": "Reservation is not possible at this place", - "nl": "Reserveren is niet mogelijk voor deze zaak", - "de": "Eine Reservierung ist an diesem Ort nicht möglich", - "ca": "En aquest lloc no es pot reservar", - "fr": "Il n'est pas possible de réserver à cet endroit", - "pl": "Rezerwacja nie jest możliwa w tym miejscu", - "cs": "Rezervace na tomto místě není možná", - "es": "No es posible reservar en este lugar", - "it": "In questo posto non è possibile prenotare" - } - } - ], - "#condition": "If one can only do takeaway or deliveries, it is nonsensical to ask if a 'reservation' is possible" + "#condition": "If one can only do takeaway or deliveries, it is nonsensical to ask if a 'reservation' is possible" + } }, { "question": { diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index 06f8a87bcc..0d8733b395 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -3493,6 +3493,76 @@ "minzoom": 18 } ] + }, + { + "id": "reservation", + "question": { + "en": "Is a reservation required for this place?", + "nl": "Is reserveren verplicht voor deze zaak?", + "de": "Ist an diesem Ort eine Reservierung erforderlich?", + "ca": "És necessari reservar en aquest lloc?", + "fr": "Est-il nécessaire de réserver à cet endroit ?", + "pl": "Czy w tym miejscu rezerwacja jest wymagana?", + "cs": "Je pro toto místo nutná rezervace?", + "es": "¿Se requiere reserva para este lugar?", + "it": "È richiesta una prenotazione per questo posto?" + }, + "mappings": [ + { + "if": "reservation=required", + "then": { + "en": "A reservation is required at this place", + "nl": "Reserveren is verplicht voor deze zaak", + "de": "Hier ist eine Reservierung erforderlich", + "ca": "En aquest lloc cal reservar", + "fr": "Il est nécessaire de réserver à cet endroit", + "cs": "Na tomto místě je nutná rezervace", + "es": "Se requiere reserva en este lugar", + "it": "In questo posto è richiesta una prenotazione" + } + }, + { + "if": "reservation=recommended", + "then": { + "en": "A reservation is not required, but still recommended to make sure you get a table", + "nl": "Reserveren is niet verplicht, maar wordt wel aangeraden om zeker te zijn van een tafel", + "de": "Eine Reservierung ist nicht erforderlich, wird aber empfohlen, damit Sie einen Tisch bekommen", + "ca": "No cal fer reserva, però tot i així es recomana per assegurar-vos que teniu taula", + "fr": "Une réservation n'est pas obligatoire, mais est recommandée pour être sûr d'avoir une table", + "cs": "Rezervace není nutná, ale přesto se doporučuje, abyste se ujistili, že dostanete stůl", + "es": "No se requiere reserva, pero aún así se recomienda para asegurar una mesa", + "it": "Non è richiesta una prenotazione, ma è comunque consigliata per assicurarsi un tavolo" + } + }, + { + "if": "reservation=yes", + "then": { + "en": "Reservation is possible at this place", + "nl": "Reserveren is mogelijk voor deze zaak", + "de": "Eine Reservierung ist an diesem Ort möglich", + "ca": "És possible reservar en aquest lloc", + "fr": "La réservation est possible à cet endroit", + "pl": "W tym miejscu możliwa jest rezerwacja", + "cs": "Rezervace je možná na tomto místě", + "es": "Es posible reservar en este lugar", + "it": "In questo posto è possibile prenotare" + } + }, + { + "if": "reservation=no", + "then": { + "en": "Reservation is not possible at this place", + "nl": "Reserveren is niet mogelijk voor deze zaak", + "de": "Eine Reservierung ist an diesem Ort nicht möglich", + "ca": "En aquest lloc no es pot reservar", + "fr": "Il n'est pas possible de réserver à cet endroit", + "pl": "Rezerwacja nie jest możliwa w tym miejscu", + "cs": "Rezervace na tomto místě není možná", + "es": "No es posible reservar en este lugar", + "it": "In questo posto non è possibile prenotare" + } + } + ] } ], "allowMove": false, diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index 6b33525b9e..c0e3c86e5a 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -702,6 +702,47 @@ ] } }, + { + "id": "hairdresser-targetgroup", + "multiAnswer": true, + "question": { + "en": "In what target groups does this hairdresser specialize?" + }, + "condition": "shop=hairdresser", + "mappings": [ + { + "if": "male=yes", + "ifnot": "male=no", + "then": { + "en": "Specializes in cutting men's hair." + } + }, + { + "if": "female=yes", + "ifnot": "female=no", + "then": { + "en": "Specializes in cutting women's hair." + } + }, + { + "if": "children=yes", + "ifnot": "children=no", + "then": { + "en": "Specializes in cutting kids hair." + } + } + ] + }, + { + "builtin": "reservation", + "override": { + "condition": { + "and+": [ + "shop=hairdresser" + ] + } + } + }, { "id": "sells_new_bikes", "question": { @@ -1366,7 +1407,14 @@ } } }, - "dog-access", + { + "override": "dog-access", + "condition": { + "and+": [ + "shop!=hairdresser" + ] + } + }, "description", "toilet_at_amenity_lib.all" ], From a1510f11aa4c507b7a83558319bd23535ec64b42 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 10 May 2025 08:53:19 +0200 Subject: [PATCH 06/39] Chore: translation reset --- langs/layers/ca.json | 34 +++++++++++++++---------------- langs/layers/cs.json | 34 +++++++++++++++---------------- langs/layers/de.json | 34 +++++++++++++++---------------- langs/layers/en.json | 48 ++++++++++++++++++++++++++++---------------- langs/layers/es.json | 34 +++++++++++++++---------------- langs/layers/fr.json | 34 +++++++++++++++---------------- langs/layers/it.json | 34 +++++++++++++++---------------- langs/layers/nl.json | 34 +++++++++++++++---------------- langs/layers/pl.json | 22 ++++++++++---------- 9 files changed, 161 insertions(+), 147 deletions(-) diff --git a/langs/layers/ca.json b/langs/layers/ca.json index 8130a865f6..362339e790 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -5869,23 +5869,6 @@ "question": "Quin és el nom d'aquest negoci?", "render": "El nom d'aquest negoci és {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "En aquest lloc cal reservar" - }, - "1": { - "then": "No cal fer reserva, però tot i així es recomana per assegurar-vos que teniu taula" - }, - "2": { - "then": "És possible reservar en aquest lloc" - }, - "3": { - "then": "En aquest lloc no es pot reservar" - } - }, - "question": "És necessari reservar en aquest lloc?" - }, "Takeaway": { "mappings": { "0": { @@ -9177,6 +9160,23 @@ "repeated": { "render": "Es poden trobar múltiples objectes idèntics a les plantes {repeat_on}." }, + "reservation": { + "mappings": { + "0": { + "then": "En aquest lloc cal reservar" + }, + "1": { + "then": "No cal fer reserva, però tot i així es recomana per assegurar-vos que teniu taula" + }, + "2": { + "then": "És possible reservar en aquest lloc" + }, + "3": { + "then": "En aquest lloc no es pot reservar" + } + }, + "question": "És necessari reservar en aquest lloc?" + }, "seasonal": { "mappings": { "0": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 5af59dce76..242571df98 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -5656,23 +5656,6 @@ "question": "Jak se tento podnik jmenuje?", "render": "Název tohoto podniku je {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "Na tomto místě je nutná rezervace" - }, - "1": { - "then": "Rezervace není nutná, ale přesto se doporučuje, abyste se ujistili, že dostanete stůl" - }, - "2": { - "then": "Rezervace je možná na tomto místě" - }, - "3": { - "then": "Rezervace na tomto místě není možná" - } - }, - "question": "Je pro toto místo nutná rezervace?" - }, "Takeaway": { "mappings": { "0": { @@ -8426,6 +8409,23 @@ "repeated": { "render": "V patrech {repeat_on} lze nalézt více identických objektů." }, + "reservation": { + "mappings": { + "0": { + "then": "Na tomto místě je nutná rezervace" + }, + "1": { + "then": "Rezervace není nutná, ale přesto se doporučuje, abyste se ujistili, že dostanete stůl" + }, + "2": { + "then": "Rezervace je možná na tomto místě" + }, + "3": { + "then": "Rezervace na tomto místě není možná" + } + }, + "question": "Je pro toto místo nutná rezervace?" + }, "seasonal": { "mappings": { "1": { diff --git a/langs/layers/de.json b/langs/layers/de.json index a2b3659042..548502d778 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -5847,23 +5847,6 @@ "question": "Was ist der Name dieses Unternehmens?", "render": "Dieses Unternehmen heißt {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "Hier ist eine Reservierung erforderlich" - }, - "1": { - "then": "Eine Reservierung ist nicht erforderlich, wird aber empfohlen, damit Sie einen Tisch bekommen" - }, - "2": { - "then": "Eine Reservierung ist an diesem Ort möglich" - }, - "3": { - "then": "Eine Reservierung ist an diesem Ort nicht möglich" - } - }, - "question": "Ist an diesem Ort eine Reservierung erforderlich?" - }, "Takeaway": { "mappings": { "0": { @@ -9141,6 +9124,23 @@ "repeated": { "render": "Mehrere identische Objekte können in Geschossen {repeat_on} gefunden werden." }, + "reservation": { + "mappings": { + "0": { + "then": "Hier ist eine Reservierung erforderlich" + }, + "1": { + "then": "Eine Reservierung ist nicht erforderlich, wird aber empfohlen, damit Sie einen Tisch bekommen" + }, + "2": { + "then": "Eine Reservierung ist an diesem Ort möglich" + }, + "3": { + "then": "Eine Reservierung ist an diesem Ort nicht möglich" + } + }, + "question": "Ist an diesem Ort eine Reservierung erforderlich?" + }, "seasonal": { "mappings": { "0": { diff --git a/langs/layers/en.json b/langs/layers/en.json index ea62e5db1a..b1241bcd9e 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -6117,23 +6117,6 @@ "question": "What is the name of this business?", "render": "The name of this business is {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "A reservation is required at this place" - }, - "1": { - "then": "A reservation is not required, but still recommended to make sure you get a table" - }, - "2": { - "then": "Reservation is possible at this place" - }, - "3": { - "then": "Reservation is not possible at this place" - } - }, - "question": "Is a reservation required for this place?" - }, "Takeaway": { "mappings": { "0": { @@ -9635,6 +9618,23 @@ "repeated": { "render": "Multiple, identical objects can be found on floors {repeat_on}." }, + "reservation": { + "mappings": { + "0": { + "then": "A reservation is required at this place" + }, + "1": { + "then": "A reservation is not required, but still recommended to make sure you get a table" + }, + "2": { + "then": "Reservation is possible at this place" + }, + "3": { + "then": "Reservation is not possible at this place" + } + }, + "question": "Is a reservation required for this place?" + }, "seasonal": { "mappings": { "0": { @@ -10694,6 +10694,20 @@ }, "question": "What paper formats does this shop offer?" }, + "hairdresser-targetgroup": { + "mappings": { + "0": { + "then": "Specializes in cutting men's hair." + }, + "1": { + "then": "Specializes in cutting women's hair." + }, + "2": { + "then": "Specializes in cutting kids hair." + } + }, + "question": "In what target groups does this hairdresser specialize?" + }, "id_presets.shop_types": { "override": { "+mappings": { diff --git a/langs/layers/es.json b/langs/layers/es.json index b2e6be6289..02d88b86bb 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -5511,23 +5511,6 @@ "question": "¿Cuál es el nombre de este negocio?", "render": "El nombre de este negocio es {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "Se requiere reserva en este lugar" - }, - "1": { - "then": "No se requiere reserva, pero aún así se recomienda para asegurar una mesa" - }, - "2": { - "then": "Es posible reservar en este lugar" - }, - "3": { - "then": "No es posible reservar en este lugar" - } - }, - "question": "¿Se requiere reserva para este lugar?" - }, "Takeaway": { "mappings": { "0": { @@ -8753,6 +8736,23 @@ "repeated": { "render": "Se pueden encontrar varios objetos idénticos en las plantas {repeat_on}." }, + "reservation": { + "mappings": { + "0": { + "then": "Se requiere reserva en este lugar" + }, + "1": { + "then": "No se requiere reserva, pero aún así se recomienda para asegurar una mesa" + }, + "2": { + "then": "Es posible reservar en este lugar" + }, + "3": { + "then": "No es posible reservar en este lugar" + } + }, + "question": "¿Se requiere reserva para este lugar?" + }, "seasonal": { "mappings": { "0": { diff --git a/langs/layers/fr.json b/langs/layers/fr.json index f3973e514e..1221e21d21 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -3780,23 +3780,6 @@ "question": "Quel est le nom de ce restaurant ?", "render": "Le nom de ce restaurant est {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "Il est nécessaire de réserver à cet endroit" - }, - "1": { - "then": "Une réservation n'est pas obligatoire, mais est recommandée pour être sûr d'avoir une table" - }, - "2": { - "then": "La réservation est possible à cet endroit" - }, - "3": { - "then": "Il n'est pas possible de réserver à cet endroit" - } - }, - "question": "Est-il nécessaire de réserver à cet endroit ?" - }, "Takeaway": { "mappings": { "0": { @@ -5437,6 +5420,23 @@ "phone": { "question": "Quel est le numéro de téléphone de {title()} ?" }, + "reservation": { + "mappings": { + "0": { + "then": "Il est nécessaire de réserver à cet endroit" + }, + "1": { + "then": "Une réservation n'est pas obligatoire, mais est recommandée pour être sûr d'avoir une table" + }, + "2": { + "then": "La réservation est possible à cet endroit" + }, + "3": { + "then": "Il n'est pas possible de réserver à cet endroit" + } + }, + "question": "Est-il nécessaire de réserver à cet endroit ?" + }, "service:electricity": { "mappings": { "0": { diff --git a/langs/layers/it.json b/langs/layers/it.json index 4aa1424884..21bc1a534e 100644 --- a/langs/layers/it.json +++ b/langs/layers/it.json @@ -6117,23 +6117,6 @@ "question": "Qual è il nome di questa attività?", "render": "Il nome di questa attività è {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "In questo posto è richiesta una prenotazione" - }, - "1": { - "then": "Non è richiesta una prenotazione, ma è comunque consigliata per assicurarsi un tavolo" - }, - "2": { - "then": "In questo posto è possibile prenotare" - }, - "3": { - "then": "In questo posto non è possibile prenotare" - } - }, - "question": "È richiesta una prenotazione per questo posto?" - }, "Takeaway": { "mappings": { "0": { @@ -9629,6 +9612,23 @@ "repeated": { "render": "Oggetti multipli e identici possono essere trovati ai piani {repeat_on}." }, + "reservation": { + "mappings": { + "0": { + "then": "In questo posto è richiesta una prenotazione" + }, + "1": { + "then": "Non è richiesta una prenotazione, ma è comunque consigliata per assicurarsi un tavolo" + }, + "2": { + "then": "In questo posto è possibile prenotare" + }, + "3": { + "then": "In questo posto non è possibile prenotare" + } + }, + "question": "È richiesta una prenotazione per questo posto?" + }, "seasonal": { "mappings": { "0": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 257499bdaf..30a611002f 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -5527,23 +5527,6 @@ "question": "Wat is de naam van deze eetgelegenheid?", "render": "De naam van deze eetgelegeheid is {name}" }, - "Reservation": { - "mappings": { - "0": { - "then": "Reserveren is verplicht voor deze zaak" - }, - "1": { - "then": "Reserveren is niet verplicht, maar wordt wel aangeraden om zeker te zijn van een tafel" - }, - "2": { - "then": "Reserveren is mogelijk voor deze zaak" - }, - "3": { - "then": "Reserveren is niet mogelijk voor deze zaak" - } - }, - "question": "Is reserveren verplicht voor deze zaak?" - }, "Takeaway": { "mappings": { "0": { @@ -8206,6 +8189,23 @@ "repeated": { "render": "Er zijn verschillende, identieke objecten op verdiepingen {repeat_on}." }, + "reservation": { + "mappings": { + "0": { + "then": "Reserveren is verplicht voor deze zaak" + }, + "1": { + "then": "Reserveren is niet verplicht, maar wordt wel aangeraden om zeker te zijn van een tafel" + }, + "2": { + "then": "Reserveren is mogelijk voor deze zaak" + }, + "3": { + "then": "Reserveren is niet mogelijk voor deze zaak" + } + }, + "question": "Is reserveren verplicht voor deze zaak?" + }, "seasonal": { "mappings": { "0": { diff --git a/langs/layers/pl.json b/langs/layers/pl.json index 34a076e957..56bf8b13ae 100644 --- a/langs/layers/pl.json +++ b/langs/layers/pl.json @@ -2099,17 +2099,6 @@ } } }, - "Reservation": { - "mappings": { - "2": { - "then": "W tym miejscu możliwa jest rezerwacja" - }, - "3": { - "then": "Rezerwacja nie jest możliwa w tym miejscu" - } - }, - "question": "Czy w tym miejscu rezerwacja jest wymagana?" - }, "Vegan (no friture)": { "mappings": { "0": { @@ -3379,6 +3368,17 @@ "phone": { "question": "Jaki jest numer telefonu do {title()}?" }, + "reservation": { + "mappings": { + "2": { + "then": "W tym miejscu możliwa jest rezerwacja" + }, + "3": { + "then": "Rezerwacja nie jest możliwa w tym miejscu" + } + }, + "question": "Czy w tym miejscu rezerwacja jest wymagana?" + }, "service:electricity": { "mappings": { "0": { From 50a415f304e218fe004f16a2a8ee6ad68568d872 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 10 May 2025 08:58:47 +0200 Subject: [PATCH 07/39] Fix build --- assets/layers/shops/shops.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index c0e3c86e5a..03ea43f0da 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -1408,11 +1408,14 @@ } }, { - "override": "dog-access", - "condition": { - "and+": [ - "shop!=hairdresser" - ] + "id": "shop-dog-access", + "builtin": "dog-access", + "override": { + "condition": { + "and+": [ + "shop!=hairdresser" + ] + } } }, "description", From 493b563766f740a4b95bd15f11422af9aa85b236 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 12 May 2025 15:31:03 +0200 Subject: [PATCH 08/39] Fix: add comment on duplicate nearby images, make sure they are always deduplicated --- src/Logic/Web/NearbyImagesSearch.ts | 63 ++++++++++++++--------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/src/Logic/Web/NearbyImagesSearch.ts b/src/Logic/Web/NearbyImagesSearch.ts index 066bb10cf0..298e1e552d 100644 --- a/src/Logic/Web/NearbyImagesSearch.ts +++ b/src/Logic/Web/NearbyImagesSearch.ts @@ -101,7 +101,7 @@ class P4CImageFetcher implements ImageFetcher { searchRadius, { mindate: new Date().getTime() - maxAgeSeconds, - towardscenter: false, + towardscenter: false } ) } catch (e) { @@ -152,9 +152,9 @@ class ImagesInLoadedDataFetcher implements ImageFetcher { coordinates: { lng: centerpoint[0], lat: centerpoint[1] }, provider: "OpenStreetMap", details: { - isSpherical: false, + isSpherical: false }, - osmTags: { image }, + osmTags: { image } }) } }) @@ -170,7 +170,7 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { public static readonly apiUrls: ReadonlyArray = [ "https://panoramax.openstreetmap.fr", "https://api.panoramax.xyz", - "https://panoramax.mapcomplete.org", + "https://panoramax.mapcomplete.org" ] constructor(url?: string, radius: number = 50) { @@ -191,7 +191,7 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { provider: "panoramax", direction: imageData.properties["view:azimuth"], osmTags: { - panoramax: imageData.id, + panoramax: imageData.id }, thumbUrl: imageData.assets.thumb.href, date: new Date(imageData.properties.datetime).getTime(), @@ -200,8 +200,8 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { detailsUrl: imageData.id, details: { isSpherical: - imageData.properties["exif"]["Xmp.GPano.ProjectionType"] === "equirectangular", - }, + imageData.properties["exif"]["Xmp.GPano.ProjectionType"] === "equirectangular" + } } } @@ -209,16 +209,16 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { const radiusSettings = [ { place_fov_tolerance: 180, - radius: 15, + radius: 15 }, { place_fov_tolerance: 180, - radius: 25, + radius: 25 }, { place_fov_tolerance: 90, - radius: 50, - }, + radius: 50 + } ] const promises: Promise[] = [] const maxRadius = this._radius @@ -233,7 +233,7 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { place: [lon, lat], place_distance: [prevRadius, Math.min(maxRadius, radiusSetting.radius)], place_fov_tolerance: radiusSetting.place_fov_tolerance, - limit: 50, + limit: 50 }) promises.push(promise) prevRadius = radiusSetting.radius @@ -243,6 +243,7 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { } const images = await Promise.all(promises) + // This might give duplicates, but worry not: they are deduped by the 'combinedImageFetcher' return [].concat(...images).map((i) => ImagesFromPanoramaxFetcher.convert(i)) } } @@ -276,7 +277,7 @@ class MapillaryFetcher implements ImageFetcher { boundingBox.getWest(), boundingBox.getSouth(), boundingBox.getEast(), - boundingBox.getNorth(), + boundingBox.getNorth() ].join(",") + "&access_token=" + encodeURIComponent(Constants.mapillary_client_token_v4) + @@ -322,10 +323,10 @@ class MapillaryFetcher implements ImageFetcher { coordinates: { lng: c[0], lat: c[1] }, thumbUrl: img.thumb_256_url, osmTags: { - mapillary: img.id, + mapillary: img.id }, details: { - isSpherical: this._panoramas === "only", + isSpherical: this._panoramas === "only" }, detailsUrl: Mapillary.singleton.visitUrl(img, { lon, lat }), @@ -348,7 +349,7 @@ export class CombinedFetcher { Imgur.apiUrl, ...Imgur.supportingUrls, ...MapillaryFetcher.apiUrls, - ...ImagesFromPanoramaxFetcher.apiUrls, + ...ImagesFromPanoramaxFetcher.apiUrls ] constructor(radius: number, maxage: Date, indexedFeatures: IndexedFeatureSource) { @@ -360,15 +361,15 @@ export class CombinedFetcher { new MapillaryFetcher({ max_images: 25, start_captured_at: maxage, - panoramas: "only", + panoramas: "only" }), new MapillaryFetcher({ max_images: 25, start_captured_at: maxage, - panoramas: "no", + panoramas: "no" }), new P4CImageFetcher("mapillary"), - new P4CImageFetcher("wikicommons"), + new P4CImageFetcher("wikicommons") ].map((f) => new CachedFetcher(f)) } @@ -384,22 +385,18 @@ export class CombinedFetcher { state.data[source.name] = "done" state.ping() - if (sink.data === undefined) { - sink.setData(pics) - } else { - const newList = [] - const seenIds = new Set() - for (const p4CPicture of [...sink.data, ...pics]) { - const id = p4CPicture.pictureUrl - if (seenIds.has(id)) { - continue - } - newList.push(p4CPicture) - seenIds.add(id) + const newList = [] + const seenIds = new Set() + for (const p4CPicture of [...sink.data ?? [], ...pics]) { + const id = p4CPicture.pictureUrl + if (seenIds.has(id)) { + continue } - NearbyImageUtils.sortByDistance(newList, lon, lat) - sink.setData(newList) + newList.push(p4CPicture) + seenIds.add(id) } + NearbyImageUtils.sortByDistance(newList, lon, lat) + sink.setData(newList) } catch (e) { console.error("Could not load images from", source.name, "due to", e) state.data[source.name] = "error" From a4fe5a11ed70a4b08b6df45ff6bae6287e04783c Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 12 May 2025 15:38:58 +0200 Subject: [PATCH 09/39] UX: increase search radius, see #2417 --- src/Logic/Web/NearbyImagesSearch.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Logic/Web/NearbyImagesSearch.ts b/src/Logic/Web/NearbyImagesSearch.ts index 298e1e552d..544d21b742 100644 --- a/src/Logic/Web/NearbyImagesSearch.ts +++ b/src/Logic/Web/NearbyImagesSearch.ts @@ -225,7 +225,7 @@ class ImagesFromPanoramaxFetcher implements ImageFetcher { let prevRadius = 0 const nearby = this._panoramax.search({ - bbox: new BBox([[lon, lat]]).pad(0.001).toLngLatFlat() + bbox: new BBox([[lon - 0.0001, lat - 0.0001], [lon + 0.0001, lat + 0.0001]]).toLngLatFlat() }) promises.push(nearby) // We do a nearby search with bbox, see https://source.mapcomplete.org/MapComplete/MapComplete/issues/2384 for (const radiusSetting of radiusSettings) { From 77afd8b426ad3629bb35557f97d0860a796f9687 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 13 May 2025 16:13:05 +0200 Subject: [PATCH 10/39] UX: fix #2416, small code cleanup --- src/Logic/ImageProviders/AllImageProviders.ts | 6 +-- src/Logic/ImageProviders/ImageProvider.ts | 4 ++ src/Logic/ImageProviders/ImageUploadQueue.ts | 7 +-- src/Logic/ImageProviders/Panoramax.ts | 20 ++++++++- src/Logic/Osm/ChangesetHandler.ts | 3 ++ src/Logic/Search/FilterSearch.ts | 36 --------------- src/UI/Popup/Notes/NoteCommentElement.svelte | 3 +- src/Utils.ts | 44 ++++++++++--------- 8 files changed, 57 insertions(+), 66 deletions(-) diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index cd5042dd31..0ce8569c06 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -85,9 +85,9 @@ export default class AllImageProviders { let count = 0 const sources = [ + Panoramax.singleton, Imgur.singleton, Mapillary.singleton, - Panoramax.singleton, AllImageProviders.genericImageProvider, ] const allPrefixes = Utils.Dedup( @@ -138,8 +138,8 @@ export default class AllImageProviders { allSources.push(singleSource) } const source = Stores.fromStoresArray(allSources).map((result) => { - const all = [].concat(...result) - return Utils.DedupOnId(all, (i) => i?.id ?? i?.url) + const all = Utils.concat(result) + return Utils.DedupOnId(all, (i) => [i?.id, i?.url, i?.alt_id]) }) this._cachedImageStores[cachekey] = source return source diff --git a/src/Logic/ImageProviders/ImageProvider.ts b/src/Logic/ImageProviders/ImageProvider.ts index 570705b142..85c131104b 100644 --- a/src/Logic/ImageProviders/ImageProvider.ts +++ b/src/Logic/ImageProviders/ImageProvider.ts @@ -10,6 +10,10 @@ export interface ProvidedImage { key: string provider: ImageProvider id: string + /** + * An alternative ID, used to deduplicate some images + */ + alt_id?: string, date?: Date status?: string | "ready" /** diff --git a/src/Logic/ImageProviders/ImageUploadQueue.ts b/src/Logic/ImageProviders/ImageUploadQueue.ts index a641db33a2..aab2011027 100644 --- a/src/Logic/ImageProviders/ImageUploadQueue.ts +++ b/src/Logic/ImageProviders/ImageUploadQueue.ts @@ -47,10 +47,11 @@ export default class ImageUploadQueue { applyRemapping(oldId: string, newId: string) { let hasChange = false for (const img of this._imagesInQueue.data) { - if (img.featureId === oldId) { - img.featureId = newId - hasChange = true + if (img.featureId !== oldId) { + continue } + img.featureId = newId + hasChange = true } if (hasChange) { this._imagesInQueue.ping() diff --git a/src/Logic/ImageProviders/Panoramax.ts b/src/Logic/ImageProviders/Panoramax.ts index c44d3b9449..dcba6a1359 100644 --- a/src/Logic/ImageProviders/Panoramax.ts +++ b/src/Logic/ImageProviders/Panoramax.ts @@ -22,7 +22,15 @@ export default class PanoramaxImageProvider extends ImageProvider { 3000 ) - public defaultKeyPrefixes: string[] = ["panoramax"] + /** + * + * const url = "https://panoramax.mapcomplete.org/api/pictures/e931ce57-4591-4dd5-aa4c-595e89c37e84/hd.jpg" + * const match = url.match(PanoramaxImageProvider.isDirectLink) + * match[1] // => "e931ce57-4591-4dd5-aa4c-595e89c37e84" + */ + public static readonly isDirectLink = /https:\/\/panoramax.mapcomplete.org\/api\/pictures\/([0-9a-f-]+)\/(hd)|(sd)|(thumb).jpg/ + + public defaultKeyPrefixes: string[] = ["panoramax", "image"] public readonly name: string = "panoramax" private static knownMeta: Record< @@ -154,10 +162,18 @@ export default class PanoramaxImageProvider extends ImageProvider { } public async ExtractUrls(key: string, value: string): Promise { + const match = value.match(PanoramaxImageProvider.isDirectLink) + let alt_id = undefined + if (match) { + alt_id = value + value = match[1] // The ID + } if (!Panoramax.isId(value)) { return undefined } - return [await this.getInfo(value)] + const providedImage = await this.getInfo(value) + providedImage.alt_id = alt_id + return [providedImage] } public async getInfo(hash: string): Promise { diff --git a/src/Logic/Osm/ChangesetHandler.ts b/src/Logic/Osm/ChangesetHandler.ts index 72c3df8854..060acfc47a 100644 --- a/src/Logic/Osm/ChangesetHandler.ts +++ b/src/Logic/Osm/ChangesetHandler.ts @@ -359,6 +359,9 @@ export class ChangesetHandler { } for (const mapping of mappings) { const [oldId, newId] = mapping + if (oldId === newId) { + continue + } this.allElements?.addAlias(oldId, newId) if (newId !== undefined) { this._remappings.set(oldId, newId) diff --git a/src/Logic/Search/FilterSearch.ts b/src/Logic/Search/FilterSearch.ts index b0b737f01f..bf4b32d453 100644 --- a/src/Logic/Search/FilterSearch.ts +++ b/src/Logic/Search/FilterSearch.ts @@ -1,6 +1,5 @@ import { Utils } from "../../Utils" import Locale from "../../UI/i18n/Locale" -import Constants from "../../Models/Constants" import FilterConfig, { FilterConfigOption } from "../../Models/ThemeConfig/FilterConfig" import LayerConfig from "../../Models/ThemeConfig/LayerConfig" import LayerState from "../State/LayerState" @@ -89,41 +88,6 @@ export default class FilterSearch { } return possibleFilters } - - /** - * Create a random list of filters - */ - getSuggestions(): FilterSearchResult[] { - const result: FilterSearchResult[] = [] - for (const [id, filteredLayer] of this._state.layerState.filteredLayers) { - if (!Array.isArray(filteredLayer.layerDef.filters)) { - continue - } - if (Constants.isPriviliged(id)) { - continue - } - for (const filter of filteredLayer.layerDef.filters) { - const singleFilterResults: FilterSearchResult[] = [] - for (let i = 0; i < Math.min(filter.options.length, 5); i++) { - const option = filter.options[i] - if (option.osmTags === undefined) { - continue - } - singleFilterResults.push({ - option, - filter, - index: i, - layer: filteredLayer.layerDef, - }) - } - Utils.shuffle(singleFilterResults) - result.push(...singleFilterResults.slice(0, 3)) - } - } - Utils.shuffle(result) - return result.slice(0, 6) - } - /** * Partitions the list of filters in such a way that identically appearing filters will be in the same sublist. * diff --git a/src/UI/Popup/Notes/NoteCommentElement.svelte b/src/UI/Popup/Notes/NoteCommentElement.svelte index 1ab0b8e0ba..280fe1acf1 100644 --- a/src/UI/Popup/Notes/NoteCommentElement.svelte +++ b/src/UI/Popup/Notes/NoteCommentElement.svelte @@ -54,6 +54,7 @@
@@ -101,7 +102,7 @@ {:else} {comment.user} {/if} - {comment.date} + {comment.date ?? new Date().toISOString()}
diff --git a/src/Utils.ts b/src/Utils.ts index 280e66e1df..775fa14a79 100644 --- a/src/Utils.ts +++ b/src/Utils.ts @@ -175,10 +175,10 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be } public static NoNull(array: ReadonlyArray | undefined): T[] | undefined - public static NoNull(array: undefined): undefined + public static NoNull(array: undefined): undefined public static NoNull(array: ReadonlyArray): T[] public static NoNull(array: ReadonlyArray): NonNullable[] { - return array?.filter((o) => o !== undefined && o !== null) + return []>array?.filter((o) => o !== undefined && o !== null) } public static Hist(array: ReadonlyArray): Map { @@ -332,7 +332,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be * @param toKey * @constructor */ - public static DedupOnId(arr: T[], toKey?: (t: T) => string): T[] { + public static DedupOnId(arr: T[], toKey?: (t: T) => string | string[]): T[] { const uniq: T[] = [] const seen = new Set() if (toKey === undefined) { @@ -342,10 +342,21 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be if (!img) { continue } - const k = toKey(img) - if (!seen.has(k)) { - seen.add(k) - uniq.push(img) + const ks = toKey(img) + if (typeof ks === "string") { + if (!seen.has(ks)) { + seen.add(ks) + uniq.push(img) + } + } else { + const ksNoNull = Utils.NoNull(ks) + const hasBeenSeen = ksNoNull.some(k => seen.has(k)) + if (!hasBeenSeen) { + uniq.push(img) + } + for (const k of ksNoNull) { + seen.add(k) + } } } return uniq @@ -1657,7 +1668,7 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be return obj } const newObj = {} - for (let objKey in obj) { + for (const objKey in obj) { let cleanKey = objKey if (objKey.startsWith("+") || objKey.startsWith("=")) { cleanKey = objKey.substring(1) @@ -1794,19 +1805,6 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be href = href.replaceAll(/ /g, "%20") return href } - - /** Randomize array in-place using Durstenfeld shuffle algorithm - * Source: https://stackoverflow.com/questions/2450954/how-to-randomize-shuffle-a-javascript-array - * */ - static shuffle(array: any[]) { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)) - const temp = array[i] - array[i] = array[j] - array[j] = temp - } - } - private static emojiRegex = /[\p{Extended_Pictographic}🛰️]/u /** @@ -1826,4 +1824,8 @@ In the case that MapComplete is pointed to the testing grounds, the edit will be public static isEmojiFlag(string: string) { return /[🇦-🇿]{2}/u.test(string) // flags, see https://stackoverflow.com/questions/53360006/detect-with-regex-if-emoji-is-country-flag } + + public static concat(param: T[][]): T[] { + return [].concat(...param) + } } From d4c0cd9eb176d8ed1ee609a1a820743d467d9ad5 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 13 May 2025 22:55:54 +0200 Subject: [PATCH 11/39] Fix: probably partial fix of #2407 --- src/UI/Image/UploadingImageCounter.svelte | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/UI/Image/UploadingImageCounter.svelte b/src/UI/Image/UploadingImageCounter.svelte index e094abe090..006054b410 100644 --- a/src/UI/Image/UploadingImageCounter.svelte +++ b/src/UI/Image/UploadingImageCounter.svelte @@ -28,7 +28,18 @@ if (featureId == "*") { return input.map((inp) => inp.length) } - return input.map((success) => success.filter((item) => item === featureId).length) + + return input.map((ids) => { + // 'input' contains all the ids of the _features_ for which images are being uploaded + // This id can be the temporary id (e.g. node/-1) or the new id + // We thus have to check the remappings! + const remappings = state.changes._changesetHandler._remappings + const remappedFeatureId = remappings.get(featureId) ?? featureId + return ids.filter((itemId) => itemId === featureId || + itemId === remappedFeatureId || + (remappings.get(itemId) ?? itemId === featureId) || + (remappings.get(itemId) ?? itemId === remappedFeatureId)).length + }) } let successfull = getCount(state.imageUploadManager.successfull) From 25d8c924149acdbe1cb88a82094f13d044aeb168 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 13 May 2025 23:06:30 +0200 Subject: [PATCH 12/39] UI: add padding --- src/UI/Image/AttributedImage.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UI/Image/AttributedImage.svelte b/src/UI/Image/AttributedImage.svelte index 20a1ddf3ba..14764591cc 100644 --- a/src/UI/Image/AttributedImage.svelte +++ b/src/UI/Image/AttributedImage.svelte @@ -100,7 +100,7 @@ {#if image.status !== undefined && image.status !== "ready" && image.status !== "hidden"} -
+
From 49fc8e4bcf9ffba2cb1b441509eb438209da8953 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 16 May 2025 15:35:23 +0200 Subject: [PATCH 13/39] Chore: use special syntax in hospitals theme to make translations easier --- assets/layers/hospital/hospital.json | 26 ++++++++++++++++++++------ langs/layers/ca.json | 5 ++++- langs/layers/cs.json | 5 ++++- langs/layers/de.json | 5 ++++- langs/layers/en.json | 5 ++++- langs/layers/es.json | 5 ++++- langs/layers/it.json | 5 ++++- 7 files changed, 44 insertions(+), 12 deletions(-) diff --git a/assets/layers/hospital/hospital.json b/assets/layers/hospital/hospital.json index c5da00b38d..e4831ad0ae 100644 --- a/assets/layers/hospital/hospital.json +++ b/assets/layers/hospital/hospital.json @@ -179,12 +179,26 @@ "type": "opening_hours" }, "render": { - "en": "

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

", - "de": "

Öffnungszeiten für Besucher

Regelmäßige Besucher sind zu den folgenden Zeiten zugelassen: {opening_hours_table(opening_hours:visitors)}

Einige Krankenhäuser haben möglicherweise andere Öffnungszeiten. Viele Krankenhäuser erlauben Besuche auch in Notfällen.

", - "ca": "

Horari d'obertura per a visitants

S'admeten visitants habituals en els moments següents: {opening_hours_table(opening_hours:visitors)}

Algunes palntes poden tenir un horari d'obertura diferent. Molts hospitals també permeten visites en cas d'emergència.

", - "cs": "

Otevírací doba pro návštěvníky

Běžným návštěvníkům je vstup povolen v následujících časech: {opening_hours_table(opening_hours:visitors)}

Některá oddělení mohou mít jinou otevírací dobu. Mnohé nemocnice povolují návštěvy i v době pohotovosti.

", - "es": "

Horario de visita para visitantes

Los visitantes regulares están permitidos en los siguientes momentos: {opening_hours_table(opening_hours:visitors)}

Algunas varillas pueden tener horarios de apertura diferentes. Muchos hospitales también permiten visitas en caso de emergencia.

", - "it": "

Orari di apertura per i visitatori

I visitatori regolari sono ammessi nei seguenti momenti: {opening_hours_table(opening_hours:visitors)}

Alcuni reparti potrebbero avere orari di apertura diversi. Molti ospedali consentono visite anche durante le emergenze.

" + "before": { + "en": "

Opening hours for visitors

Regular visitors are allowed at the following moments: ", + "de": "

Öffnungszeiten für Besucher

Regelmäßige Besucher sind zu den folgenden Zeiten zugelassen: ", + "ca": "

Horari d'obertura per a visitants

S'admeten visitants habituals en els moments següents: ", + "cs": "

Otevírací doba pro návštěvníky

Běžným návštěvníkům je vstup povolen v následujících časech: ", + "es": "

Horario de visita para visitantes

Los visitantes regulares están permitidos en los siguientes momentos: ", + "it": "

Orari di apertura per i visitatori

I visitatori regolari sono ammessi nei seguenti momenti: " + }, + "after": { + "en": "

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

", + "de": "

Einige Krankenhäuser haben möglicherweise andere Öffnungszeiten. Viele Krankenhäuser erlauben Besuche auch in Notfällen.

", + "ca": "

Algunes palntes poden tenir un horari d'obertura diferent. Molts hospitals també permeten visites en cas d'emergència.

", + "cs": "

Některá oddělení mohou mít jinou otevírací dobu. Mnohé nemocnice povolují návštěvy i v době pohotovosti.

", + "es": "

Algunas varillas pueden tener horarios de apertura diferentes. Muchos hospitales también permiten visitas en caso de emergencia.

", + "it": "

Alcuni reparti potrebbero avere orari di apertura diversi. Molti ospedali consentono visite anche durante le emergenze.

" + }, + "special": { + "type": "opening_hours_table", + "key": "opening_hours:visitors" + } } } ], diff --git a/langs/layers/ca.json b/langs/layers/ca.json index 362339e790..e547b7122a 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -6443,7 +6443,10 @@ "oh-visitor": { "question": "Quan poden anar els visitants?", "questionHint": "Aquests són els horaris habituals dels visitants. Algunes plantes tenen diferents horaris de visita o poden permetre els visitants en cas d'emergència", - "render": "

Horari d'obertura per a visitants

S'admeten visitants habituals en els moments següents: {opening_hours_table(opening_hours:visitors)}

Algunes palntes poden tenir un horari d'obertura diferent. Molts hospitals també permeten visites en cas d'emergència.

" + "render": { + "after": "

Algunes palntes poden tenir un horari d'obertura diferent. Molts hospitals també permeten visites en cas d'emergència.

", + "before": "

Horari d'obertura per a visitants

S'admeten visitants habituals en els moments següents: " + } } }, "title": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 242571df98..652b5b2e1f 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -6071,7 +6071,10 @@ "oh-visitor": { "question": "Kdy je povolena návštěva?", "questionHint": "Jedná se o pravidelné návštěvní hodiny. Některé oddělení mají jiné návštěvní hodiny nebo mohou povolit návštěvy v naléhavých případech", - "render": "

Otevírací doba pro návštěvníky

Běžným návštěvníkům je vstup povolen v následujících časech: {opening_hours_table(opening_hours:visitors)}

Některá oddělení mohou mít jinou otevírací dobu. Mnohé nemocnice povolují návštěvy i v době pohotovosti.

" + "render": { + "after": "

Některá oddělení mohou mít jinou otevírací dobu. Mnohé nemocnice povolují návštěvy i v době pohotovosti.

", + "before": "

Otevírací doba pro návštěvníky

Běžným návštěvníkům je vstup povolen v následujících časech: " + } } }, "title": { diff --git a/langs/layers/de.json b/langs/layers/de.json index 548502d778..e520d63933 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -6421,7 +6421,10 @@ "oh-visitor": { "question": "Wann ist der Besuch für Besucher gestattet?", "questionHint": "Dies sind die regulären Besuchszeiten. Einige Stationen haben andere Besuchszeiten oder erlauben Besucher in Notfällen", - "render": "

Öffnungszeiten für Besucher

Regelmäßige Besucher sind zu den folgenden Zeiten zugelassen: {opening_hours_table(opening_hours:visitors)}

Einige Krankenhäuser haben möglicherweise andere Öffnungszeiten. Viele Krankenhäuser erlauben Besuche auch in Notfällen.

" + "render": { + "after": "

Einige Krankenhäuser haben möglicherweise andere Öffnungszeiten. Viele Krankenhäuser erlauben Besuche auch in Notfällen.

", + "before": "

Öffnungszeiten für Besucher

Regelmäßige Besucher sind zu den folgenden Zeiten zugelassen: " + } } }, "title": { diff --git a/langs/layers/en.json b/langs/layers/en.json index b1241bcd9e..59a8845de2 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -6791,7 +6791,10 @@ "oh-visitor": { "question": "When are visitors allowed to visit?", "questionHint": "These are the regular visitor hours. Some wands have different visitor hours or might allow visitors in emergencies", - "render": "

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

" + "render": { + "after": "

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

", + "before": "

Opening hours for visitors

Regular visitors are allowed at the following moments: " + } } }, "title": { diff --git a/langs/layers/es.json b/langs/layers/es.json index 02d88b86bb..9605f131b2 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -6065,7 +6065,10 @@ "oh-visitor": { "question": "¿Cuándo se permite a los visitantes realizar visitas?", "questionHint": "Este es el horario regular de visitas. Algunas varillas tienen horarios de visita diferentes o pueden permitir visitas en caso de emergencia", - "render": "

Horario de visita para visitantes

Los visitantes regulares están permitidos en los siguientes momentos: {opening_hours_table(opening_hours:visitors)}

Algunas varillas pueden tener horarios de apertura diferentes. Muchos hospitales también permiten visitas en caso de emergencia.

" + "render": { + "after": "

Algunas varillas pueden tener horarios de apertura diferentes. Muchos hospitales también permiten visitas en caso de emergencia.

", + "before": "

Horario de visita para visitantes

Los visitantes regulares están permitidos en los siguientes momentos: " + } } }, "title": { diff --git a/langs/layers/it.json b/langs/layers/it.json index 21bc1a534e..f9dcd1f653 100644 --- a/langs/layers/it.json +++ b/langs/layers/it.json @@ -6785,7 +6785,10 @@ "oh-visitor": { "question": "Quando sono ammesse le visite?", "questionHint": "Questi sono gli orari regolari di visita. Alcuni reparti hanno orari di visita diversi o potrebbero consentire visite in caso di emergenza", - "render": "

Orari di apertura per i visitatori

I visitatori regolari sono ammessi nei seguenti momenti: {opening_hours_table(opening_hours:visitors)}

Alcuni reparti potrebbero avere orari di apertura diversi. Molti ospedali consentono visite anche durante le emergenze.

" + "render": { + "after": "

Alcuni reparti potrebbero avere orari di apertura diversi. Molti ospedali consentono visite anche durante le emergenze.

", + "before": "

Orari di apertura per i visitatori

I visitatori regolari sono ammessi nei seguenti momenti: " + } } }, "title": { From 72e06448fc83c98562724c18c3bd5fef282641d8 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 16 May 2025 15:48:55 +0200 Subject: [PATCH 14/39] Refactoring: change order of parameters and remove parameter for Conversion.ts --- scripts/fixQuestionHint.ts | 27 +++---- scripts/generateLayerOverview.ts | 17 ++--- .../Conversion/AddContextToTranslations.ts | 3 +- .../AddPrefixToTagRenderingConfig.ts | 12 +-- .../ThemeConfig/Conversion/Conversion.ts | 56 +++++--------- .../Conversion/DetectMappingsWithImages.ts | 3 +- .../ThemeConfig/Conversion/ExpandFilter.ts | 6 +- .../ThemeConfig/Conversion/ExpandRewrite.ts | 2 +- .../Conversion/ExpandTagRendering.ts | 6 +- .../ThemeConfig/Conversion/FixImages.ts | 2 +- .../Conversion/LegacyJsonConvert.ts | 5 +- .../Conversion/MiscTagRenderingChecks.ts | 7 +- .../ThemeConfig/Conversion/PrepareLayer.ts | 76 +++++++++---------- .../ThemeConfig/Conversion/PrepareTheme.ts | 37 +++------ .../Conversion/PrevalidateLayer.ts | 10 +-- .../ThemeConfig/Conversion/ValidateTheme.ts | 2 +- .../ThemeConfig/Conversion/Validation.ts | 51 +++++-------- .../ThemeConfig/Json/LayerConfigJson.ts | 2 +- .../QuestionableTagRenderingConfigJson.ts | 23 ++++++ src/UI/Studio/EditLayerState.ts | 13 +--- 20 files changed, 147 insertions(+), 213 deletions(-) diff --git a/scripts/fixQuestionHint.ts b/scripts/fixQuestionHint.ts index 1406d2b324..bd868f109d 100644 --- a/scripts/fixQuestionHint.ts +++ b/scripts/fixQuestionHint.ts @@ -5,32 +5,26 @@ import { QuestionableTagRenderingConfigJson } from "../src/Models/ThemeConfig/Js import * as fakedom from "fake-dom" import Script from "./Script" import { FixedUiElement } from "../src/UI/Base/FixedUiElement" +import { ConversionContext } from "../src/Models/ThemeConfig/Conversion/ConversionContext" class ExtractQuestionHint extends DesugaringStep { constructor() { super( + "ExtractQuestionHint", "Tries to extract a 'questionHint' from the question", - ["question", "questionhint"], - "ExtractQuestionHint" ) } convert( - json: QuestionableTagRenderingConfigJson, - context: string - ): { - result: QuestionableTagRenderingConfigJson - errors?: string[] - warnings?: string[] - information?: string[] - } { + json: QuestionableTagRenderingConfigJson + ): QuestionableTagRenderingConfigJson { json = { ...json } if (json.question === undefined || json.questionHint !== undefined) { - return { result: json } + return json } if (typeof json.question === "string") { - return { result: json } + return json } const hint: Record = {} @@ -64,12 +58,11 @@ class ExtractQuestionHint extends DesugaringSteptagRendering, + ConversionContext.construct([], [ "While automatically extracting questionHints of " + filepath + ]) ) } } diff --git a/scripts/generateLayerOverview.ts b/scripts/generateLayerOverview.ts index 8ecc391c89..a1492af390 100644 --- a/scripts/generateLayerOverview.ts +++ b/scripts/generateLayerOverview.ts @@ -9,16 +9,12 @@ import { DoesImageExist, PrevalidateTheme, ValidateLayer, - ValidateThemeEnsemble, + ValidateThemeEnsemble } from "../src/Models/ThemeConfig/Conversion/Validation" import { Translation } from "../src/UI/i18n/Translation" import { PrepareLayer } from "../src/Models/ThemeConfig/Conversion/PrepareLayer" import { PrepareTheme } from "../src/Models/ThemeConfig/Conversion/PrepareTheme" -import { - Conversion, - DesugaringContext, - DesugaringStep, -} from "../src/Models/ThemeConfig/Conversion/Conversion" +import { Conversion, DesugaringContext, DesugaringStep } from "../src/Models/ThemeConfig/Conversion/Conversion" import { Utils } from "../src/Utils" import Script from "./Script" import { AllSharedLayers } from "../src/Customizations/AllSharedLayers" @@ -35,10 +31,7 @@ import { Translatable } from "../src/Models/ThemeConfig/Json/Translatable" import { ValidateThemeAndLayers } from "../src/Models/ThemeConfig/Conversion/ValidateThemeAndLayers" import { ExtractImages } from "../src/Models/ThemeConfig/Conversion/FixImages" import { TagRenderingConfigJson } from "../src/Models/ThemeConfig/Json/TagRenderingConfigJson" -import { - LayerConfigDependencyGraph, - LevelInfo, -} from "../src/Models/ThemeConfig/LayerConfigDependencyGraph" +import { LayerConfigDependencyGraph, LevelInfo } from "../src/Models/ThemeConfig/LayerConfigDependencyGraph" // This scripts scans 'src/assets/layers/*.json' for layer definition files and 'src/assets/themes/*.json' for theme definition files. // It spits out an overview of those to be used to load them @@ -54,7 +47,7 @@ class ParseLayer extends Conversion< private readonly _doesImageExist: DoesImageExist constructor(prepareLayer: PrepareLayer, doesImageExist: DoesImageExist) { - super("Parsed a layer from file, validates it", [], "ParseLayer") + super("ParseLayer", "Parsed a layer from file, validates it", []) this._prepareLayer = prepareLayer this._doesImageExist = doesImageExist } @@ -158,7 +151,7 @@ class LayerBuilder extends Conversion> { states: Map, sharedTagRenderings: QuestionableTagRenderingConfigJson[] ) { - super("Builds all the layers, writes them to file", [], "LayerBuilder") + super("LayerBuilder", "Builds all the layers, writes them to file", []) this._levels = levels this._dependencies = dependencies this._states = states diff --git a/src/Models/ThemeConfig/Conversion/AddContextToTranslations.ts b/src/Models/ThemeConfig/Conversion/AddContextToTranslations.ts index adbea661f8..0a9334d058 100644 --- a/src/Models/ThemeConfig/Conversion/AddContextToTranslations.ts +++ b/src/Models/ThemeConfig/Conversion/AddContextToTranslations.ts @@ -8,9 +8,8 @@ export class AddContextToTranslations extends DesugaringStep { constructor(prefix = "") { super( + "AddContextToTranslation", "Adds a '_context' to every object that is probably a translation", - ["_context"], - "AddContextToTranslation" ) this._prefix = prefix } diff --git a/src/Models/ThemeConfig/Conversion/AddPrefixToTagRenderingConfig.ts b/src/Models/ThemeConfig/Conversion/AddPrefixToTagRenderingConfig.ts index 90e3f978ad..b769ce5315 100644 --- a/src/Models/ThemeConfig/Conversion/AddPrefixToTagRenderingConfig.ts +++ b/src/Models/ThemeConfig/Conversion/AddPrefixToTagRenderingConfig.ts @@ -1,21 +1,16 @@ import { DesugaringStep } from "./Conversion" -import { ConversionContext } from "./ConversionContext" import SpecialVisualizations from "../../../UI/SpecialVisualizations" import { Translatable } from "../Json/Translatable" import { TagConfigJson } from "../Json/TagConfigJson" -import { - MappingConfigJson, - QuestionableTagRenderingConfigJson, -} from "../Json/QuestionableTagRenderingConfigJson" +import { MappingConfigJson, QuestionableTagRenderingConfigJson } from "../Json/QuestionableTagRenderingConfigJson" export default class AddPrefixToTagRenderingConfig extends DesugaringStep { private readonly _prefix: string constructor(prefix: string) { super( + "AddPrefixToTagRenderingConfig", "Adds `prefix` to _all_ keys. Used to add information about a subamenity withing a bigger amenity (e.g. toilets in a restaurant, a sauna in a water park, ...)", - ["*"], - "AddPrefixToTagRenderingConfig" ) this._prefix = prefix } @@ -106,8 +101,7 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep, - context: ConversionContext + json: Readonly ): QuestionableTagRenderingConfigJson { let freeform = json.freeform if (freeform) { diff --git a/src/Models/ThemeConfig/Conversion/Conversion.ts b/src/Models/ThemeConfig/Conversion/Conversion.ts index 5d78757576..36702b9206 100644 --- a/src/Models/ThemeConfig/Conversion/Conversion.ts +++ b/src/Models/ThemeConfig/Conversion/Conversion.ts @@ -22,13 +22,11 @@ export interface ConversionMessage { } export abstract class Conversion { - public readonly modifiedAttributes: string[] public readonly name: string protected readonly doc: string - constructor(doc: string, modifiedAttributes: string[] = [], name: string) { - this.modifiedAttributes = modifiedAttributes - this.doc = doc + "\n\nModified attributes are\n" + modifiedAttributes.join(", ") + constructor(name: string, doc: string) { + this.doc = doc this.name = name } @@ -76,7 +74,7 @@ export class Pipe extends Conversion { private readonly _failfast: boolean constructor(step0: Conversion, step1: Conversion, failfast = false) { - super("Merges two steps with different types", [], `Pipe(${step0.name}, ${step1.name})`) + super(`Pipe(${step0.name}, ${step1.name})`, "Merges two steps with different types") this._step0 = step0 this._step1 = step1 this._failfast = failfast @@ -95,11 +93,11 @@ export class Pure extends Conversion { private readonly _f: (t: TIn) => TOut constructor(f: (t: TIn) => TOut) { - super("Wrapper around a pure function", [], "Pure") + super("Pure", "Wrapper around a pure function") this._f = f } - convert(json: TIn, context: ConversionContext): TOut { + convert(json: TIn): TOut { return this._f(json) } } @@ -109,7 +107,7 @@ export class Bypass extends DesugaringStep { private readonly _step: DesugaringStep constructor(applyIf: (t: T) => boolean, step: DesugaringStep) { - super("Applies the step on the object, if the object satisfies the predicate", [], "Bypass") + super("Bypass", "Applies the step on the object, if the object satisfies the predicate") this._applyIf = applyIf this._step = step } @@ -127,11 +125,7 @@ export class Each extends Conversion { private readonly _msg: string constructor(step: Conversion, options?: { msg?: string }) { - super( - "Applies the given step on every element of the list", - [], - "OnEach(" + step.name + ")" - ) + super("OnEach(" + step.name + ")", "Applies the given step on every element of the list") this._step = step this._msg = options?.msg } @@ -168,14 +162,13 @@ export class On extends DesugaringStep { constructor(key: string, step: Conversion | ((t: T) => Conversion)) { super( + `On(${key}, ${step.name})`, "Applies " + step.name + " onto property `" + key + "`", - [key], - `On(${key}, ${step.name})` ) if (typeof step === "function") { this.step = step } else { - this.step = (_) => step + this.step = () => step } this.key = key } @@ -196,10 +189,10 @@ export class On extends DesugaringStep { export class Pass extends Conversion { constructor(message?: string) { - super(message ?? "Does nothing, often to swap out steps in testing", [], "Pass") + super("Pass", message ?? "Does nothing, often to swap out steps in testing") } - convert(json: T, _: ConversionContext): T { + convert(json: T): T { return json } } @@ -208,11 +201,7 @@ export class Concat extends Conversion { private readonly _step: Conversion constructor(step: Conversion) { - super( - "Executes the given step, flattens the resulting list", - [], - "Concat(" + step.name + ")" - ) + super("Concat(" + step.name + ")", "Executes the given step, flattens the resulting list") this._step = step } @@ -230,11 +219,7 @@ export class FirstOf extends Conversion { private readonly _conversion: Conversion constructor(conversion: Conversion) { - super( - "Picks the first result of the conversion step", - [], - "FirstOf(" + conversion.name + ")" - ) + super("FirstOf(" + conversion.name + ")", "Picks the first result of the conversion step") this._conversion = conversion } @@ -252,7 +237,7 @@ export class Cached extends Conversion { private readonly key: string constructor(step: Conversion) { - super("Secretly caches the output for the given input", [], "cached") + super("cached", "Secretly caches the output for the given input") this._step = step this.key = "__super_secret_caching_key_" + step.name } @@ -276,11 +261,10 @@ export class Fuse extends DesugaringStep { constructor(doc: string, ...steps: DesugaringStep[]) { super( + "Fuse", (doc ?? "") + "This fused pipeline of the following steps: " + steps.map((s) => s.name).join(", "), - Utils.Dedup([].concat(...steps.map((step) => step.modifiedAttributes))), - "Fuse" ) this.steps = Utils.NoNull(steps) } @@ -318,19 +302,19 @@ export class Fuse extends DesugaringStep { } } -export class SetDefault extends DesugaringStep { - private readonly value: any +export class SetDefault extends DesugaringStep { + private readonly value: X private readonly key: string private readonly _overrideEmptyString: boolean - constructor(key: string, value: any, overrideEmptyString = false) { - super("Sets " + key + " to a default value if undefined", [], "SetDefault of " + key) + constructor(key: string, value: X, overrideEmptyString = false) { + super("SetDefault of " + key, "Sets " + key + " to a default value if undefined") this.key = key this.value = value this._overrideEmptyString = overrideEmptyString } - convert(json: T, _: ConversionContext): T { + convert(json: T): T { if (json === undefined) { return undefined } diff --git a/src/Models/ThemeConfig/Conversion/DetectMappingsWithImages.ts b/src/Models/ThemeConfig/Conversion/DetectMappingsWithImages.ts index aa9f787fb8..4dfe4c9e46 100644 --- a/src/Models/ThemeConfig/Conversion/DetectMappingsWithImages.ts +++ b/src/Models/ThemeConfig/Conversion/DetectMappingsWithImages.ts @@ -10,9 +10,8 @@ export class DetectMappingsWithImages extends DesugaringStep { constructor() { super( + "PruneFilters", "Removes all filters which are impossible, e.g. because they conflict with the base tags", - ["filter"], - "PruneFilters" ) } @@ -114,12 +113,11 @@ export class ExpandFilter extends DesugaringStep { constructor(state: DesugaringContext) { super( + "ExpandFilter", [ "Expands filters: replaces a shorthand by the value found in 'filters.json'.", "If the string is formatted 'layername.filtername, it will be looked up into that layer instead. Note that pruning should still be done", ].join(" "), - ["filter"], - "ExpandFilter" ) this._state = state } diff --git a/src/Models/ThemeConfig/Conversion/ExpandRewrite.ts b/src/Models/ThemeConfig/Conversion/ExpandRewrite.ts index 4cc6c0f25d..81f78bd12c 100644 --- a/src/Models/ThemeConfig/Conversion/ExpandRewrite.ts +++ b/src/Models/ThemeConfig/Conversion/ExpandRewrite.ts @@ -6,7 +6,7 @@ import { Utils } from "../../../Utils" export class ExpandRewrite extends Conversion, T[]> { constructor() { - super("Applies a rewrite", [], "ExpandRewrite") + super("ExpandRewrite", "Applies a rewrite", []) } /** diff --git a/src/Models/ThemeConfig/Conversion/ExpandTagRendering.ts b/src/Models/ThemeConfig/Conversion/ExpandTagRendering.ts index 4d2e4a1b09..b8738b2a37 100644 --- a/src/Models/ThemeConfig/Conversion/ExpandTagRendering.ts +++ b/src/Models/ThemeConfig/Conversion/ExpandTagRendering.ts @@ -39,11 +39,7 @@ export class ExpandTagRendering extends Conversion< addToContext?: false | boolean } ) { - super( - "Converts a tagRenderingSpec into the full tagRendering, e.g. by substituting the tagRendering by the shared-question and reusing the builtins", - [], - "ExpandTagRendering" - ) + super("ExpandTagRendering", "Converts a tagRenderingSpec into the full tagRendering, e.g. by substituting the tagRendering by the shared-question and reusing the builtins", []) this._state = state this._self = self this._options = options diff --git a/src/Models/ThemeConfig/Conversion/FixImages.ts b/src/Models/ThemeConfig/Conversion/FixImages.ts index 331e3d02e0..b8fd901005 100644 --- a/src/Models/ThemeConfig/Conversion/FixImages.ts +++ b/src/Models/ThemeConfig/Conversion/FixImages.ts @@ -28,7 +28,7 @@ export class ExtractImages extends Conversion< private _sharedTagRenderings: Set constructor(isOfficial: boolean, sharedTagRenderings: Set) { - super("Extract all images from a layoutConfig using the meta paths.", [], "ExctractImages") + super("ExctractImages", "Extract all images from a layoutConfig using the meta paths.", []) this._isOfficial = isOfficial this._sharedTagRenderings = sharedTagRenderings } diff --git a/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts b/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts index f3594a283c..1a9f9ea651 100644 --- a/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts +++ b/src/Models/ThemeConfig/Conversion/LegacyJsonConvert.ts @@ -11,9 +11,8 @@ export class UpdateLegacyLayer extends DesugaringStep< > { constructor() { super( + "UpdateLegacyLayer", "Updates various attributes from the old data format to the new to provide backwards compatibility with the formats", - ["overpassTags", "source.osmtags", "tagRenderings[*].id", "mapRendering"], - "UpdateLegacyLayer" ) } @@ -259,7 +258,7 @@ export class UpdateLegacyLayer extends DesugaringStep< class UpdateLegacyTheme extends DesugaringStep { constructor() { - super("Small fixes in the theme config", ["roamingRenderings"], "UpdateLegacyTheme") + super("UpdateLegacyTheme", "Small fixes in the theme config") } convert(json: ThemeConfigJson, context: ConversionContext): ThemeConfigJson { diff --git a/src/Models/ThemeConfig/Conversion/MiscTagRenderingChecks.ts b/src/Models/ThemeConfig/Conversion/MiscTagRenderingChecks.ts index 5cc4b3ff65..05fbe2b2be 100644 --- a/src/Models/ThemeConfig/Conversion/MiscTagRenderingChecks.ts +++ b/src/Models/ThemeConfig/Conversion/MiscTagRenderingChecks.ts @@ -1,10 +1,7 @@ import { DesugaringStep } from "./Conversion" import { TagRenderingConfigJson } from "../Json/TagRenderingConfigJson" import { LayerConfigJson } from "../Json/LayerConfigJson" -import { - MappingConfigJson, - QuestionableTagRenderingConfigJson, -} from "../Json/QuestionableTagRenderingConfigJson" +import { MappingConfigJson, QuestionableTagRenderingConfigJson } from "../Json/QuestionableTagRenderingConfigJson" import { ConversionContext } from "./ConversionContext" import { Translation } from "../../../UI/i18n/Translation" import Validators from "../../../UI/InputElement/Validators" @@ -14,7 +11,7 @@ export class MiscTagRenderingChecks extends DesugaringStep { constructor() { super( + "AddFiltersFromTagRenderings", 'Inspects all the tagRenderings. If some tagRenderings have the `filter` attribute set, introduce those filters. This step might introduce shorthand filter names, thus \'ExpandFilter\' should be run afterwards. Can be disabled with "#filter":"no-auto"', - ["filter"], - "AddFiltersFromTagRenderings" ) } @@ -108,9 +95,8 @@ class AddFiltersFromTagRenderings extends DesugaringStep { class DetectInline extends DesugaringStep { constructor() { super( + "DetectInline", "If no 'inline' is set on the freeform key, it will be automatically added. If no special renderings are used, it'll be set to true", - ["freeform.inline"], - "DetectInline" ) } @@ -173,9 +159,8 @@ class DetectInline extends DesugaringStep { export class AddQuestionBox extends DesugaringStep { constructor() { super( + "AddQuestionBox", "Adds a 'questions'-object if no question element is added yet", - ["tagRenderings"], - "AddQuestionBox" ) } @@ -284,9 +269,8 @@ export class AddEditingElements extends DesugaringStep { constructor(desugaring: DesugaringContext) { super( - "Add some editing elements, such as the delete button or the move button if they are configured. These used to be handled by the feature info box, but this has been replaced by special visualisation elements", - [], - "AddEditingElements" + "AddEditingElements", + "Add some editing elements, such as the delete button or the move button if they are configured. These used to be handled by the feature info box, but this has been replaced by special visualisation elements" ) this._desugaring = desugaring this.builtinQuestions = Array.from(this._desugaring.tagRenderings?.values() ?? []) @@ -388,9 +372,8 @@ export class AddEditingElements extends DesugaringStep { export class RewriteSpecial extends DesugaringStep { constructor() { super( + "RewriteSpecial", "Converts a 'special' translation into a regular translation which uses parameters", - ["special"], - "RewriteSpecial" ) } @@ -664,7 +647,7 @@ class ExpandIconBadges extends DesugaringStep { private _expand: ExpandTagRendering constructor(state: DesugaringContext, layer: LayerConfigJson) { - super("Expands shorthand properties on iconBadges", ["iconBadges"], "ExpandIconBadges") + super("ExpandIconBadges", "Expands shorthand properties on iconBadges") this._expand = new ExpandTagRendering(state, layer) } @@ -766,9 +749,8 @@ class PreparePointRendering extends Fuse { class SetFullNodeDatabase extends DesugaringStep { constructor() { super( + "SetFullNodeDatabase", "sets the fullNodeDatabase-bit if needed", - ["fullNodeDatabase"], - "SetFullNodeDatabase" ) } @@ -795,9 +777,8 @@ class ExpandMarkerRenderings extends DesugaringStep { constructor(state: DesugaringContext, layer: LayerConfigJson) { super( + "ExpandMarkerRenderings", "Expands tagRenderings in the icons, if needed", - ["icon", "color"], - "ExpandMarkerRenderings" ) this._layer = layer this._state = state @@ -829,9 +810,8 @@ class ExpandMarkerRenderings extends DesugaringStep { class AddFavouriteBadges extends DesugaringStep { constructor() { super( + "AddFavouriteBadges", "Adds the favourite heart to the title and the rendering badges", - [], - "AddFavouriteBadges" ) } @@ -854,9 +834,8 @@ class AddFavouriteBadges extends DesugaringStep { export class AddRatingBadge extends DesugaringStep { constructor() { super( + "AddRatingBadge", "Adds the 'rating'-element if a reviews-element is used in the tagRenderings", - ["titleIcons"], - "AddRatingBadge" ) } @@ -890,9 +869,8 @@ export class AddRatingBadge extends DesugaringStep { export class AutoTitleIcon extends DesugaringStep { constructor() { super( + "AutoTitleIcon", "The auto-icon creates a (non-clickable) title icon based on a tagRendering which has icons", - ["titleIcons"], - "AutoTitleIcon" ) } @@ -967,12 +945,34 @@ export class AutoTitleIcon extends DesugaringStep { } } +class MoveUnitConfigs extends DesugaringStep { + + constructor() { + super("MoveUnitConfigs", "Looks into all the tagRenderings for a 'unitConfig', moves them to the layer level") + } + + convert(json: LayerConfigJson, context: ConversionContext): LayerConfigJson { + json = { ...json, units: [...(json.units ?? [])] } + for (const tr of json.tagRenderings ?? []) { + const qtr = (tr) + const unitConfig = qtr?.freeform?.unit + if (!unitConfig) { + continue + } + json.units.push({ + [qtr.freeform.key]: unitConfig + }) + } + return json + } + +} + class DeriveSource extends DesugaringStep { constructor() { super( + "DeriveSource", "If no source is given, automatically derives the osmTags by 'or'-ing all the preset tags", - ["source"], - "DeriveSource" ) } diff --git a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts index 79ecbd1385..dd45c74169 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareTheme.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareTheme.ts @@ -1,14 +1,4 @@ -import { - Concat, - Conversion, - DesugaringContext, - DesugaringStep, - Each, - Fuse, - On, - Pass, - SetDefault, -} from "./Conversion" +import { Concat, Conversion, DesugaringContext, DesugaringStep, Each, Fuse, On, Pass, SetDefault } from "./Conversion" import { ThemeConfigJson } from "../Json/ThemeConfigJson" import { PrepareLayer, RewriteSpecial } from "./PrepareLayer" import { LayerConfigJson } from "../Json/LayerConfigJson" @@ -25,11 +15,7 @@ class SubstituteLayer extends Conversion { constructor(state: DesugaringContext) { super( + "AddDefaultLayers", "Adds the default layers, namely: " + Constants.added_by_default.join(", "), - ["layers"], - "AddDefaultLayers" ) this._state = state } @@ -225,9 +210,8 @@ export class AddDefaultLayers extends DesugaringStep { class AddContextToTranslationsInLayout extends DesugaringStep { constructor() { super( + "AddContextToTranlationsInLayout", "Adds context to translations, including the prefix 'themes:json.id'; this is to make sure terms in an 'overrides' or inline layer are linkable too", - ["_context"], - "AddContextToTranlationsInLayout" ) } @@ -244,9 +228,8 @@ class AddContextToTranslationsInLayout extends DesugaringStep { class ApplyOverrideAll extends DesugaringStep { constructor() { super( + "ApplyOverrideAll", "Applies 'overrideAll' onto every 'layer'. The 'overrideAll'-field is removed afterwards", - ["overrideAll", "layers"], - "ApplyOverrideAll" ) } @@ -296,9 +279,8 @@ class AddDependencyLayersToTheme extends DesugaringStep { constructor(state: DesugaringContext) { super( + "AddDependencyLayersToTheme", `If a layer has a dependency on another layer, these layers are added automatically on the theme. (For example: defibrillator depends on 'walls_and_buildings' to snap onto. This layer is added automatically)`, - ["layers"], - "AddDependencyLayersToTheme" ) this._state = state } @@ -456,7 +438,7 @@ class PreparePersonalTheme extends DesugaringStep { private readonly _state: DesugaringContext constructor(state: DesugaringContext) { - super("Adds every public layer to the personal theme", ["layers"], "PreparePersonalTheme") + super("PreparePersonalTheme", "Adds every public layer to the personal theme") this._state = state } @@ -479,9 +461,8 @@ class PreparePersonalTheme extends DesugaringStep { class WarnForUnsubstitutedLayersInTheme extends DesugaringStep { constructor() { super( + "WarnForUnsubstitutedLayersInTheme", "Generates a warning if a theme uses an inline layer; we recommend splitting of all layers in separate files", - ["layers"], - "WarnForUnsubstitutedLayersInTheme" ) } @@ -531,7 +512,7 @@ class PostvalidateTheme extends DesugaringStep { private readonly _state: DesugaringContext constructor(state: DesugaringContext) { - super("Various validation steps when everything is done", [], "PostvalidateTheme") + super("PostvalidateTheme", "Various validation steps when everything is done") this._state = state } diff --git a/src/Models/ThemeConfig/Conversion/PrevalidateLayer.ts b/src/Models/ThemeConfig/Conversion/PrevalidateLayer.ts index 92ac3b77fb..623e073b34 100644 --- a/src/Models/ThemeConfig/Conversion/PrevalidateLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrevalidateLayer.ts @@ -27,7 +27,7 @@ export class PrevalidateLayer extends DesugaringStep { doesImageExist: DoesImageExist, studioValidations: boolean ) { - super("Runs various checks against common mistakes for a layer", [], "PrevalidateLayer") + super("PrevalidateLayer", "Runs various checks against common mistakes for a layer") this._path = path this._isBuiltin = isBuiltin this._doesImageExist = doesImageExist @@ -57,6 +57,7 @@ export class PrevalidateLayer extends DesugaringStep { } } else { if (json.source === "special" || json.source === "special:library") { + // pass } else if (json.source && json.source["osmTags"] === undefined) { context .enters("source", "osmTags") @@ -232,11 +233,6 @@ export class PrevalidateLayer extends DesugaringStep { } } - try { - } catch (e) { - context.err("Could not validate layer due to: " + e + e.stack) - } - if (this._studioValidations) { if (!json.description) { context.enter("description").err("A description is required") @@ -358,7 +354,7 @@ export class PrevalidateLayer extends DesugaringStep { if (pointRendering.marker === undefined) { continue } - for (const icon of pointRendering?.marker) { + for (const icon of pointRendering?.marker ?? []) { const indexM = pointRendering?.marker.indexOf(icon) if (!icon.icon) { continue diff --git a/src/Models/ThemeConfig/Conversion/ValidateTheme.ts b/src/Models/ThemeConfig/Conversion/ValidateTheme.ts index 2b6949c96d..d0dad222a6 100644 --- a/src/Models/ThemeConfig/Conversion/ValidateTheme.ts +++ b/src/Models/ThemeConfig/Conversion/ValidateTheme.ts @@ -24,7 +24,7 @@ export class ValidateTheme extends DesugaringStep { isBuiltin: boolean, sharedTagRenderings?: Set ) { - super("Doesn't change anything, but emits warnings and errors", [], "ValidateTheme") + super("ValidateTheme", "Doesn't change anything, but emits warnings and errors") this._validateImage = doesImageExist this._path = path this._isBuiltin = isBuiltin diff --git a/src/Models/ThemeConfig/Conversion/Validation.ts b/src/Models/ThemeConfig/Conversion/Validation.ts index afb4ffed69..f6451a40c0 100644 --- a/src/Models/ThemeConfig/Conversion/Validation.ts +++ b/src/Models/ThemeConfig/Conversion/Validation.ts @@ -28,9 +28,8 @@ export class ValidateLanguageCompleteness extends DesugaringStep { constructor(...languages: string[]) { super( + "ValidateLanguageCompleteness", "Checks that the given object is fully translated in the specified languages", - [], - "ValidateLanguageCompleteness" ) this._languages = languages ?? ["en"] } @@ -74,7 +73,7 @@ export class DoesImageExist extends DesugaringStep { checkExistsSync: (path: string) => boolean = undefined, ignore?: Set ) { - super("Checks if an image exists", [], "DoesImageExist") + super("DoesImageExist", "Checks if an image exists") this._ignore = ignore this._knownImagePaths = knownImagePaths this.doesPathExist = checkExistsSync @@ -129,9 +128,8 @@ export class DoesImageExist extends DesugaringStep { class OverrideShadowingCheck extends DesugaringStep { constructor() { super( + "OverrideShadowingCheck", "Checks that an 'overrideAll' does not override a single override", - [], - "OverrideShadowingCheck" ) } @@ -170,7 +168,7 @@ class OverrideShadowingCheck extends DesugaringStep { class MiscThemeChecks extends DesugaringStep { constructor() { - super("Miscelleanous checks on the theme", [], "MiscThemesChecks") + super("Miscelleanous checks on the theme", "MiscThemesChecks") } convert(json: ThemeConfigJson, context: ConversionContext): ThemeConfigJson { @@ -265,9 +263,8 @@ export class PrevalidateTheme extends Fuse { export class DetectConflictingAddExtraTags extends DesugaringStep { constructor() { super( + "DetectConflictingAddExtraTags", "The `if`-part in a mapping might set some keys. Those keys are not allowed to be set in the `addExtraTags`, as this might result in conflicting values", - [], - "DetectConflictingAddExtraTags" ) } @@ -310,9 +307,8 @@ export class DetectConflictingAddExtraTags extends DesugaringStep { constructor() { super( + "DetectNonErasedKeysInMappings", "A tagRendering might set a freeform key (e.g. `name` and have an option that _should_ erase this name, e.g. `noname=yes`). Under normal circumstances, every mapping/freeform should affect all touched keys", - [], - "DetectNonErasedKeysInMappings" ) } @@ -407,9 +403,8 @@ export class DetectMappingsShadowedByCondition extends DesugaringStep> { constructor() { super( + "ValidatePossibleLinks", "Given a possible set of translations, validates that does have `rel='noopener'` set", - [], - "ValidatePossibleLinks" ) } @@ -661,9 +655,8 @@ export class CheckTranslation extends DesugaringStep { constructor(allowUndefined: boolean = false) { super( + "CheckTranslation", "Checks that a translation is valid and internally consistent", - ["*"], - "CheckTranslation" ) this._allowUndefined = allowUndefined } @@ -712,7 +705,7 @@ export class ValidateLayerConfig extends DesugaringStep { studioValidations: boolean = false, skipDefaultLayers: boolean = false ) { - super("Thin wrapper around 'ValidateLayer", [], "ValidateLayerConfig") + super("ValidateLayerConfig", "Thin wrapper around 'ValidateLayer") this.validator = new ValidateLayer( path, isBuiltin, @@ -734,7 +727,7 @@ export class ValidateLayerConfig extends DesugaringStep { export class ValidatePointRendering extends DesugaringStep { constructor() { - super("Various checks for pointRenderings", [], "ValidatePOintRendering") + super("ValidatePointRendering", "Various checks for pointRenderings") } convert(json: PointRenderingConfigJson, context: ConversionContext): PointRenderingConfigJson { @@ -777,7 +770,7 @@ export class ValidateLayer extends Conversion< studioValidations: boolean = false, skipDefaultLayers: boolean = false ) { - super("Doesn't change anything, but emits warnings and errors", [], "ValidateLayer") + super("ValidateLayer", "Doesn't change anything, but emits warnings and errors") this._prevalidation = new PrevalidateLayer( path, isBuiltin, @@ -819,7 +812,7 @@ export class ValidateLayer extends Conversion< } for (let i = 0; i < (layerConfig.calculatedTags ?? []).length; i++) { - const [_, code, __] = layerConfig.calculatedTags[i] + const code = layerConfig.calculatedTags[i][1] try { new Function("feat", "return " + code + ";") } catch (e) { @@ -894,7 +887,7 @@ export class ValidateLayer extends Conversion< export class ValidateFilter extends DesugaringStep { constructor() { - super("Detect common errors in the filters", [], "ValidateFilter") + super("ValidateFilter", "Detect common errors in the filters") } convert(filter: FilterConfigJson, context: ConversionContext): FilterConfigJson { @@ -931,9 +924,8 @@ export class DetectDuplicateFilters extends DesugaringStep<{ }> { constructor() { super( - "Tries to detect layers where a shared filter can be used (or where similar filters occur)", - [], - "DetectDuplicateFilters" + "DetectDuplicateFilters", + "Tries to detect layers where a shared filter can be used (or where similar filters occur)" ) } @@ -1041,9 +1033,8 @@ export class DetectDuplicateFilters extends DesugaringStep<{ export class DetectDuplicatePresets extends DesugaringStep { constructor() { super( + "DetectDuplicatePresets", "Detects mappings which have identical (english) names or identical mappings.", - ["presets"], - "DetectDuplicatePresets" ) } @@ -1107,11 +1098,7 @@ export class ValidateThemeEnsemble extends Conversion< > > { constructor() { - super( - "Validates that all themes together are logical, i.e. no duplicate ids exists within (overriden) themes", - [], - "ValidateThemeEnsemble" - ) + super("ValidateThemeEnsemble", "Validates that all themes together are logical, i.e. no duplicate ids exists within (overriden) themes") } convert( diff --git a/src/Models/ThemeConfig/Json/LayerConfigJson.ts b/src/Models/ThemeConfig/Json/LayerConfigJson.ts index 9a179072ac..25fc08297f 100644 --- a/src/Models/ThemeConfig/Json/LayerConfigJson.ts +++ b/src/Models/ThemeConfig/Json/LayerConfigJson.ts @@ -556,7 +556,7 @@ export interface LayerConfigJson { allowSplit?: boolean /** - * Either a list with [{"key": "unitname", "key2": {"quantity": "unitname", "denominations": ["denom", "denom"]}}] + * Either a list of unitConfigs with [{"key": "unitname", "key2": {"quantity": "unitname", "denominations": ["denom", "denom"]}}] * * Use `"inverted": true` if the amount should be _divided_ by the denomination, e.g. for charge over time (`€5/day`) * diff --git a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts index f7d9e957a3..c27b0fed1a 100644 --- a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts +++ b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts @@ -290,6 +290,29 @@ export interface QuestionableTagRenderingConfigJson extends TagRenderingConfigJs * group: hidden */ helperArgs?: any + + /** + * question: what units + * + * group: hidden + * + * Note: this is actually a syntactic sugar and is translated to the unit-syntax on layer level + */ + unit?: { + /** + * What is the quantity? E.g. 'voltage', 'speed', ... + * See [builtin_units.md] for options + */ + quantity: string + /** + * The possible denominations for the quantities. E.g. For 'length', might be 'cm', 'm', 'km', ... + * If none given, will allow all the defaults + */ + denominations: string[] + + canonical?: string + inverted?: boolean + } } /** diff --git a/src/UI/Studio/EditLayerState.ts b/src/UI/Studio/EditLayerState.ts index 09301d8e5e..7c086960a7 100644 --- a/src/UI/Studio/EditLayerState.ts +++ b/src/UI/Studio/EditLayerState.ts @@ -1,12 +1,7 @@ import { ConfigMeta } from "./configMeta" import { Store, UIEventSource } from "../../Logic/UIEventSource" import { LayerConfigJson } from "../../Models/ThemeConfig/Json/LayerConfigJson" -import { - Conversion, - ConversionMessage, - DesugaringContext, - Pipe, -} from "../../Models/ThemeConfig/Conversion/Conversion" +import { Conversion, ConversionMessage, DesugaringContext, Pipe } from "../../Models/ThemeConfig/Conversion/Conversion" import { PrepareLayer } from "../../Models/ThemeConfig/Conversion/PrepareLayer" import { PrevalidateTheme, ValidateLayer } from "../../Models/ThemeConfig/Conversion/Validation" import { AllSharedLayers } from "../../Customizations/AllSharedLayers" @@ -281,11 +276,7 @@ class ContextRewritingStep extends Conversion { step: Conversion, getTagRenderings: (t: T) => TagRenderingConfigJson[] ) { - super( - "When validating a layer, the tagRenderings are first expanded. Some builtin tagRendering-calls (e.g. `contact`) will introduce _multiple_ tagRenderings, causing the count to be off. This class rewrites the error messages to fix this", - [], - "ContextRewritingStep" - ) + super("ContextRewritingStep", "When validating a layer, the tagRenderings are first expanded. Some builtin tagRendering-calls (e.g. `contact`) will introduce _multiple_ tagRenderings, causing the count to be off. This class rewrites the error messages to fix this", []) this._state = state this._step = step this._getTagRenderings = getTagRenderings From 9e17550a95268e3634379a603d1a7e3dd17407cb Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 19 May 2025 18:41:36 +0200 Subject: [PATCH 15/39] UX: always show user id in studio --- src/UI/Studio/EditItemButton.svelte | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/UI/Studio/EditItemButton.svelte b/src/UI/Studio/EditItemButton.svelte index 7b8c2415f3..0628977a0c 100644 --- a/src/UI/Studio/EditItemButton.svelte +++ b/src/UI/Studio/EditItemButton.svelte @@ -32,9 +32,7 @@ {#if info.owner && info.owner !== $selfId} {#if $displayName} (made by {$displayName} - {#if window.location.host.startsWith("127.0.0.1")} - - {info.owner} - {/if} + {info.owner} ) {:else} ({info.owner}) From 3407f68d3f873be8566bcb508e639f897e1f3062 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 19 May 2025 23:05:37 +0200 Subject: [PATCH 16/39] Chore: regen docs --- Docs/BuiltinIndex.md | 5 + Docs/BuiltinQuestions.md | 82 +++- Docs/Layers/address.md | 17 +- Docs/Layers/adult_changing_table.md | 19 +- Docs/Layers/advertising.md | 14 +- Docs/Layers/advertising_wall_paintings.md | 14 +- Docs/Layers/aerialway.md | 13 +- Docs/Layers/all_streets.md | 4 + Docs/Layers/all_vending_machine.md | 36 +- Docs/Layers/ambulancestation.md | 19 +- Docs/Layers/animal_shelter.md | 24 +- Docs/Layers/artwork.md | 71 ++- Docs/Layers/artwork_on_wall.md | 71 ++- Docs/Layers/assembly_point.md | 10 +- Docs/Layers/assisted_repair.md | 27 +- Docs/Layers/atm.md | 16 +- Docs/Layers/bank.md | 5 + Docs/Layers/banks_with_atm.md | 5 + Docs/Layers/barrier.md | 17 +- Docs/Layers/bbq.md | 5 + Docs/Layers/beehive.md | 8 +- Docs/Layers/bench.md | 44 +- Docs/Layers/bench_at_pt.md | 7 +- .../bicycle_assisted_repair_workshop.md | 27 +- Docs/Layers/bicycle_counter.md | 17 +- Docs/Layers/bicycle_library.md | 26 +- Docs/Layers/bicycle_rental.md | 41 +- Docs/Layers/bicycle_rental_non_docking.md | 41 +- Docs/Layers/bike_cafe.md | 20 +- Docs/Layers/bike_cleaning.md | 14 +- Docs/Layers/bike_parking.md | 38 +- Docs/Layers/bike_repair_station.md | 25 +- Docs/Layers/bike_shop.md | 140 ++++-- Docs/Layers/bike_themed_object.md | 18 +- Docs/Layers/binocular.md | 11 +- Docs/Layers/birdhide.md | 8 +- Docs/Layers/brothel.md | 21 +- Docs/Layers/building.md | 20 +- Docs/Layers/buildings_with_architecture.md | 20 +- Docs/Layers/cafe_pub.md | 72 +++- Docs/Layers/campsite.md | 28 +- Docs/Layers/car_rental.md | 19 +- Docs/Layers/caravansites.md | 20 +- Docs/Layers/charge_point.md | 263 ++++++++---- Docs/Layers/charging_station.md | 301 ++++++++----- Docs/Layers/charging_station_ebikes.md | 301 ++++++++----- Docs/Layers/childcare.md | 22 +- Docs/Layers/cinema.md | 17 +- Docs/Layers/climbing_area.md | 20 +- Docs/Layers/climbing_club.md | 18 +- Docs/Layers/climbing_gym.md | 44 +- Docs/Layers/climbing_opportunity.md | 3 + Docs/Layers/climbing_route.md | 22 +- Docs/Layers/clock.md | 8 +- Docs/Layers/crossings.md | 7 +- Docs/Layers/crossings_no_traffic_lights.md | 7 +- .../cultural_places_without_etymology.md | 15 +- Docs/Layers/cycle_highways.md | 16 +- Docs/Layers/cyclestreets.md | 7 +- Docs/Layers/cycleways_and_roads.md | 22 +- Docs/Layers/cyclist_waiting_aid.md | 5 + Docs/Layers/defibrillator.md | 41 +- Docs/Layers/dentist.md | 31 +- Docs/Layers/direction.md | 2 + Docs/Layers/disaster_response.md | 10 +- Docs/Layers/doctors.md | 34 +- Docs/Layers/dog_toilet.md | 4 + Docs/Layers/dogpark.md | 15 +- Docs/Layers/drinking_water.md | 27 +- Docs/Layers/dumpstations.md | 10 +- ...ducation_institutions_without_etymology.md | 15 +- Docs/Layers/elevator.md | 43 +- Docs/Layers/elongated_coin.md | 27 +- Docs/Layers/entrance.md | 25 +- Docs/Layers/etymology.md | 15 +- Docs/Layers/excrement_bag_dispenser.md | 6 +- Docs/Layers/extinguisher.md | 7 +- Docs/Layers/facadegardens.md | 14 +- Docs/Layers/fire_station.md | 19 +- Docs/Layers/firepit.md | 5 + Docs/Layers/fitness_centre.md | 24 +- Docs/Layers/fitness_station.md | 13 +- Docs/Layers/fixme.md | 7 +- Docs/Layers/food.md | 89 +++- Docs/Layers/food_courts.md | 17 +- Docs/Layers/food_dog_friendly.md | 89 +++- Docs/Layers/food_glutenfree.md | 89 +++- Docs/Layers/food_lactosefree.md | 89 +++- Docs/Layers/friture.md | 89 +++- Docs/Layers/ghost_bike.md | 19 +- Docs/Layers/ghostsign.md | 13 +- Docs/Layers/governments.md | 16 +- Docs/Layers/grave.md | 10 +- Docs/Layers/group_campsite.md | 28 +- Docs/Layers/group_hostel.md | 26 +- Docs/Layers/guidepost.md | 14 +- Docs/Layers/hackerspace.md | 34 +- ...lth_and_social_places_without_etymology.md | 15 +- Docs/Layers/hospital.md | 31 +- Docs/Layers/hostel.md | 26 +- Docs/Layers/hydrant.md | 25 +- Docs/Layers/ice_cream.md | 20 +- Docs/Layers/icecream_glutenfree.md | 20 +- Docs/Layers/icecream_lactosefree.md | 20 +- Docs/Layers/indoors.md | 49 ++- Docs/Layers/information_board.md | 5 + Docs/Layers/insect_hotel.md | 5 + Docs/Layers/item_with_image.md | 3 + Docs/Layers/kerbs.md | 10 +- Docs/Layers/lighthouse.md | 10 +- Docs/Layers/lit_streets.md | 4 + Docs/Layers/love_hotel.md | 17 +- Docs/Layers/map.md | 8 +- Docs/Layers/maproulette.md | 5 + Docs/Layers/maproulette_challenge.md | 2 + Docs/Layers/maxspeed.md | 12 +- Docs/Layers/medical_shops.md | 140 ++++-- Docs/Layers/memorial.md | 38 +- Docs/Layers/mobility_hub.md | 13 +- Docs/Layers/mountain_rescue.md | 5 + Docs/Layers/nature_reserve.md | 35 +- Docs/Layers/not_cyclestreets.md | 7 +- Docs/Layers/note.md | 8 + Docs/Layers/observation_tower.md | 25 +- Docs/Layers/onwheels_entrance_data.md | 3 + Docs/Layers/osm_community_index.md | 4 + Docs/Layers/outdoor_seating.md | 13 +- Docs/Layers/parcel_lockers.md | 17 +- Docs/Layers/parking.md | 18 +- Docs/Layers/parking_spaces.md | 5 + Docs/Layers/parking_spaces_disabled.md | 5 + Docs/Layers/parking_ticket_machine.md | 7 +- .../parks_and_forests_without_etymology.md | 15 +- Docs/Layers/parks_without_etymology.md | 15 +- Docs/Layers/pet_shops.md | 140 ++++-- Docs/Layers/pharmacy.md | 33 +- Docs/Layers/physiotherapist.md | 31 +- Docs/Layers/picnic_table.md | 12 +- Docs/Layers/play_forest.md | 14 +- Docs/Layers/playground.md | 34 +- Docs/Layers/playground_equipment.md | 8 +- Docs/Layers/police.md | 22 +- Docs/Layers/post_offices_with_atm.md | 37 +- Docs/Layers/postboxes.md | 9 +- Docs/Layers/postoffices.md | 37 +- Docs/Layers/pt_shelter.md | 4 + Docs/Layers/public_bookcase.md | 29 +- Docs/Layers/railway_platforms.md | 9 +- Docs/Layers/rainbow_crossing_high_zoom.md | 4 + Docs/Layers/rainbow_crossings.md | 4 + Docs/Layers/reception_desk.md | 11 +- Docs/Layers/recycling.md | 32 +- Docs/Layers/route_marker.md | 5 + Docs/Layers/school.md | 40 +- Docs/Layers/scouting_group.md | 24 +- Docs/Layers/shelter.md | 7 +- Docs/Layers/shop_dog_friendly.md | 140 ++++-- Docs/Layers/shops.md | 140 ++++-- Docs/Layers/shops_glutenfree.md | 140 ++++-- Docs/Layers/shops_lactosefree.md | 140 ++++-- Docs/Layers/shops_second_hand.md | 140 ++++-- .../Layers/shops_with_climbing_shoe_repair.md | 140 ++++-- Docs/Layers/shower.md | 15 +- Docs/Layers/ski_piste.md | 5 + Docs/Layers/slow_roads.md | 6 +- Docs/Layers/souvenir_coin.md | 24 +- Docs/Layers/souvenir_note.md | 24 +- Docs/Layers/speed_camera.md | 11 +- Docs/Layers/speed_display.md | 9 +- Docs/Layers/sport_pitch.md | 20 +- Docs/Layers/sport_places_without_etymology.md | 15 +- Docs/Layers/sport_shops.md | 140 ++++-- Docs/Layers/sports_centre.md | 19 +- Docs/Layers/stairs.md | 11 +- Docs/Layers/street_lamps.md | 17 +- Docs/Layers/streets_without_etymology.md | 15 +- Docs/Layers/stripclub.md | 20 +- Docs/Layers/surveillance_camera.md | 20 +- Docs/Layers/tactile_map.md | 13 +- Docs/Layers/tactile_model.md | 16 +- Docs/Layers/tertiary_education.md | 15 +- Docs/Layers/ticket_machine.md | 12 +- Docs/Layers/ticket_validator.md | 13 +- Docs/Layers/toekomstige_fietsstraat.md | 7 +- Docs/Layers/toilet.md | 61 ++- Docs/Layers/toilet_at_amenity.md | 48 ++- Docs/Layers/tool_library.md | 23 +- Docs/Layers/tourism_accomodation.md | 26 +- .../toursistic_places_without_etymology.md | 15 +- Docs/Layers/trail.md | 13 +- Docs/Layers/transit_routes.md | 23 +- Docs/Layers/transit_stops.md | 7 +- Docs/Layers/tree_node.md | 25 +- Docs/Layers/trolley_bay.md | 4 + Docs/Layers/utility_pole.md | 3 + Docs/Layers/vending_machine.md | 36 +- Docs/Layers/vending_machine_bicycle.md | 36 +- Docs/Layers/veterinary.md | 16 +- Docs/Layers/viewpoint.md | 7 +- Docs/Layers/village_green.md | 6 + Docs/Layers/visitor_information_centre.md | 3 + Docs/Layers/walls_and_buildings.md | 1 + Docs/Layers/waste_basket.md | 5 + Docs/Layers/waste_basket_dogs.md | 5 + Docs/Layers/waste_disposal.md | 8 +- Docs/Layers/wayside_shrine.md | 33 +- Docs/Layers/windturbine.md | 21 +- Docs/SpecialRenderings.md | 8 +- Docs/TagInfo/mapcomplete_blind_osm.json | 28 +- .../TagInfo/mapcomplete_circular_economy.json | 59 ++- Docs/TagInfo/mapcomplete_climbing.json | 59 ++- Docs/TagInfo/mapcomplete_cyclofix.json | 59 ++- .../mapcomplete_disaster_response.json | 2 +- Docs/TagInfo/mapcomplete_food.json | 8 +- Docs/TagInfo/mapcomplete_fritures.json | 8 +- Docs/TagInfo/mapcomplete_glutenfree.json | 37 +- Docs/TagInfo/mapcomplete_healthcare.json | 61 ++- Docs/TagInfo/mapcomplete_indoors.json | 28 +- Docs/TagInfo/mapcomplete_lactosefree.json | 37 +- Docs/TagInfo/mapcomplete_onwheels.json | 39 +- Docs/TagInfo/mapcomplete_pets.json | 37 +- Docs/TagInfo/mapcomplete_postboxes.json | 59 ++- Docs/TagInfo/mapcomplete_shops.json | 59 ++- Docs/TagInfo/mapcomplete_ski.json | 8 +- Docs/TagInfo/mapcomplete_sports.json | 59 ++- Docs/Themes/architecture.md | 20 +- Docs/Themes/atm.md | 42 +- Docs/Themes/bag.md | 21 +- Docs/Themes/buurtnatuur.md | 63 ++- Docs/Themes/circular_economy.md | 140 ++++-- Docs/Themes/climbing.md | 140 ++++-- Docs/Themes/cycle_highways.md | 32 +- Docs/Themes/cyclenodes.md | 32 +- Docs/Themes/cyclestreets.md | 14 +- Docs/Themes/cyclofix.md | 405 ++++++++++++------ Docs/Themes/etymology.md | 120 +++++- Docs/Themes/facadegardens.md | 14 +- Docs/Themes/fritures.md | 89 +++- Docs/Themes/ghostsigns.md | 85 ++-- Docs/Themes/glutenfree.md | 249 ++++++++--- Docs/Themes/grb.md | 38 +- Docs/Themes/healthcare.md | 140 ++++-- Docs/Themes/kerbs_and_crossings.md | 7 +- Docs/Themes/lactosefree.md | 249 ++++++++--- Docs/Themes/mapcomplete-changes.md | 18 +- Docs/Themes/onwheels.md | 8 + Docs/Themes/openlovemap.md | 193 +++++++-- Docs/Themes/pets.md | 374 ++++++++++++---- Docs/Themes/postal_codes.md | 7 + Docs/Themes/rainbow_crossings.md | 4 + Docs/Themes/scouting.md | 80 +++- Docs/Themes/speelplekken.md | 21 +- Docs/Themes/sports.md | 140 ++++-- Docs/Themes/stations.md | 8 +- Docs/Themes/street_lighting.md | 4 + Docs/Themes/street_lighting_assen.md | 3 + Docs/Themes/toerisme_vlaanderen.md | 342 ++++++++++----- Docs/Themes/transit.md | 4 + Docs/Themes/uk_addresses.md | 34 +- Docs/Themes/velopark.md | 69 ++- Docs/Themes/vending_machine.md | 36 +- Docs/Themes/walkingnodes.md | 32 +- Docs/Themes/waste_assen.md | 6 + Docs/Themes/width.md | 11 +- Docs/Themes/winter_service.md | 2 + Docs/URL_Parameters.md | 2 +- Docs/builtin_units.md | 48 +++ 267 files changed, 7757 insertions(+), 2435 deletions(-) diff --git a/Docs/BuiltinIndex.md b/Docs/BuiltinIndex.md index 735fe1f698..df9f45b2f5 100644 --- a/Docs/BuiltinIndex.md +++ b/Docs/BuiltinIndex.md @@ -685,6 +685,11 @@ - souvenir_coin - souvenir_note + ### reservation + + - food + - shops + ### sugar_free - food diff --git a/Docs/BuiltinQuestions.md b/Docs/BuiltinQuestions.md index 31143a8f92..785d5b18e7 100644 --- a/Docs/BuiltinQuestions.md +++ b/Docs/BuiltinQuestions.md @@ -77,6 +77,7 @@ This is a special layer - data is not sourced from OpenStreetMap - [maxstay](#maxstay) - [name](#name) - [has_toilets](#has_toilets) + - [reservation](#reservation) ## Supported attributes @@ -120,6 +121,7 @@ This is a special layer - data is not sourced from OpenStreetMap | [maxstay](https://wiki.openstreetmap.org/wiki/Key:maxstay) | [pfloat](../SpecialInputElements.md#pfloat) | [unlimited](https://wiki.openstreetmap.org/wiki/Tag:maxstay%3Dunlimited) | | [name](https://wiki.openstreetmap.org/wiki/Key:name) | [string](../SpecialInputElements.md#string) | | | [toilets](https://wiki.openstreetmap.org/wiki/Key:toilets) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dno) [separate](https://wiki.openstreetmap.org/wiki/Tag:toilets%3Dseparate) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | ## Featureview elements and TagRenderings @@ -179,41 +181,49 @@ This is a special layer - data is not sourced from OpenStreetMap | [maxstay](#maxstay)
_(Original in [questions](./BuiltinQuestions.md#maxstay))_ | What is the maximum amount of time one is allowed to stay here?
_One can stay at most {canonical(maxstay)}_
1 options | | *[maxstay](https://wiki.osm.org/wiki/Key:maxstay)* ([pfloat](../SpecialInputElements.md#pfloat)) | | [name](#name)
_(Original in [questions](./BuiltinQuestions.md#name))_ | What is the name of this place?
_{name}_ | | *[name](https://wiki.osm.org/wiki/Key:name)* ([string](../SpecialInputElements.md#string)) | | [has_toilets](#has_toilets)
_(Original in [questions](./BuiltinQuestions.md#has_toilets))_ | Has toilets?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### images_no_blur Same as `images`, but uploaded request to disable blurring to the panoramax server _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload(,,,true)}* ### mapillary Shows a button to open Mapillary on this location _This tagrendering has no question and is thus read-only_ + *{mapillary_link()}* ### export_as_gpx Shows a button to export this feature as GPX. Especially useful for route relations _This tagrendering has no question and is thus read-only_ + *{export_as_gpx()}* ### export_as_geojson Shows a button to export this feature as geojson. Especially useful for debugging or using this in other programs _This tagrendering has no question and is thus read-only_ + *{export_as_geojson()}* ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -221,12 +231,14 @@ The question is `What is the corresponding Wikidata entity?` ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -236,16 +248,19 @@ This tagrendering has labels ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### facebook Shows and asks for the facebook handle The question is `What is the facebook page of of {title()}?` -*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set + +*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set. ### osmlink _This tagrendering has no question and is thus read-only_ + ** - *Uploading...* is shown if with id~^(=-)$ @@ -253,7 +268,8 @@ _This tagrendering has no question and is thus read-only_ ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -264,7 +280,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -293,19 +310,22 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -313,7 +333,8 @@ The question is `What are the opening hours of {title()}?` ### opening_hours_24_7_default The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -321,7 +342,8 @@ The question is `What are the opening hours of {title()}?` ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -411,12 +433,14 @@ This tagrendering is only visible in the popup if the following condition is met ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### multilevels The question is `What levels does this elevator go to?` -*This elevator goes to floors {level}* is shown if `level` is set + +*This elevator goes to floors {level}* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -427,6 +451,7 @@ The question is `What levels does this elevator go to?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -436,7 +461,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -491,7 +517,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -511,14 +538,16 @@ The question is `Is this object lit or does it emit light?` ### survey_date The question is `When was this object last surveyed?` -*This object was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This object was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= @@ -573,6 +602,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -581,6 +611,7 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### seasonal @@ -603,12 +634,14 @@ The question is `Does this facility offer showers?` ### preset_description _This tagrendering has no question and is thus read-only_ + *{preset_description()}* ### brand The question is `Is {title()} part of a bigger brand?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *Not part of a bigger brand* is shown if with nobrand=yes @@ -629,14 +662,16 @@ The question is `What kind of seating does {title()} have?` ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited ### name The question is `What is the name of this place?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### has_toilets @@ -646,6 +681,15 @@ The question is `Has {title()} toilets?` - *Has no toilets* is shown if with toilets=no - *The toilets are marked separately on the map* is shown if with toilets=separate +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + This document is autogenerated from [assets/layers/questions/questions.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/questions/questions.json) diff --git a/Docs/Layers/address.md b/Docs/Layers/address.md index 52953cd9a6..40904d4f6e 100644 --- a/Docs/Layers/address.md +++ b/Docs/Layers/address.md @@ -65,6 +65,7 @@ Elements must match **any** of the following expressions: ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -73,6 +74,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -84,7 +86,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -95,7 +98,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -104,7 +108,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -115,13 +120,15 @@ This tagrendering has labels ### fixme The question is `What should be fixed here? Please explain` -*Fixme description{fixme}* is shown if `fixme` is set + +*Fixme description{fixme}* is shown if `fixme` is set. - *No fixme - write something here to explain complicated cases* is shown if with fixme= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -131,11 +138,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/adult_changing_table.md b/Docs/Layers/adult_changing_table.md index 50586389b0..3800bc45aa 100644 --- a/Docs/Layers/adult_changing_table.md +++ b/Docs/Layers/adult_changing_table.md @@ -70,7 +70,10 @@ Elements must match **any** of the following expressions: ### height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(height)} high* is shown if `height` is set + +*The changing table is {canonical(height)} high* is shown if `height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with height=adjustable @@ -80,7 +83,10 @@ This tagrendering has labels ### adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(min_height)}* is shown if `min_height` is set + +*The lowest height of the adult changing table is {canonical(min_height)}* is shown if `min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: height=adjustable This tagrendering has labels @@ -89,7 +95,10 @@ This tagrendering has labels ### adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(max_height)}* is shown if `max_height` is set + +*The highest height of the adult changing table is {canonical(max_height)}* is shown if `max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: height=adjustable This tagrendering has labels @@ -123,6 +132,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -132,16 +142,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/advertising.md b/Docs/Layers/advertising.md index b1fd4950bb..dc0a7da1aa 100644 --- a/Docs/Layers/advertising.md +++ b/Docs/Layers/advertising.md @@ -104,12 +104,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type The question is `Which type of advertising feature is this?` -*This is a {advertising}* is shown if `advertising` is set + +*This is a {advertising}* is shown if `advertising` is set. - *This is a billboard* is shown if with advertising=billboard - *This is a board* is shown if with advertising=board @@ -148,7 +150,8 @@ The question is `Is this object lit or does it emit light?` ### operator The question is `Who operates this feature?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### message_type @@ -177,7 +180,8 @@ This tagrendering is only visible in the popup if the following condition is met ### ref The question is `Wich is the reference number?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. ### historic @@ -189,6 +193,7 @@ The question is `Is this sign for a business that no longer exists or no longer ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -198,16 +203,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/advertising_wall_paintings.md b/Docs/Layers/advertising_wall_paintings.md index 175aeb89a6..58438673d6 100644 --- a/Docs/Layers/advertising_wall_paintings.md +++ b/Docs/Layers/advertising_wall_paintings.md @@ -75,12 +75,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type The question is `Which type of advertising feature is this?` -*This is a {advertising}* is shown if `advertising` is set + +*This is a {advertising}* is shown if `advertising` is set. - *This is a billboard* is shown if with advertising=billboard - *This is a board* is shown if with advertising=board @@ -119,7 +121,8 @@ The question is `Is this object lit or does it emit light?` ### operator The question is `Who operates this feature?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### message_type @@ -148,7 +151,8 @@ This tagrendering is only visible in the popup if the following condition is met ### ref The question is `Wich is the reference number?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. ### historic @@ -160,6 +164,7 @@ The question is `Is this sign for a business that no longer exists or no longer ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -169,16 +174,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/aerialway.md b/Docs/Layers/aerialway.md index 03453c5688..bb62fb9986 100644 --- a/Docs/Layers/aerialway.md +++ b/Docs/Layers/aerialway.md @@ -69,6 +69,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type @@ -90,17 +91,20 @@ The question is `What type of aerialway is this?` ### duration The question is `How long takes a single journey with this elevator?` -*A single journey takes {duration} minutes* is shown if `duration` is set + +*A single journey takes {duration} minutes* is shown if `duration` is set. ### occupancy The question is `How many people fit a single carriage?` -*{aerialway:occupancy} people fit a single carriage* is shown if `aerialway:occupancy` is set + +*{aerialway:occupancy} people fit a single carriage* is shown if `aerialway:occupancy` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -114,11 +118,13 @@ The question is `In what direction can this aerialway be taken?` ### length _This tagrendering has no question and is thus read-only_ + *This aerialway is {_length:km} kilometer long* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -128,6 +134,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/all_streets.md b/Docs/Layers/all_streets.md index 98e115443e..e389013553 100644 --- a/Docs/Layers/all_streets.md +++ b/Docs/Layers/all_streets.md @@ -48,11 +48,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -62,11 +64,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/all_vending_machine.md b/Docs/Layers/all_vending_machine.md index fd4b4d6de0..ab062f1679 100644 --- a/Docs/Layers/all_vending_machine.md +++ b/Docs/Layers/all_vending_machine.md @@ -103,11 +103,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -117,7 +119,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -131,7 +134,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -166,7 +170,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -176,7 +181,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -238,7 +244,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -251,7 +258,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -261,7 +269,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -271,21 +280,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -301,6 +313,7 @@ The question is `Is this vending machine still operational?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -310,16 +323,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ambulancestation.md b/Docs/Layers/ambulancestation.md index 807b56505c..5dc2a3b67e 100644 --- a/Docs/Layers/ambulancestation.md +++ b/Docs/Layers/ambulancestation.md @@ -70,27 +70,32 @@ Elements must match the expression **operator:type=government - *The station is operated by a community-based, or informal organization.* is shown if with operator:type=community @@ -100,11 +105,13 @@ The question is `How is the station operator classified?` ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -114,11 +121,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/animal_shelter.md b/Docs/Layers/animal_shelter.md index b9fcb60c5b..980f0d5b61 100644 --- a/Docs/Layers/animal_shelter.md +++ b/Docs/Layers/animal_shelter.md @@ -82,22 +82,26 @@ Elements must match the expression **{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -107,7 +111,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -117,7 +122,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -136,7 +142,8 @@ The question is `What is the purpose of the animal shelter?` ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -145,7 +152,8 @@ The question is `What are the opening hours of {title()}?` ### boarded_animals The question is `Which animals are accepted here?` -*{animal_shelter} is kept here* is shown if `animal_shelter` is set + +*{animal_shelter} is kept here* is shown if `animal_shelter` is set. - *Dogs are kept here* is shown if with animal_shelter=dog - *Cats are kept here* is shown if with animal_shelter=cat @@ -156,6 +164,7 @@ The question is `Which animals are accepted here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -165,16 +174,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/artwork.md b/Docs/Layers/artwork.md index 4a03b1e9a4..9b77c1e0bf 100644 --- a/Docs/Layers/artwork.md +++ b/Docs/Layers/artwork.md @@ -149,12 +149,14 @@ Elements must match the expression **artwork_type=architecture - *Mural* is shown if with artwork_type=mural @@ -177,7 +179,8 @@ This tagrendering has labels ### artwork-artist-wikidata The question is `Who made this artwork?` -*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set + +*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set. This tagrendering has labels `artwork-question` @@ -185,7 +188,8 @@ This tagrendering has labels ### artwork-artist_name The question is `Which artist created this?` -*Created by {artist_name}* is shown if `artist_name` is set + +*Created by {artist_name}* is shown if `artist_name` is set. This tagrendering has labels `artwork-question` @@ -193,7 +197,8 @@ This tagrendering has labels ### artwork-website The question is `Is there a website with more information about this artwork?` -*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. This tagrendering has labels `artwork-question` @@ -201,7 +206,8 @@ This tagrendering has labels ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -209,7 +215,8 @@ The question is `What is the corresponding Wikidata entity?` ### artwork_subject The question is `What does this artwork depict?` -*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering has labels `artwork-question` @@ -224,7 +231,8 @@ The question is `Does this artwork serve as a memorial?` ### memorial-type The question is `What type of memorial is this?` -*This is a {memorial}* is shown if `memorial` is set + +*This is a {memorial}* is shown if `memorial` is set. - *This is a statue* is shown if with memorial=statue - *This is a plaque* is shown if with memorial=plaque @@ -249,7 +257,8 @@ This tagrendering has labels ### inscription The question is `What is the inscription on this memorial?` -*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set + +*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set. - *This memorial does not have an inscription* is shown if with not:inscription=yes @@ -260,7 +269,8 @@ This tagrendering has labels ### memorial-wikidata The question is `What is the Wikipedia page about this memorial?` -*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set + +*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -270,7 +280,8 @@ This tagrendering has labels ### subject-wikidata The question is `What is the Wikipedia page about the person or event that is remembered here?` -*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -311,7 +322,8 @@ This tagrendering has labels ### bench-seats The question is `How many seats does this bench have?` -*This bench has {seats} seats* is shown if `seats` is set + +*This bench has {seats} seats* is shown if `seats` is set. - *This bench does not have separated seats* is shown if with seats:separated=no @@ -322,7 +334,8 @@ This tagrendering has labels ### bench-material The question is `What is the bench (seating) made from?` -*Material: {material}* is shown if `material` is set + +*Material: {material}* is shown if `material` is set. - *The seating is made from wood* is shown if with material=wood - *The seating is made from metal* is shown if with material=metal @@ -338,7 +351,8 @@ This tagrendering has labels ### bench-direction The question is `In which direction are you looking when sitting on the bench?` -*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set + +*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bench & two_sided!=yes This tagrendering has labels @@ -347,7 +361,8 @@ This tagrendering has labels ### bench-colour The question is `Which colour does this bench have?` -*Colour: {colour}* is shown if `colour` is set + +*Colour: {colour}* is shown if `colour` is set. - *Colour: brown* is shown if with colour=brown - *Colour: green* is shown if with colour=green @@ -365,7 +380,8 @@ This tagrendering has labels ### bench-survey:date The question is `When was this bench last surveyed?` -*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Surveyed today!* is shown if with survey:date= @@ -376,7 +392,8 @@ This tagrendering has labels ### bench-inscription The question is `Does this bench have an inscription?` -*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set + +*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set. - *This bench does not have an inscription* is shown if with not:inscription=yes - *This bench probably does not not have an inscription* is shown if with inscription=. _This option cannot be chosen as answer_ @@ -406,7 +423,8 @@ The question is `Does this artwork also double as wayside shrine?` ### shrine_name The question is `What's the name of this {title()}?` -*The name of this {title()} is {name}* is shown if `name` is set + +*The name of this {title()} is {name}* is shown if `name` is set. - *This shrine does not have a name* is shown if with noname=yes @@ -417,7 +435,8 @@ This tagrendering has labels ### religion The question is `To which religion is this shrine dedicated?` -*This shrine is {religion}* is shown if `religion` is set + +*This shrine is {religion}* is shown if `religion` is set. - *This is a Christian shrine* is shown if with religion=christian - *This is a Buddhist shrine* is shown if with religion=buddhist @@ -438,7 +457,8 @@ This tagrendering has labels ### denomination_christian The question is `What's the Christian denomination of this {title()}?` -*The religious denomination is {denomination}* is shown if `denomination` is set + +*The religious denomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Catholic* is shown if with denomination=catholic - *The religious subdenomination is Roman Catholic* is shown if with denomination=roman_catholic @@ -458,7 +478,8 @@ This tagrendering has labels ### denomination_muslim The question is `What's the Muslim denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Shia* is shown if with denomination=shia - *The religious subdenomination is Sunni* is shown if with denomination=sunni @@ -471,7 +492,8 @@ This tagrendering has labels ### denomination_jewish The question is `What's the Jewish denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Conservative* is shown if with denomination=conservative - *The religious subdenomination is Orthodox* is shown if with denomination=orthodox @@ -485,7 +507,8 @@ This tagrendering has labels ### denomination_other The question is `What's the denomination of this shrine?` -*The denomination of this shrine is {denomination}* is shown if `denomination` is set + +*The denomination of this shrine is {denomination}* is shown if `denomination` is set. This tagrendering is only visible in the popup if the following condition is met: historic=wayside_shrine & religion!=christian & religion!=muslim & religion!=jewish & religion~.+ This tagrendering has labels @@ -494,6 +517,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -503,16 +527,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/artwork_on_wall.md b/Docs/Layers/artwork_on_wall.md index 7b097869c2..de0100d48e 100644 --- a/Docs/Layers/artwork_on_wall.md +++ b/Docs/Layers/artwork_on_wall.md @@ -152,12 +152,14 @@ The question is `Is this artwork a historic advertisement?` ### images_no_blur Same as `images`, but uploaded request to disable blurring to the panoramax server _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload(,,,true)}* ### artwork-artwork_type The question is `What is the type of this artwork?` -*This is a {artwork_type}* is shown if `artwork_type` is set + +*This is a {artwork_type}* is shown if `artwork_type` is set. - *Architecture* is shown if with artwork_type=architecture - *Mural* is shown if with artwork_type=mural @@ -180,7 +182,8 @@ This tagrendering has labels ### artwork-artist-wikidata The question is `Who made this artwork?` -*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set + +*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set. This tagrendering has labels `artwork-question` @@ -188,7 +191,8 @@ This tagrendering has labels ### artwork-artist_name The question is `Which artist created this?` -*Created by {artist_name}* is shown if `artist_name` is set + +*Created by {artist_name}* is shown if `artist_name` is set. This tagrendering has labels `artwork-question` @@ -196,7 +200,8 @@ This tagrendering has labels ### artwork-website The question is `Is there a website with more information about this artwork?` -*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. This tagrendering has labels `artwork-question` @@ -204,7 +209,8 @@ This tagrendering has labels ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -212,7 +218,8 @@ The question is `What is the corresponding Wikidata entity?` ### artwork_subject The question is `What does this artwork depict?` -*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering has labels `artwork-question` @@ -227,7 +234,8 @@ The question is `Does this artwork serve as a memorial?` ### memorial-type The question is `What type of memorial is this?` -*This is a {memorial}* is shown if `memorial` is set + +*This is a {memorial}* is shown if `memorial` is set. - *This is a statue* is shown if with memorial=statue - *This is a plaque* is shown if with memorial=plaque @@ -252,7 +260,8 @@ This tagrendering has labels ### inscription The question is `What is the inscription on this memorial?` -*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set + +*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set. - *This memorial does not have an inscription* is shown if with not:inscription=yes @@ -263,7 +272,8 @@ This tagrendering has labels ### memorial-wikidata The question is `What is the Wikipedia page about this memorial?` -*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set + +*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -273,7 +283,8 @@ This tagrendering has labels ### subject-wikidata The question is `What is the Wikipedia page about the person or event that is remembered here?` -*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -314,7 +325,8 @@ This tagrendering has labels ### bench-seats The question is `How many seats does this bench have?` -*This bench has {seats} seats* is shown if `seats` is set + +*This bench has {seats} seats* is shown if `seats` is set. - *This bench does not have separated seats* is shown if with seats:separated=no @@ -325,7 +337,8 @@ This tagrendering has labels ### bench-material The question is `What is the bench (seating) made from?` -*Material: {material}* is shown if `material` is set + +*Material: {material}* is shown if `material` is set. - *The seating is made from wood* is shown if with material=wood - *The seating is made from metal* is shown if with material=metal @@ -341,7 +354,8 @@ This tagrendering has labels ### bench-direction The question is `In which direction are you looking when sitting on the bench?` -*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set + +*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bench & two_sided!=yes This tagrendering has labels @@ -350,7 +364,8 @@ This tagrendering has labels ### bench-colour The question is `Which colour does this bench have?` -*Colour: {colour}* is shown if `colour` is set + +*Colour: {colour}* is shown if `colour` is set. - *Colour: brown* is shown if with colour=brown - *Colour: green* is shown if with colour=green @@ -368,7 +383,8 @@ This tagrendering has labels ### bench-survey:date The question is `When was this bench last surveyed?` -*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Surveyed today!* is shown if with survey:date= @@ -379,7 +395,8 @@ This tagrendering has labels ### bench-inscription The question is `Does this bench have an inscription?` -*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set + +*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set. - *This bench does not have an inscription* is shown if with not:inscription=yes - *This bench probably does not not have an inscription* is shown if with inscription=. _This option cannot be chosen as answer_ @@ -409,7 +426,8 @@ The question is `Does this artwork also double as wayside shrine?` ### shrine_name The question is `What's the name of this {title()}?` -*The name of this {title()} is {name}* is shown if `name` is set + +*The name of this {title()} is {name}* is shown if `name` is set. - *This shrine does not have a name* is shown if with noname=yes @@ -420,7 +438,8 @@ This tagrendering has labels ### religion The question is `To which religion is this shrine dedicated?` -*This shrine is {religion}* is shown if `religion` is set + +*This shrine is {religion}* is shown if `religion` is set. - *This is a Christian shrine* is shown if with religion=christian - *This is a Buddhist shrine* is shown if with religion=buddhist @@ -441,7 +460,8 @@ This tagrendering has labels ### denomination_christian The question is `What's the Christian denomination of this {title()}?` -*The religious denomination is {denomination}* is shown if `denomination` is set + +*The religious denomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Catholic* is shown if with denomination=catholic - *The religious subdenomination is Roman Catholic* is shown if with denomination=roman_catholic @@ -461,7 +481,8 @@ This tagrendering has labels ### denomination_muslim The question is `What's the Muslim denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Shia* is shown if with denomination=shia - *The religious subdenomination is Sunni* is shown if with denomination=sunni @@ -474,7 +495,8 @@ This tagrendering has labels ### denomination_jewish The question is `What's the Jewish denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Conservative* is shown if with denomination=conservative - *The religious subdenomination is Orthodox* is shown if with denomination=orthodox @@ -488,7 +510,8 @@ This tagrendering has labels ### denomination_other The question is `What's the denomination of this shrine?` -*The denomination of this shrine is {denomination}* is shown if `denomination` is set + +*The denomination of this shrine is {denomination}* is shown if `denomination` is set. This tagrendering is only visible in the popup if the following condition is met: historic=wayside_shrine & religion!=christian & religion!=muslim & religion!=jewish & religion~.+ This tagrendering has labels @@ -497,6 +520,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -506,16 +530,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/assembly_point.md b/Docs/Layers/assembly_point.md index dbf9790723..110e1c4d38 100644 --- a/Docs/Layers/assembly_point.md +++ b/Docs/Layers/assembly_point.md @@ -62,17 +62,20 @@ Elements must match the expression **{name}* is shown if `name` is set + +*This workshop is called {name}* is shown if `name` is set. ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with
opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -108,7 +112,8 @@ The question is `What are the opening hours of {title()}?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -118,7 +123,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -129,7 +135,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -139,12 +146,14 @@ This tagrendering has labels ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### facebook Shows and asks for the facebook handle The question is `What is the facebook page of of {title()}?` -*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set + +*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set. ### item:repair @@ -160,6 +169,7 @@ The question is `What type of items are repaired here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -169,16 +179,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/atm.md b/Docs/Layers/atm.md index 88913072eb..2ba3d1bd78 100644 --- a/Docs/Layers/atm.md +++ b/Docs/Layers/atm.md @@ -88,11 +88,13 @@ Elements must match the expression ** *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -160,6 +165,7 @@ The question is `Does this ATM have speech output for visually impaired users?` ### speech_output_language _This tagrendering has no question and is thus read-only_ + *{language_chooser(speech_output,In which languages does this ATM have speech output?,This ATM has speech output in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This ATM has speech output in &LBRACElanguage&LPARENS&RPARENS&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: speech_output=yes @@ -167,6 +173,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -176,16 +183,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bank.md b/Docs/Layers/bank.md index 6b3d8493c5..9a9888c650 100644 --- a/Docs/Layers/bank.md +++ b/Docs/Layers/bank.md @@ -53,6 +53,7 @@ Elements must match the expression **cycle_barrier=double | cycle_barrier=triple ### Width of opening (cyclebarrier) The question is `How wide is the smallest opening next to the barriers?` -*Width of opening: {width:opening} m* is shown if `width:opening` is set + +*Width of opening: {width:opening} m* is shown if `width:opening` is set. This tagrendering is only visible in the popup if the following condition is met: cycle_barrier=double | cycle_barrier=triple ### Overlap (cyclebarrier) The question is `How much overlap do the barriers have?` -*Overlap: {overlap} m* is shown if `overlap` is set + +*Overlap: {overlap} m* is shown if `overlap` is set. This tagrendering is only visible in the popup if the following condition is met: cycle_barrier=double | cycle_barrier=triple ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -167,16 +173,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bbq.md b/Docs/Layers/bbq.md index e4c0412be3..641476c641 100644 --- a/Docs/Layers/bbq.md +++ b/Docs/Layers/bbq.md @@ -67,6 +67,7 @@ Elements must match the expression **capacity=1 ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -80,16 +83,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bench.md b/Docs/Layers/bench.md index e8966c6961..af9cdbfde6 100644 --- a/Docs/Layers/bench.md +++ b/Docs/Layers/bench.md @@ -117,6 +117,7 @@ Elements must match the expression **seats:separated=no @@ -153,7 +155,8 @@ This tagrendering has labels ### bench-material The question is `What is the bench (seating) made from?` -*Material: {material}* is shown if `material` is set + +*Material: {material}* is shown if `material` is set. - *The seating is made from wood* is shown if with material=wood - *The seating is made from metal* is shown if with material=metal @@ -168,7 +171,8 @@ This tagrendering has labels ### bench-direction The question is `In which direction are you looking when sitting on the bench?` -*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set + +*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set. This tagrendering has labels `bench-questions` @@ -176,7 +180,8 @@ This tagrendering has labels ### bench-colour The question is `Which colour does this bench have?` -*Colour: {colour}* is shown if `colour` is set + +*Colour: {colour}* is shown if `colour` is set. - *Colour: brown* is shown if with colour=brown - *Colour: green* is shown if with colour=green @@ -193,7 +198,8 @@ This tagrendering has labels ### bench-survey:date The question is `When was this bench last surveyed?` -*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Surveyed today!* is shown if with survey:date= @@ -203,7 +209,8 @@ This tagrendering has labels ### bench-inscription The question is `Does this bench have an inscription?` -*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set + +*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set. - *This bench does not have an inscription* is shown if with not:inscription=yes - *This bench probably does not not have an inscription* is shown if with inscription=. _This option cannot be chosen as answer_ @@ -233,7 +240,8 @@ This tagrendering has labels ### artwork-artwork_type The question is `What is the type of this artwork?` -*This is a {artwork_type}* is shown if `artwork_type` is set + +*This is a {artwork_type}* is shown if `artwork_type` is set. - *Architecture* is shown if with artwork_type=architecture - *Mural* is shown if with artwork_type=mural @@ -257,7 +265,8 @@ This tagrendering has labels ### artwork-artist-wikidata The question is `Who made this artwork?` -*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set + +*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -266,7 +275,8 @@ This tagrendering has labels ### artwork-artist_name The question is `Which artist created this?` -*Created by {artist_name}* is shown if `artist_name` is set + +*Created by {artist_name}* is shown if `artist_name` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -275,7 +285,8 @@ This tagrendering has labels ### artwork-website The question is `Is there a website with more information about this artwork?` -*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -284,7 +295,8 @@ This tagrendering has labels ### artwork_subject The question is `What does this artwork depict?` -*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -293,7 +305,8 @@ This tagrendering has labels ### memorial-wikidata The question is `What is the Wikipedia page about this memorial?` -*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set + +*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -303,7 +316,8 @@ This tagrendering has labels ### subject-wikidata The question is `What is the Wikipedia page about the person or event that is remembered here?` -*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -313,6 +327,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -322,16 +337,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bench_at_pt.md b/Docs/Layers/bench_at_pt.md index e602851bd0..4c077ad713 100644 --- a/Docs/Layers/bench_at_pt.md +++ b/Docs/Layers/bench_at_pt.md @@ -56,12 +56,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bench_at_pt-name _This tagrendering has no question and is thus read-only_ -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### bench_at_pt-bench_type @@ -74,6 +76,7 @@ The question is `What kind of bench is this?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -83,11 +86,13 @@ This tagrendering has labels ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bicycle_assisted_repair_workshop.md b/Docs/Layers/bicycle_assisted_repair_workshop.md index bd8a049497..00fa9acd17 100644 --- a/Docs/Layers/bicycle_assisted_repair_workshop.md +++ b/Docs/Layers/bicycle_assisted_repair_workshop.md @@ -81,22 +81,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### preset_description _This tagrendering has no question and is thus read-only_ + *{preset_description()}* ### name The question is `What is the name of this repair workshop?` -*This workshop is called {name}* is shown if `name` is set + +*This workshop is called {name}* is shown if `name` is set. ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -105,7 +109,8 @@ The question is `What are the opening hours of {title()}?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -115,7 +120,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -126,7 +132,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -136,12 +143,14 @@ This tagrendering has labels ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### facebook Shows and asks for the facebook handle The question is `What is the facebook page of of {title()}?` -*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set + +*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set. ### item:repair @@ -157,6 +166,7 @@ The question is `What type of items are repaired here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -166,16 +176,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bicycle_counter.md b/Docs/Layers/bicycle_counter.md index 55faa22ea3..db2e7c5942 100644 --- a/Docs/Layers/bicycle_counter.md +++ b/Docs/Layers/bicycle_counter.md @@ -78,6 +78,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### display @@ -91,12 +92,14 @@ The question is `Does this bicycle counter have a display showing the number of ### name The question is `What is the name of the counted location?` -*Name of the counted location: {name}* is shown if `name` is set + +*Name of the counted location: {name}* is shown if `name` is set. ### start_date The question is `When did this counter start counting?` -*This counter started counting on {start_date}* is shown if `start_date` is set + +*This counter started counting on {start_date}* is shown if `start_date` is set. ### clock @@ -108,18 +111,21 @@ The question is `Does this bicycle counter have a clock?` ### ref The question is `What is the reference number of this counter?` -*Reference number of the counter: {ref}* is shown if `ref` is set + +*Reference number of the counter: {ref}* is shown if `ref` is set. - *This counter has no reference number* is shown if with noref=yes ### website The question is `Is there a website for this bicycle counter?` -*Website of the counter: {website}* is shown if `website` is set + +*Website of the counter: {website}* is shown if `website` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -129,16 +135,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bicycle_library.md b/Docs/Layers/bicycle_library.md index e143c79b58..65cd460e7e 100644 --- a/Docs/Layers/bicycle_library.md +++ b/Docs/Layers/bicycle_library.md @@ -85,17 +85,20 @@ Elements must match the expression **{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -105,7 +108,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -115,7 +119,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -126,14 +131,16 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### bicycle_library-charge The question is `How much does lending a bicycle cost?` -*Lending a bicycle costs {charge}* is shown if `charge` is set + +*Lending a bicycle costs {charge}* is shown if `charge` is set. - *Lending a bicycle is free* is shown if with fee=no & charge= - *Lending a bicycle costs €20/year and €20 warranty* is shown if with fee=yes & charge=€20warranty + €20/year @@ -149,11 +156,13 @@ The question is `Who can loan bicycles here?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -163,16 +172,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bicycle_rental.md b/Docs/Layers/bicycle_rental.md index 40b00bf8c1..0b633fcf16 100644 --- a/Docs/Layers/bicycle_rental.md +++ b/Docs/Layers/bicycle_rental.md @@ -111,6 +111,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bicycle_rental_type @@ -129,7 +130,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -139,7 +141,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -150,7 +153,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -160,7 +164,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -189,7 +194,8 @@ The question is `Which methods of payment are accepted here?` ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -207,7 +213,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*city_bike.*)$ This tagrendering has labels @@ -216,7 +223,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*ebike.*)$ This tagrendering has labels @@ -225,7 +233,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -234,7 +243,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bmx.*)$ This tagrendering has labels @@ -243,7 +253,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*mtb.*)$ This tagrendering has labels @@ -252,7 +263,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -261,7 +273,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -270,6 +283,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -279,16 +293,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bicycle_rental_non_docking.md b/Docs/Layers/bicycle_rental_non_docking.md index d2c560a8ff..3d30346fcc 100644 --- a/Docs/Layers/bicycle_rental_non_docking.md +++ b/Docs/Layers/bicycle_rental_non_docking.md @@ -99,6 +99,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bicycle_rental_type @@ -117,7 +118,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -127,7 +129,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -138,7 +141,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -148,7 +152,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -177,7 +182,8 @@ The question is `Which methods of payment are accepted here?` ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -195,7 +201,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*city_bike.*)$ This tagrendering has labels @@ -204,7 +211,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*ebike.*)$ This tagrendering has labels @@ -213,7 +221,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -222,7 +231,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bmx.*)$ This tagrendering has labels @@ -231,7 +241,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*mtb.*)$ This tagrendering has labels @@ -240,7 +251,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -249,7 +261,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -258,6 +271,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -267,16 +281,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_cafe.md b/Docs/Layers/bike_cafe.md index c4f11ad3dd..758d8ffba8 100644 --- a/Docs/Layers/bike_cafe.md +++ b/Docs/Layers/bike_cafe.md @@ -86,12 +86,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bike_cafe-name The question is `What is the name of this bike cafe?` -*This bike cafe is called {name}* is shown if `name` is set + +*This bike cafe is called {name}* is shown if `name` is set. ### bike_cafe-bike-pump @@ -117,7 +119,8 @@ The question is `Does this bike cafe repair bikes?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -127,7 +130,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -137,7 +141,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -148,13 +153,15 @@ This tagrendering has labels ### opening_hours The question is `When it this bike café opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -164,16 +171,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_cleaning.md b/Docs/Layers/bike_cleaning.md index bfc7f1f1bb..614cbd9198 100644 --- a/Docs/Layers/bike_cleaning.md +++ b/Docs/Layers/bike_cleaning.md @@ -86,12 +86,14 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -99,7 +101,8 @@ The question is `What are the opening hours of {title()}?` ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -109,7 +112,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {charge}* is shown if `charge` is set + +*Using the cleaning service costs {charge}* is shown if `charge` is set. - *This cleaning service is free to use* is shown if with fee=no - *There is a fee to use this cleaning service* is shown if with fee=yes @@ -193,6 +197,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -202,16 +207,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_parking.md b/Docs/Layers/bike_parking.md index 06cc9b97c4..3cb9d3116f 100644 --- a/Docs/Layers/bike_parking.md +++ b/Docs/Layers/bike_parking.md @@ -107,12 +107,14 @@ Elements must match the expression ** *Stands* is shown if with bicycle_parking=stands - *Rack with side loops* is shown if with bicycle_parking=safe_loops @@ -150,12 +152,14 @@ The question is `Is this parking covered?` ### Capacity The question is `How many bicycles fit in this bicycle parking?` -*Place for {capacity} bikes* is shown if `capacity` is set + +*Place for {capacity} bikes* is shown if `capacity` is set. ### Access The question is `Who can use this bicycle parking?` -*{access}* is shown if `access` is set + +*{access}* is shown if `access` is set. - *Publicly accessible* is shown if with access=yes - *Access is primarily for visitors to a business* is shown if with access=customers @@ -172,14 +176,16 @@ The question is `Are these bicycle parkings free to use?` ### charge The question is `How much does it cost to park your bike here?` -*Parking your bike costs {charge}* is shown if `charge` is set + +*Parking your bike costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes ### opening_hours_24_7_default The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -187,12 +193,14 @@ The question is `What are the opening hours of {title()}?` ### operator The question is `Who maintains this bicycle parking?` -*This bicycle parking is maintained by {operator}* is shown if `operator` is set + +*This bicycle parking is maintained by {operator}* is shown if `operator` is set. ### operator_phone The question is `What is the phone number of the operator of this bicycle parking?` -*{operator:phone}* is shown if `operator:phone` is set + +*{operator:phone}* is shown if `operator:phone` is set. - *{phone}* is shown if with phone~.+. _This option cannot be chosen as answer_ - *{contact:phone}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -200,7 +208,8 @@ The question is `What is the phone number of the operator of this bicycle parkin ### operator_website The question is `What is the website number of the operator of this bicycle parking?` -*{operator:website}* is shown if `operator:website` is set + +*{operator:website}* is shown if `operator:website` is set. - *{website}* is shown if with website~.+. _This option cannot be chosen as answer_ - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -208,7 +217,8 @@ The question is `What is the website number of the operator of this bicycle park ### operator_email The question is `What is the email address of the operator of this bicycle parking?` -*{operator:email}* is shown if `operator:email` is set + +*{operator:email}* is shown if `operator:email` is set. ### Cargo bike spaces? @@ -221,7 +231,8 @@ The question is `Does this bicycle parking have spots for cargo bikes?` ### Cargo bike capacity? The question is `How many cargo bicycles fit in this bicycle parking?` -*This parking fits {capacity:cargo_bike} cargo bikes* is shown if `capacity:cargo_bike` is set + +*This parking fits {capacity:cargo_bike} cargo bikes* is shown if `capacity:cargo_bike` is set. - *There are no dedicated spaces for cargo bikes here or parking cargo bikes here is not allowed* is shown if with cargo_bike=no @@ -230,11 +241,13 @@ This tagrendering is only visible in the popup if the following condition is met ### maxstay The question is `What is the maximum allowed parking duration?` -*A bike can be parked here for at most {canonical(maxstay)}* is shown if `maxstay` is set + +*A bike can be parked here for at most {canonical(maxstay)}* is shown if `maxstay` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -244,16 +257,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_repair_station.md b/Docs/Layers/bike_repair_station.md index 2051e80de2..101be49b02 100644 --- a/Docs/Layers/bike_repair_station.md +++ b/Docs/Layers/bike_repair_station.md @@ -111,6 +111,7 @@ With this email&COMMA I'd like to inform you that the bicycle pump located at ht ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bike_repair_station-available-services @@ -133,7 +134,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `When is this bicycle repair point open?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -151,7 +153,8 @@ The question is `Who is allowed to use this repair station?` ### bike_repair_station-operator The question is `Who maintains this cycle pump?` -*Maintained by {operator}* is shown if `operator` is set + +*Maintained by {operator}* is shown if `operator` is set. This tagrendering has labels `operator-info` @@ -159,7 +162,8 @@ This tagrendering has labels ### bike_repair_station-email The question is `What is the email address of the maintainer?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. This tagrendering has labels `operator-info` @@ -167,7 +171,8 @@ This tagrendering has labels ### bike_repair_station-phone The question is `What is the phone number of the maintainer?` -*{phone}* is shown if `phone` is set + +*{phone}* is shown if `phone` is set. This tagrendering has labels `operator-info` @@ -193,6 +198,7 @@ This tagrendering is only visible in the popup if the following condition is met ### send_email_about_broken_pump _This tagrendering has no question and is thus read-only_ + *{send_email(&LBRACEemail&RBRACE,Broken bicycle pump,Hello&COMMA With this email&COMMA I'd like to inform you that the bicycle pump located at https://mapcomplete.org/cyclofix?lat=&LBRACE_lat&RBRACE&lon=&LBRACE_lon&RBRACE&z=18#&LBRACEid&RBRACE is broken. @@ -204,7 +210,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_repair_station-valves The question is `What valves are supported?` -*This pump supports the following valves: {valves}* is shown if `valves` is set + +*This pump supports the following valves: {valves}* is shown if `valves` is set. - *Sclaverand/Presta (narrow-width bike tires)* is shown if with valves=sclaverand - *Dunlop* is shown if with valves=dunlop @@ -232,6 +239,7 @@ This tagrendering is only visible in the popup if the following condition is met ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -241,7 +249,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -255,6 +264,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -264,16 +274,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_shop.md b/Docs/Layers/bike_shop.md index 53191bb5b5..55efdc1eca 100644 --- a/Docs/Layers/bike_shop.md +++ b/Docs/Layers/bike_shop.md @@ -33,6 +33,8 @@ A shop specifically selling bicycles or related items - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -56,7 +58,7 @@ A shop specifically selling bicycles or related items - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -139,6 +141,7 @@ Elements must match **any** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -212,6 +215,8 @@ Elements must match **any** of the following expressions: | [copyshop-binding](#copyshop-binding)
_(Original in [shops](./shops.md#copyshop-binding))_ | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service)
_(Original in [shops](./shops.md#optometrist_service))_ | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter)
_(Original in [shops](./shops.md#key_cutter))_ | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup)
_(Original in [shops](./shops.md#hairdresser-targetgroup))_ | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [shops](./shops.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes)
_(Original in [shops](./shops.md#sells_new_bikes))_ | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand)
_(Original in [shops](./shops.md#bike_second_hand))_ | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes)
_(Original in [shops](./shops.md#repairs_bikes))_ | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -235,7 +240,7 @@ Elements must match **any** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [shops](./shops.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [shops](./shops.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [shops](./shops.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [shops](./shops.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [shops](./shops.md#shop-dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [shops](./shops.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [shops](./shops.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [shops](./shops.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -282,22 +287,26 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -471,7 +480,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -488,14 +498,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -505,7 +517,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -516,7 +529,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -534,6 +548,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -543,7 +558,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -594,6 +610,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -636,7 +673,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -655,7 +693,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -664,7 +703,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -673,7 +713,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -682,7 +723,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -691,7 +733,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -700,7 +743,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -709,7 +753,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -748,7 +793,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -784,7 +830,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -841,7 +888,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -854,11 +901,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -867,6 +916,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -891,6 +941,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -905,7 +956,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -925,7 +977,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -960,7 +1013,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1030,7 +1084,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1120,7 +1175,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1156,7 +1212,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1229,6 +1286,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1244,6 +1302,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1261,6 +1320,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1278,6 +1338,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1319,6 +1380,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1335,6 +1397,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1370,7 +1433,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1389,7 +1455,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1406,7 +1475,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1465,6 +1537,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1481,6 +1554,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1491,6 +1565,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1500,16 +1575,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/bike_themed_object.md b/Docs/Layers/bike_themed_object.md index 9607c1fa6a..83192ce76d 100644 --- a/Docs/Layers/bike_themed_object.md +++ b/Docs/Layers/bike_themed_object.md @@ -73,17 +73,20 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -93,7 +96,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -104,7 +108,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -114,13 +119,15 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -130,6 +137,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/binocular.md b/Docs/Layers/binocular.md index 18fd03f1f8..af5496e4c6 100644 --- a/Docs/Layers/binocular.md +++ b/Docs/Layers/binocular.md @@ -63,23 +63,27 @@ Elements must match the expression **fee=no & charge= ### binocular-direction The question is `When looking through this binocular, in what direction does one look?` -*Looks towards {direction}°* is shown if `direction` is set + +*Looks towards {direction}°* is shown if `direction` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -89,16 +93,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/birdhide.md b/Docs/Layers/birdhide.md index 7331b917bb..f60819b523 100644 --- a/Docs/Layers/birdhide.md +++ b/Docs/Layers/birdhide.md @@ -67,6 +67,7 @@ Elements must match the expression **operator=Natuurpunt - *Operated by the Agency for Nature and Forests* is shown if with operator=Agentschap Natuur en Bos @@ -98,6 +100,7 @@ The question is `Who operates this birdhide?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -107,16 +110,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/brothel.md b/Docs/Layers/brothel.md index 063274db9c..85ac2b5381 100644 --- a/Docs/Layers/brothel.md +++ b/Docs/Layers/brothel.md @@ -75,29 +75,34 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -107,7 +112,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -118,7 +124,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -128,6 +135,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -137,16 +145,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/building.md b/Docs/Layers/building.md index 3111bab218..71d6771040 100644 --- a/Docs/Layers/building.md +++ b/Docs/Layers/building.md @@ -65,7 +65,8 @@ Elements must match the expression **building~.+** ### architecture The question is `What is the architectural style of this building?` -*{building:architecture}* is shown if `building:architecture` is set + +*{building:architecture}* is shown if `building:architecture` is set. - *Islamic architecture* is shown if with building:architecture=islamic - *Mamluk architecture* is shown if with building:architecture=mamluk @@ -105,11 +106,13 @@ The question is `What is the architectural style of this building?` ### construction_date The question is `When was this built?` -*Built in {construction_date}* is shown if `construction_date` is set + +*Built in {construction_date}* is shown if `construction_date` is set. ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -118,6 +121,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -129,7 +133,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -140,7 +145,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -149,7 +155,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -160,6 +167,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -169,11 +177,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/buildings_with_architecture.md b/Docs/Layers/buildings_with_architecture.md index d5b3eb2259..090d8b8ab6 100644 --- a/Docs/Layers/buildings_with_architecture.md +++ b/Docs/Layers/buildings_with_architecture.md @@ -69,7 +69,8 @@ Elements must match **all** of the following expressions: ### architecture The question is `What is the architectural style of this building?` -*{building:architecture}* is shown if `building:architecture` is set + +*{building:architecture}* is shown if `building:architecture` is set. - *Islamic architecture* is shown if with building:architecture=islamic - *Mamluk architecture* is shown if with building:architecture=mamluk @@ -109,11 +110,13 @@ The question is `What is the architectural style of this building?` ### construction_date The question is `When was this built?` -*Built in {construction_date}* is shown if `construction_date` is set + +*Built in {construction_date}* is shown if `construction_date` is set. ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -122,6 +125,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -133,7 +137,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -144,7 +149,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -153,7 +159,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -164,6 +171,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -173,11 +181,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cafe_pub.md b/Docs/Layers/cafe_pub.md index 2f9040dc2f..7e554ee0f4 100644 --- a/Docs/Layers/cafe_pub.md +++ b/Docs/Layers/cafe_pub.md @@ -221,11 +221,13 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -235,7 +237,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -249,7 +252,8 @@ This tagrendering has labels ### Name The question is `What is the name of this business?` -*This business is named {name}* is shown if `name` is set + +*This business is named {name}* is shown if `name` is set. ### Classification @@ -265,14 +269,16 @@ The question is `What kind of cafe is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -282,7 +288,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -293,7 +300,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -380,7 +388,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -391,11 +400,13 @@ This tagrendering has labels ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -404,6 +415,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -428,6 +440,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -442,7 +455,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -462,7 +476,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -497,7 +512,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -567,7 +583,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -657,7 +674,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -693,7 +711,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -766,6 +785,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -781,6 +801,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -798,6 +819,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -815,6 +837,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -856,6 +879,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -872,6 +896,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -907,7 +932,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -926,7 +954,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -943,7 +974,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1002,6 +1036,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1018,6 +1053,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1028,6 +1064,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1037,16 +1074,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/campsite.md b/Docs/Layers/campsite.md index 70f58911d9..d4357c5b37 100644 --- a/Docs/Layers/campsite.md +++ b/Docs/Layers/campsite.md @@ -89,6 +89,7 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -116,7 +119,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -127,7 +131,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -137,7 +142,8 @@ This tagrendering has labels ### capacity_persons The question is `How many people can stay here?` -*{capacity:persons} people can stay here* is shown if `capacity:persons` is set + +*{capacity:persons} people can stay here* is shown if `capacity:persons` is set. ### fee @@ -149,12 +155,14 @@ The question is `Is there a fee?` ### charge_person_day The question is `What is the charge per person per day?` -*Charge per person per day: {charge}* is shown if `charge` is set + +*Charge per person per day: {charge}* is shown if `charge` is set. ### charge_day The question is `What is the charge per day?` -*Charge per day: {charge}* is shown if `charge` is set + +*Charge per day: {charge}* is shown if `charge` is set. ### caravansites-toilets @@ -166,21 +174,25 @@ The question is `Does this place have toilets?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/car_rental.md b/Docs/Layers/car_rental.md index 5903e7abf9..a5b6cbf51e 100644 --- a/Docs/Layers/car_rental.md +++ b/Docs/Layers/car_rental.md @@ -71,19 +71,22 @@ Elements must match the expression **noname=yes ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -93,7 +96,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -104,7 +108,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -114,13 +119,15 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -130,11 +137,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/caravansites.md b/Docs/Layers/caravansites.md index 9b9830b888..779c3ce881 100644 --- a/Docs/Layers/caravansites.md +++ b/Docs/Layers/caravansites.md @@ -92,12 +92,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### caravansites-name The question is `What is this place called?` -*This place is called {name}* is shown if `name` is set + +*This place is called {name}* is shown if `name` is set. ### caravansites-fee @@ -109,7 +111,8 @@ The question is `Does this place charge a fee?` ### caravansites-charge The question is `How much does this place charge?` -*This place charges {charge}* is shown if `charge` is set + +*This place charges {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -123,7 +126,8 @@ The question is `Does this place have a sanitary dump station?` ### caravansites-capacity The question is `How many campers can stay here? (skip if there is no obvious number of spaces or allowed vehicles)` -*{capacity} campers can use this place at the same time* is shown if `capacity` is set + +*{capacity} campers can use this place at the same time* is shown if `capacity` is set. ### caravansites-internet @@ -152,7 +156,8 @@ The question is `Does this place have toilets?` ### caravansites-website The question is `Does this place have a website?` -*Official website: {website}* is shown if `website` is set + +*Official website: {website}* is shown if `website` is set. ### caravansites-long-term @@ -165,26 +170,31 @@ The question is `Does this place offer spots for long term rental?` ### caravansites-description The question is `Would you like to add a general description of this place? (Do not repeat information previously asked or shown above. Please keep it objective - opinions go into the reviews)` -*More details about this place: {description}* is shown if `description` is set + +*More details about this place: {description}* is shown if `description` is set. ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/charge_point.md b/Docs/Layers/charge_point.md index bccea4f8c2..9c5a964558 100644 --- a/Docs/Layers/charge_point.md +++ b/Docs/Layers/charge_point.md @@ -318,17 +318,20 @@ Elements must match the expression **{socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set + +*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set. This tagrendering is only visible in the popup if the following condition is met: socket:schuko~.+ & socket:schuko!=0 This tagrendering has labels @@ -389,7 +393,8 @@ This tagrendering has labels ### plugs-amount-socket:typee The question is `How much plugs of type European wall plug with ground pin (CEE7/4 type E) are available here?` -*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set + +*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set. This tagrendering is only visible in the popup if the following condition is met: socket:typee~.+ & socket:typee!=0 This tagrendering has labels @@ -398,7 +403,8 @@ This tagrendering has labels ### plugs-amount-socket:chademo The question is `How much plugs of type Chademo are available here?` -*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set + +*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:chademo~.+ & socket:chademo!=0 This tagrendering has labels @@ -407,7 +413,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_cable The question is `How much plugs of type Type 1 with cable (J1772) are available here?` -*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set + +*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_cable~.+ & socket:type1_cable!=0 This tagrendering has labels @@ -416,7 +423,8 @@ This tagrendering has labels ### plugs-amount-socket:type1 The question is `How much plugs of type Type 1 without cable (J1772) are available here?` -*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set + +*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1~.+ & socket:type1!=0 This tagrendering has labels @@ -425,7 +433,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_combo The question is `How much plugs of type Type 1 CCS (aka Type 1 Combo) are available here?` -*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set + +*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_combo~.+ & socket:type1_combo!=0 This tagrendering has labels @@ -434,7 +443,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger The question is `How much plugs of type Tesla Supercharger are available here?` -*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set + +*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger~.+ & socket:tesla_supercharger!=0 This tagrendering has labels @@ -443,7 +453,8 @@ This tagrendering has labels ### plugs-amount-socket:type2 The question is `How much plugs of type Type 2 (mennekes) are available here?` -*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set + +*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2~.+ & socket:type2!=0 This tagrendering has labels @@ -452,7 +463,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_combo The question is `How much plugs of type Type 2 CCS (mennekes) are available here?` -*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set + +*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_combo~.+ & socket:type2_combo!=0 This tagrendering has labels @@ -461,7 +473,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_cable The question is `How much plugs of type Type 2 with cable (mennekes) are available here?` -*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set + +*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_cable~.+ & socket:type2_cable!=0 This tagrendering has labels @@ -470,7 +483,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger_ccs The question is `How much plugs of type Tesla Supercharger CCS (a branded type2_css) are available here?` -*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set + +*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger_ccs~.+ & socket:tesla_supercharger_ccs!=0 This tagrendering has labels @@ -479,7 +493,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination_us The question is `How much plugs of type Tesla Supercharger (destination) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -488,7 +503,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination The question is `How much plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -497,7 +513,8 @@ This tagrendering has labels ### plugs-amount-socket:USB-A The question is `How much plugs of type USB to charge phones and small electronics are available here?` -*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set + +*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set. This tagrendering is only visible in the popup if the following condition is met: socket:USB-A~.+ & socket:USB-A!=0 This tagrendering has labels @@ -506,7 +523,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_3pin The question is `How much plugs of type Bosch Active Connect with 3 pins and cable are available here?` -*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set + +*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -515,7 +533,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_5pin The question is `How much plugs of type Bosch Active Connect with 5 pins and cable are available here?` -*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set + +*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -524,7 +543,8 @@ This tagrendering has labels ### plugs-amount-socket:bs1363 The question is `How much plugs of type BS1363 (Type G) are available here?` -*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set + +*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bs1363~.+ & socket:bs1363!=0 This tagrendering has labels @@ -533,7 +553,8 @@ This tagrendering has labels ### plugs-amount-socket:nema5_15 The question is `How much plugs of type NEMA 5-15 (Type B) are available here?` -*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set + +*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema5_15~.+ & socket:nema5_15!=0 This tagrendering has labels @@ -542,7 +563,8 @@ This tagrendering has labels ### plugs-amount-socket:sev1011_t23 The question is `How much plugs of type SEV 1011 T23 (Type J) are available here?` -*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set + +*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set. This tagrendering is only visible in the popup if the following condition is met: socket:sev1011_t23~.+ & socket:sev1011_t23!=0 This tagrendering has labels @@ -551,7 +573,8 @@ This tagrendering has labels ### plugs-amount-socket:as3112 The question is `How much plugs of type AS3112 (Type I) are available here?` -*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set + +*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set. This tagrendering is only visible in the popup if the following condition is met: socket:as3112~.+ & socket:as3112!=0 This tagrendering has labels @@ -560,7 +583,8 @@ This tagrendering has labels ### plugs-amount-socket:nema_5_20 The question is `How much plugs of type NEMA 5-20 (Type B) are available here?` -*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set + +*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema_5_20~.+ & socket:nema_5_20!=0 This tagrendering has labels @@ -569,17 +593,20 @@ This tagrendering has labels ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### questions-technical _This tagrendering has no question and is thus read-only_ + *

Technical questions

The questions below are very technical. Feel free to ignore them
{questions(technical)}* ### voltage-socket:schuko The question is `What voltage do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt* is shown if with
socket:schuko:voltage=230 @@ -590,7 +617,8 @@ This tagrendering has labels ### current-socket:schuko The question is `What current do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A* is shown if with socket:schuko:current=16 @@ -601,7 +629,8 @@ This tagrendering has labels ### power-output-socket:schuko The question is `What power output does a single plug of type Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kW* is shown if with socket:schuko:output=3.6 kW @@ -612,7 +641,8 @@ This tagrendering has labels ### voltage-socket:typee The question is `What voltage do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs 230 volt* is shown if with socket:typee:voltage=230 @@ -623,7 +653,8 @@ This tagrendering has labels ### current-socket:typee The question is `What current do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A* is shown if with socket:typee:current=16 @@ -634,7 +665,8 @@ This tagrendering has labels ### power-output-socket:typee The question is `What power output does a single plug of type European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kW* is shown if with socket:typee:output=3 kW - *European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kW* is shown if with socket:typee:output=22 kW @@ -646,7 +678,8 @@ This tagrendering has labels ### voltage-socket:chademo The question is `What voltage do the plugs with Chademo offer?` -*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set + +*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set. - *Chademo outputs 500 volt* is shown if with socket:chademo:voltage=500 @@ -657,7 +690,8 @@ This tagrendering has labels ### current-socket:chademo The question is `What current do the plugs with Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set + +*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set. - *Chademo outputs at most 120 A* is shown if with socket:chademo:current=120 @@ -668,7 +702,8 @@ This tagrendering has labels ### power-output-socket:chademo The question is `What power output does a single plug of type Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set + +*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set. - *Chademo outputs at most 50 kW* is shown if with socket:chademo:output=50 kW @@ -679,7 +714,8 @@ This tagrendering has labels ### voltage-socket:type1_cable The question is `What voltage do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set + +*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set. - *Type 1 with cable (J1772) outputs 200 volt* is shown if with socket:type1_cable:voltage=200 - *Type 1 with cable (J1772) outputs 240 volt* is shown if with socket:type1_cable:voltage=240 @@ -691,7 +727,8 @@ This tagrendering has labels ### current-socket:type1_cable The question is `What current do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set. - *Type 1 with cable (J1772) outputs at most 32 A* is shown if with socket:type1_cable:current=32 @@ -702,7 +739,8 @@ This tagrendering has labels ### power-output-socket:type1_cable The question is `What power output does a single plug of type Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set. - *Type 1 with cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1_cable:output=3.7 kW - *Type 1 with cable (J1772) outputs at most 7 kW* is shown if with socket:type1_cable:output=7 kW @@ -714,7 +752,8 @@ This tagrendering has labels ### voltage-socket:type1 The question is `What voltage do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set + +*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set. - *Type 1 without cable (J1772) outputs 200 volt* is shown if with socket:type1:voltage=200 - *Type 1 without cable (J1772) outputs 240 volt* is shown if with socket:type1:voltage=240 @@ -726,7 +765,8 @@ This tagrendering has labels ### current-socket:type1 The question is `What current do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set. - *Type 1 without cable (J1772) outputs at most 32 A* is shown if with socket:type1:current=32 @@ -737,7 +777,8 @@ This tagrendering has labels ### power-output-socket:type1 The question is `What power output does a single plug of type Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set. - *Type 1 without cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1:output=3.7 kW - *Type 1 without cable (J1772) outputs at most 6.6 kW* is shown if with socket:type1:output=6.6 kW @@ -751,7 +792,8 @@ This tagrendering has labels ### voltage-socket:type1_combo The question is `What voltage do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set + +*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set. - *Type 1 CCS (aka Type 1 Combo) outputs 400 volt* is shown if with socket:type1_combo:voltage=400 - *Type 1 CCS (aka Type 1 Combo) outputs 1000 volt* is shown if with socket:type1_combo:voltage=1000 @@ -763,7 +805,8 @@ This tagrendering has labels ### current-socket:type1_combo The question is `What current do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 A* is shown if with socket:type1_combo:current=50 - *Type 1 CCS (aka Type 1 Combo) outputs at most 125 A* is shown if with socket:type1_combo:current=125 @@ -775,7 +818,8 @@ This tagrendering has labels ### power-output-socket:type1_combo The question is `What power output does a single plug of type Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 kW* is shown if with socket:type1_combo:output=50 kW - *Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kW* is shown if with socket:type1_combo:output=62.5 kW @@ -789,7 +833,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger The question is `What voltage do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set + +*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set. - *Tesla Supercharger outputs 480 volt* is shown if with socket:tesla_supercharger:voltage=480 @@ -800,7 +845,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger The question is `What current do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set. - *Tesla Supercharger outputs at most 125 A* is shown if with socket:tesla_supercharger:current=125 - *Tesla Supercharger outputs at most 350 A* is shown if with socket:tesla_supercharger:current=350 @@ -812,7 +858,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger The question is `What power output does a single plug of type Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set. - *Tesla Supercharger outputs at most 120 kW* is shown if with socket:tesla_supercharger:output=120 kW - *Tesla Supercharger outputs at most 150 kW* is shown if with socket:tesla_supercharger:output=150 kW @@ -825,7 +872,8 @@ This tagrendering has labels ### voltage-socket:type2 The question is `What voltage do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set + +*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set. - *Type 2 (mennekes) outputs 230 volt* is shown if with socket:type2:voltage=230 - *Type 2 (mennekes) outputs 400 volt* is shown if with socket:type2:voltage=400 @@ -837,7 +885,8 @@ This tagrendering has labels ### current-socket:type2 The question is `What current do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set. - *Type 2 (mennekes) outputs at most 16 A* is shown if with socket:type2:current=16 - *Type 2 (mennekes) outputs at most 32 A* is shown if with socket:type2:current=32 @@ -849,7 +898,8 @@ This tagrendering has labels ### power-output-socket:type2 The question is `What power output does a single plug of type Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set. - *Type 2 (mennekes) outputs at most 11 kW* is shown if with socket:type2:output=11 kW - *Type 2 (mennekes) outputs at most 22 kW* is shown if with socket:type2:output=22 kW @@ -861,7 +911,8 @@ This tagrendering has labels ### voltage-socket:type2_combo The question is `What voltage do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set + +*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set. - *Type 2 CCS (mennekes) outputs 500 volt* is shown if with socket:type2_combo:voltage=500 - *Type 2 CCS (mennekes) outputs 920 volt* is shown if with socket:type2_combo:voltage=920 @@ -873,7 +924,8 @@ This tagrendering has labels ### current-socket:type2_combo The question is `What current do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set. - *Type 2 CCS (mennekes) outputs at most 125 A* is shown if with socket:type2_combo:current=125 - *Type 2 CCS (mennekes) outputs at most 350 A* is shown if with socket:type2_combo:current=350 @@ -885,7 +937,8 @@ This tagrendering has labels ### power-output-socket:type2_combo The question is `What power output does a single plug of type Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set. - *Type 2 CCS (mennekes) outputs at most 50 kW* is shown if with socket:type2_combo:output=50 kW @@ -896,7 +949,8 @@ This tagrendering has labels ### voltage-socket:type2_cable The question is `What voltage do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set + +*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set. - *Type 2 with cable (mennekes) outputs 230 volt* is shown if with socket:type2_cable:voltage=230 - *Type 2 with cable (mennekes) outputs 400 volt* is shown if with socket:type2_cable:voltage=400 @@ -908,7 +962,8 @@ This tagrendering has labels ### current-socket:type2_cable The question is `What current do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set. - *Type 2 with cable (mennekes) outputs at most 16 A* is shown if with socket:type2_cable:current=16 - *Type 2 with cable (mennekes) outputs at most 32 A* is shown if with socket:type2_cable:current=32 @@ -920,7 +975,8 @@ This tagrendering has labels ### power-output-socket:type2_cable The question is `What power output does a single plug of type Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set. - *Type 2 with cable (mennekes) outputs at most 11 kW* is shown if with socket:type2_cable:output=11 kW - *Type 2 with cable (mennekes) outputs at most 22 kW* is shown if with socket:type2_cable:output=22 kW @@ -932,7 +988,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger_ccs The question is `What voltage do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs 500 volt* is shown if with socket:tesla_supercharger_ccs:voltage=500 - *Tesla Supercharger CCS (a branded type2_css) outputs 920 volt* is shown if with socket:tesla_supercharger_ccs:voltage=920 @@ -944,7 +1001,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger_ccs The question is `What current do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A* is shown if with socket:tesla_supercharger_ccs:current=125 - *Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A* is shown if with socket:tesla_supercharger_ccs:current=350 @@ -956,7 +1014,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger_ccs The question is `What power output does a single plug of type Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kW* is shown if with socket:tesla_supercharger_ccs:output=50 kW @@ -967,7 +1026,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination_us The question is `What voltage do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla Supercharger (destination) outputs 480 volt* is shown if with socket:tesla_destination:voltage=480 @@ -978,7 +1038,8 @@ This tagrendering has labels ### current-socket:tesla_destination_us The question is `What current do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla Supercharger (destination) outputs at most 125 A* is shown if with socket:tesla_destination:current=125 - *Tesla Supercharger (destination) outputs at most 350 A* is shown if with socket:tesla_destination:current=350 @@ -990,7 +1051,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination_us The question is `What power output does a single plug of type Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla Supercharger (destination) outputs at most 120 kW* is shown if with socket:tesla_destination:output=120 kW - *Tesla Supercharger (destination) outputs at most 150 kW* is shown if with socket:tesla_destination:output=150 kW @@ -1003,7 +1065,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination The question is `What voltage do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt* is shown if with socket:tesla_destination:voltage=230 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt* is shown if with socket:tesla_destination:voltage=400 @@ -1015,7 +1078,8 @@ This tagrendering has labels ### current-socket:tesla_destination The question is `What current do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A* is shown if with socket:tesla_destination:current=16 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A* is shown if with socket:tesla_destination:current=32 @@ -1027,7 +1091,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination The question is `What power output does a single plug of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kW* is shown if with socket:tesla_destination:output=11 kW - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kW* is shown if with socket:tesla_destination:output=22 kW @@ -1039,7 +1104,8 @@ This tagrendering has labels ### voltage-socket:USB-A The question is `What voltage do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set + +*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set. - *USB to charge phones and small electronics outputs 5 volt* is shown if with socket:USB-A:voltage=5 @@ -1050,7 +1116,8 @@ This tagrendering has labels ### current-socket:USB-A The question is `What current do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set. - *USB to charge phones and small electronics outputs at most 1 A* is shown if with socket:USB-A:current=1 - *USB to charge phones and small electronics outputs at most 2 A* is shown if with socket:USB-A:current=2 @@ -1062,7 +1129,8 @@ This tagrendering has labels ### power-output-socket:USB-A The question is `What power output does a single plug of type USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set. - *USB to charge phones and small electronics outputs at most 5W* is shown if with socket:USB-A:output=5W - *USB to charge phones and small electronics outputs at most 10W* is shown if with socket:USB-A:output=10W @@ -1074,7 +1142,8 @@ This tagrendering has labels ### voltage-socket:bosch_3pin The question is `What voltage do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set + +*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1083,7 +1152,8 @@ This tagrendering has labels ### current-socket:bosch_3pin The question is `What current do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1092,7 +1162,8 @@ This tagrendering has labels ### power-output-socket:bosch_3pin The question is `What power output does a single plug of type Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1101,7 +1172,8 @@ This tagrendering has labels ### voltage-socket:bosch_5pin The question is `What voltage do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set + +*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1110,7 +1182,8 @@ This tagrendering has labels ### current-socket:bosch_5pin The question is `What current do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1119,7 +1192,8 @@ This tagrendering has labels ### power-output-socket:bosch_5pin The question is `What power output does a single plug of type Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1128,7 +1202,8 @@ This tagrendering has labels ### voltage-socket:bs1363 The question is `What voltage do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set + +*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set. - *BS1363 (Type G) outputs 230 volt* is shown if with socket:bs1363:voltage=230 @@ -1139,7 +1214,8 @@ This tagrendering has labels ### current-socket:bs1363 The question is `What current do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set. - *BS1363 (Type G) outputs at most 13 A* is shown if with socket:bs1363:current=13 @@ -1150,7 +1226,8 @@ This tagrendering has labels ### power-output-socket:bs1363 The question is `What power output does a single plug of type BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set. - *BS1363 (Type G) outputs at most 3kW* is shown if with socket:bs1363:output=3kW @@ -1161,7 +1238,8 @@ This tagrendering has labels ### voltage-socket:nema5_15 The question is `What voltage do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set + +*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set. - *NEMA 5-15 (Type B) outputs 120 volt* is shown if with socket:nema5_15:voltage=120 @@ -1172,7 +1250,8 @@ This tagrendering has labels ### current-socket:nema5_15 The question is `What current do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set. - *NEMA 5-15 (Type B) outputs at most 15 A* is shown if with socket:nema5_15:current=15 @@ -1183,7 +1262,8 @@ This tagrendering has labels ### power-output-socket:nema5_15 The question is `What power output does a single plug of type NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set. - *NEMA 5-15 (Type B) outputs at most 1.8 kW* is shown if with socket:nema5_15:output=1.8 kW @@ -1194,7 +1274,8 @@ This tagrendering has labels ### voltage-socket:sev1011_t23 The question is `What voltage do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set + +*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set. - *SEV 1011 T23 (Type J) outputs 230 volt* is shown if with socket:sev1011_t23:voltage=230 @@ -1205,7 +1286,8 @@ This tagrendering has labels ### current-socket:sev1011_t23 The question is `What current do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set. - *SEV 1011 T23 (Type J) outputs at most 16 A* is shown if with socket:sev1011_t23:current=16 @@ -1216,7 +1298,8 @@ This tagrendering has labels ### power-output-socket:sev1011_t23 The question is `What power output does a single plug of type SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set. - *SEV 1011 T23 (Type J) outputs at most 3.7 kW* is shown if with socket:sev1011_t23:output=3.7 kW @@ -1227,7 +1310,8 @@ This tagrendering has labels ### voltage-socket:as3112 The question is `What voltage do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set + +*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set. - *AS3112 (Type I) outputs 230 volt* is shown if with socket:as3112:voltage=230 @@ -1238,7 +1322,8 @@ This tagrendering has labels ### current-socket:as3112 The question is `What current do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set. - *AS3112 (Type I) outputs at most 10 A* is shown if with socket:as3112:current=10 @@ -1249,7 +1334,8 @@ This tagrendering has labels ### power-output-socket:as3112 The question is `What power output does a single plug of type AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set. - *AS3112 (Type I) outputs at most 2.3 kW* is shown if with socket:as3112:output=2.3 kW @@ -1260,7 +1346,8 @@ This tagrendering has labels ### voltage-socket:nema_5_20 The question is `What voltage do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set + +*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set. - *NEMA 5-20 (Type B) outputs 120 volt* is shown if with socket:nema_5_20:voltage=120 @@ -1271,7 +1358,8 @@ This tagrendering has labels ### current-socket:nema_5_20 The question is `What current do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set. - *NEMA 5-20 (Type B) outputs at most 20 A* is shown if with socket:nema_5_20:current=20 @@ -1282,7 +1370,8 @@ This tagrendering has labels ### power-output-socket:nema_5_20 The question is `What power output does a single plug of type NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set. - *NEMA 5-20 (Type B) outputs at most 2.4 kW* is shown if with socket:nema_5_20:output=2.4 kW @@ -1293,11 +1382,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/charging_station.md b/Docs/Layers/charging_station.md index 7be0fd0799..9eee3f3295 100644 --- a/Docs/Layers/charging_station.md +++ b/Docs/Layers/charging_station.md @@ -385,6 +385,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Type @@ -400,7 +401,8 @@ The question is `Which vehicles are allowed to charge here?` ### access The question is `Who is allowed to use this charging station?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Anyone can use this charging station (payment might be needed)* is shown if with access=yes - *Anyone can use this charging station (payment might be needed)* is shown if with access=public. _This option cannot be chosen as answer_ @@ -412,7 +414,8 @@ The question is `Who is allowed to use this charging station?` ### capacity The question is `How much vehicles can be charged here at the same time?` -*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set + +*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set. ### Available_charging_stations (generated) @@ -464,7 +467,8 @@ The question is `Which charging connections are available here?` ### plugs-amount-socket:schuko The question is `How much plugs of type Schuko wall plug without ground pin (CEE7/4 type F) are available here?` -*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set + +*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set. This tagrendering is only visible in the popup if the following condition is met: socket:schuko~.+ & socket:schuko!=0 This tagrendering has labels @@ -473,7 +477,8 @@ This tagrendering has labels ### voltage-socket:schuko The question is `What voltage do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt* is shown if with socket:schuko:voltage=230 @@ -484,7 +489,8 @@ This tagrendering has labels ### current-socket:schuko The question is `What current do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A* is shown if with socket:schuko:current=16 @@ -495,7 +501,8 @@ This tagrendering has labels ### power-output-socket:schuko The question is `What power output does a single plug of type Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kW* is shown if with socket:schuko:output=3.6 kW @@ -506,7 +513,8 @@ This tagrendering has labels ### plugs-amount-socket:typee The question is `How much plugs of type European wall plug with ground pin (CEE7/4 type E) are available here?` -*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set + +*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set. This tagrendering is only visible in the popup if the following condition is met: socket:typee~.+ & socket:typee!=0 This tagrendering has labels @@ -515,7 +523,8 @@ This tagrendering has labels ### voltage-socket:typee The question is `What voltage do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs 230 volt* is shown if with socket:typee:voltage=230 @@ -526,7 +535,8 @@ This tagrendering has labels ### current-socket:typee The question is `What current do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A* is shown if with socket:typee:current=16 @@ -537,7 +547,8 @@ This tagrendering has labels ### power-output-socket:typee The question is `What power output does a single plug of type European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kW* is shown if with socket:typee:output=3 kW - *European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kW* is shown if with socket:typee:output=22 kW @@ -549,7 +560,8 @@ This tagrendering has labels ### plugs-amount-socket:chademo The question is `How much plugs of type Chademo are available here?` -*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set + +*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:chademo~.+ & socket:chademo!=0 This tagrendering has labels @@ -558,7 +570,8 @@ This tagrendering has labels ### voltage-socket:chademo The question is `What voltage do the plugs with Chademo offer?` -*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set + +*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set. - *Chademo outputs 500 volt* is shown if with socket:chademo:voltage=500 @@ -569,7 +582,8 @@ This tagrendering has labels ### current-socket:chademo The question is `What current do the plugs with Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set + +*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set. - *Chademo outputs at most 120 A* is shown if with socket:chademo:current=120 @@ -580,7 +594,8 @@ This tagrendering has labels ### power-output-socket:chademo The question is `What power output does a single plug of type Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set + +*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set. - *Chademo outputs at most 50 kW* is shown if with socket:chademo:output=50 kW @@ -591,7 +606,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_cable The question is `How much plugs of type Type 1 with cable (J1772) are available here?` -*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set + +*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_cable~.+ & socket:type1_cable!=0 This tagrendering has labels @@ -600,7 +616,8 @@ This tagrendering has labels ### voltage-socket:type1_cable The question is `What voltage do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set + +*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set. - *Type 1 with cable (J1772) outputs 200 volt* is shown if with socket:type1_cable:voltage=200 - *Type 1 with cable (J1772) outputs 240 volt* is shown if with socket:type1_cable:voltage=240 @@ -612,7 +629,8 @@ This tagrendering has labels ### current-socket:type1_cable The question is `What current do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set. - *Type 1 with cable (J1772) outputs at most 32 A* is shown if with socket:type1_cable:current=32 @@ -623,7 +641,8 @@ This tagrendering has labels ### power-output-socket:type1_cable The question is `What power output does a single plug of type Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set. - *Type 1 with cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1_cable:output=3.7 kW - *Type 1 with cable (J1772) outputs at most 7 kW* is shown if with socket:type1_cable:output=7 kW @@ -635,7 +654,8 @@ This tagrendering has labels ### plugs-amount-socket:type1 The question is `How much plugs of type Type 1 without cable (J1772) are available here?` -*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set + +*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1~.+ & socket:type1!=0 This tagrendering has labels @@ -644,7 +664,8 @@ This tagrendering has labels ### voltage-socket:type1 The question is `What voltage do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set + +*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set. - *Type 1 without cable (J1772) outputs 200 volt* is shown if with socket:type1:voltage=200 - *Type 1 without cable (J1772) outputs 240 volt* is shown if with socket:type1:voltage=240 @@ -656,7 +677,8 @@ This tagrendering has labels ### current-socket:type1 The question is `What current do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set. - *Type 1 without cable (J1772) outputs at most 32 A* is shown if with socket:type1:current=32 @@ -667,7 +689,8 @@ This tagrendering has labels ### power-output-socket:type1 The question is `What power output does a single plug of type Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set. - *Type 1 without cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1:output=3.7 kW - *Type 1 without cable (J1772) outputs at most 6.6 kW* is shown if with socket:type1:output=6.6 kW @@ -681,7 +704,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_combo The question is `How much plugs of type Type 1 CCS (aka Type 1 Combo) are available here?` -*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set + +*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_combo~.+ & socket:type1_combo!=0 This tagrendering has labels @@ -690,7 +714,8 @@ This tagrendering has labels ### voltage-socket:type1_combo The question is `What voltage do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set + +*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set. - *Type 1 CCS (aka Type 1 Combo) outputs 400 volt* is shown if with socket:type1_combo:voltage=400 - *Type 1 CCS (aka Type 1 Combo) outputs 1000 volt* is shown if with socket:type1_combo:voltage=1000 @@ -702,7 +727,8 @@ This tagrendering has labels ### current-socket:type1_combo The question is `What current do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 A* is shown if with socket:type1_combo:current=50 - *Type 1 CCS (aka Type 1 Combo) outputs at most 125 A* is shown if with socket:type1_combo:current=125 @@ -714,7 +740,8 @@ This tagrendering has labels ### power-output-socket:type1_combo The question is `What power output does a single plug of type Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 kW* is shown if with socket:type1_combo:output=50 kW - *Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kW* is shown if with socket:type1_combo:output=62.5 kW @@ -728,7 +755,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger The question is `How much plugs of type Tesla Supercharger are available here?` -*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set + +*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger~.+ & socket:tesla_supercharger!=0 This tagrendering has labels @@ -737,7 +765,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger The question is `What voltage do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set + +*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set. - *Tesla Supercharger outputs 480 volt* is shown if with socket:tesla_supercharger:voltage=480 @@ -748,7 +777,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger The question is `What current do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set. - *Tesla Supercharger outputs at most 125 A* is shown if with socket:tesla_supercharger:current=125 - *Tesla Supercharger outputs at most 350 A* is shown if with socket:tesla_supercharger:current=350 @@ -760,7 +790,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger The question is `What power output does a single plug of type Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set. - *Tesla Supercharger outputs at most 120 kW* is shown if with socket:tesla_supercharger:output=120 kW - *Tesla Supercharger outputs at most 150 kW* is shown if with socket:tesla_supercharger:output=150 kW @@ -773,7 +804,8 @@ This tagrendering has labels ### plugs-amount-socket:type2 The question is `How much plugs of type Type 2 (mennekes) are available here?` -*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set + +*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2~.+ & socket:type2!=0 This tagrendering has labels @@ -782,7 +814,8 @@ This tagrendering has labels ### voltage-socket:type2 The question is `What voltage do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set + +*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set. - *Type 2 (mennekes) outputs 230 volt* is shown if with socket:type2:voltage=230 - *Type 2 (mennekes) outputs 400 volt* is shown if with socket:type2:voltage=400 @@ -794,7 +827,8 @@ This tagrendering has labels ### current-socket:type2 The question is `What current do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set. - *Type 2 (mennekes) outputs at most 16 A* is shown if with socket:type2:current=16 - *Type 2 (mennekes) outputs at most 32 A* is shown if with socket:type2:current=32 @@ -806,7 +840,8 @@ This tagrendering has labels ### power-output-socket:type2 The question is `What power output does a single plug of type Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set. - *Type 2 (mennekes) outputs at most 11 kW* is shown if with socket:type2:output=11 kW - *Type 2 (mennekes) outputs at most 22 kW* is shown if with socket:type2:output=22 kW @@ -818,7 +853,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_combo The question is `How much plugs of type Type 2 CCS (mennekes) are available here?` -*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set + +*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_combo~.+ & socket:type2_combo!=0 This tagrendering has labels @@ -827,7 +863,8 @@ This tagrendering has labels ### voltage-socket:type2_combo The question is `What voltage do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set + +*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set. - *Type 2 CCS (mennekes) outputs 500 volt* is shown if with socket:type2_combo:voltage=500 - *Type 2 CCS (mennekes) outputs 920 volt* is shown if with socket:type2_combo:voltage=920 @@ -839,7 +876,8 @@ This tagrendering has labels ### current-socket:type2_combo The question is `What current do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set. - *Type 2 CCS (mennekes) outputs at most 125 A* is shown if with socket:type2_combo:current=125 - *Type 2 CCS (mennekes) outputs at most 350 A* is shown if with socket:type2_combo:current=350 @@ -851,7 +889,8 @@ This tagrendering has labels ### power-output-socket:type2_combo The question is `What power output does a single plug of type Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set. - *Type 2 CCS (mennekes) outputs at most 50 kW* is shown if with socket:type2_combo:output=50 kW @@ -862,7 +901,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_cable The question is `How much plugs of type Type 2 with cable (mennekes) are available here?` -*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set + +*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_cable~.+ & socket:type2_cable!=0 This tagrendering has labels @@ -871,7 +911,8 @@ This tagrendering has labels ### voltage-socket:type2_cable The question is `What voltage do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set + +*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set. - *Type 2 with cable (mennekes) outputs 230 volt* is shown if with socket:type2_cable:voltage=230 - *Type 2 with cable (mennekes) outputs 400 volt* is shown if with socket:type2_cable:voltage=400 @@ -883,7 +924,8 @@ This tagrendering has labels ### current-socket:type2_cable The question is `What current do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set. - *Type 2 with cable (mennekes) outputs at most 16 A* is shown if with socket:type2_cable:current=16 - *Type 2 with cable (mennekes) outputs at most 32 A* is shown if with socket:type2_cable:current=32 @@ -895,7 +937,8 @@ This tagrendering has labels ### power-output-socket:type2_cable The question is `What power output does a single plug of type Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set. - *Type 2 with cable (mennekes) outputs at most 11 kW* is shown if with socket:type2_cable:output=11 kW - *Type 2 with cable (mennekes) outputs at most 22 kW* is shown if with socket:type2_cable:output=22 kW @@ -907,7 +950,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger_ccs The question is `How much plugs of type Tesla Supercharger CCS (a branded type2_css) are available here?` -*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set + +*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger_ccs~.+ & socket:tesla_supercharger_ccs!=0 This tagrendering has labels @@ -916,7 +960,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger_ccs The question is `What voltage do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs 500 volt* is shown if with socket:tesla_supercharger_ccs:voltage=500 - *Tesla Supercharger CCS (a branded type2_css) outputs 920 volt* is shown if with socket:tesla_supercharger_ccs:voltage=920 @@ -928,7 +973,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger_ccs The question is `What current do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A* is shown if with socket:tesla_supercharger_ccs:current=125 - *Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A* is shown if with socket:tesla_supercharger_ccs:current=350 @@ -940,7 +986,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger_ccs The question is `What power output does a single plug of type Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kW* is shown if with socket:tesla_supercharger_ccs:output=50 kW @@ -951,7 +998,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination_us The question is `How much plugs of type Tesla Supercharger (destination) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -960,7 +1008,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination_us The question is `What voltage do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla Supercharger (destination) outputs 480 volt* is shown if with socket:tesla_destination:voltage=480 @@ -971,7 +1020,8 @@ This tagrendering has labels ### current-socket:tesla_destination_us The question is `What current do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla Supercharger (destination) outputs at most 125 A* is shown if with socket:tesla_destination:current=125 - *Tesla Supercharger (destination) outputs at most 350 A* is shown if with socket:tesla_destination:current=350 @@ -983,7 +1033,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination_us The question is `What power output does a single plug of type Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla Supercharger (destination) outputs at most 120 kW* is shown if with socket:tesla_destination:output=120 kW - *Tesla Supercharger (destination) outputs at most 150 kW* is shown if with socket:tesla_destination:output=150 kW @@ -996,7 +1047,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination The question is `How much plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -1005,7 +1057,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination The question is `What voltage do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt* is shown if with socket:tesla_destination:voltage=230 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt* is shown if with socket:tesla_destination:voltage=400 @@ -1017,7 +1070,8 @@ This tagrendering has labels ### current-socket:tesla_destination The question is `What current do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A* is shown if with socket:tesla_destination:current=16 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A* is shown if with socket:tesla_destination:current=32 @@ -1029,7 +1083,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination The question is `What power output does a single plug of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kW* is shown if with socket:tesla_destination:output=11 kW - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kW* is shown if with socket:tesla_destination:output=22 kW @@ -1041,7 +1096,8 @@ This tagrendering has labels ### plugs-amount-socket:USB-A The question is `How much plugs of type USB to charge phones and small electronics are available here?` -*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set + +*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set. This tagrendering is only visible in the popup if the following condition is met: socket:USB-A~.+ & socket:USB-A!=0 This tagrendering has labels @@ -1050,7 +1106,8 @@ This tagrendering has labels ### voltage-socket:USB-A The question is `What voltage do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set + +*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set. - *USB to charge phones and small electronics outputs 5 volt* is shown if with socket:USB-A:voltage=5 @@ -1061,7 +1118,8 @@ This tagrendering has labels ### current-socket:USB-A The question is `What current do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set. - *USB to charge phones and small electronics outputs at most 1 A* is shown if with socket:USB-A:current=1 - *USB to charge phones and small electronics outputs at most 2 A* is shown if with socket:USB-A:current=2 @@ -1073,7 +1131,8 @@ This tagrendering has labels ### power-output-socket:USB-A The question is `What power output does a single plug of type USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set. - *USB to charge phones and small electronics outputs at most 5W* is shown if with socket:USB-A:output=5W - *USB to charge phones and small electronics outputs at most 10W* is shown if with socket:USB-A:output=10W @@ -1085,7 +1144,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_3pin The question is `How much plugs of type Bosch Active Connect with 3 pins and cable are available here?` -*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set + +*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1094,7 +1154,8 @@ This tagrendering has labels ### voltage-socket:bosch_3pin The question is `What voltage do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set + +*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1103,7 +1164,8 @@ This tagrendering has labels ### current-socket:bosch_3pin The question is `What current do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1112,7 +1174,8 @@ This tagrendering has labels ### power-output-socket:bosch_3pin The question is `What power output does a single plug of type Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1121,7 +1184,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_5pin The question is `How much plugs of type Bosch Active Connect with 5 pins and cable are available here?` -*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set + +*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1130,7 +1194,8 @@ This tagrendering has labels ### voltage-socket:bosch_5pin The question is `What voltage do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set + +*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1139,7 +1204,8 @@ This tagrendering has labels ### current-socket:bosch_5pin The question is `What current do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1148,7 +1214,8 @@ This tagrendering has labels ### power-output-socket:bosch_5pin The question is `What power output does a single plug of type Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1157,7 +1224,8 @@ This tagrendering has labels ### plugs-amount-socket:bs1363 The question is `How much plugs of type BS1363 (Type G) are available here?` -*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set + +*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bs1363~.+ & socket:bs1363!=0 This tagrendering has labels @@ -1166,7 +1234,8 @@ This tagrendering has labels ### voltage-socket:bs1363 The question is `What voltage do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set + +*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set. - *BS1363 (Type G) outputs 230 volt* is shown if with socket:bs1363:voltage=230 @@ -1177,7 +1246,8 @@ This tagrendering has labels ### current-socket:bs1363 The question is `What current do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set. - *BS1363 (Type G) outputs at most 13 A* is shown if with socket:bs1363:current=13 @@ -1188,7 +1258,8 @@ This tagrendering has labels ### power-output-socket:bs1363 The question is `What power output does a single plug of type BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set. - *BS1363 (Type G) outputs at most 3kW* is shown if with socket:bs1363:output=3kW @@ -1199,7 +1270,8 @@ This tagrendering has labels ### plugs-amount-socket:nema5_15 The question is `How much plugs of type NEMA 5-15 (Type B) are available here?` -*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set + +*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema5_15~.+ & socket:nema5_15!=0 This tagrendering has labels @@ -1208,7 +1280,8 @@ This tagrendering has labels ### voltage-socket:nema5_15 The question is `What voltage do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set + +*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set. - *NEMA 5-15 (Type B) outputs 120 volt* is shown if with socket:nema5_15:voltage=120 @@ -1219,7 +1292,8 @@ This tagrendering has labels ### current-socket:nema5_15 The question is `What current do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set. - *NEMA 5-15 (Type B) outputs at most 15 A* is shown if with socket:nema5_15:current=15 @@ -1230,7 +1304,8 @@ This tagrendering has labels ### power-output-socket:nema5_15 The question is `What power output does a single plug of type NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set. - *NEMA 5-15 (Type B) outputs at most 1.8 kW* is shown if with socket:nema5_15:output=1.8 kW @@ -1241,7 +1316,8 @@ This tagrendering has labels ### plugs-amount-socket:sev1011_t23 The question is `How much plugs of type SEV 1011 T23 (Type J) are available here?` -*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set + +*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set. This tagrendering is only visible in the popup if the following condition is met: socket:sev1011_t23~.+ & socket:sev1011_t23!=0 This tagrendering has labels @@ -1250,7 +1326,8 @@ This tagrendering has labels ### voltage-socket:sev1011_t23 The question is `What voltage do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set + +*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set. - *SEV 1011 T23 (Type J) outputs 230 volt* is shown if with socket:sev1011_t23:voltage=230 @@ -1261,7 +1338,8 @@ This tagrendering has labels ### current-socket:sev1011_t23 The question is `What current do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set. - *SEV 1011 T23 (Type J) outputs at most 16 A* is shown if with socket:sev1011_t23:current=16 @@ -1272,7 +1350,8 @@ This tagrendering has labels ### power-output-socket:sev1011_t23 The question is `What power output does a single plug of type SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set. - *SEV 1011 T23 (Type J) outputs at most 3.7 kW* is shown if with socket:sev1011_t23:output=3.7 kW @@ -1283,7 +1362,8 @@ This tagrendering has labels ### plugs-amount-socket:as3112 The question is `How much plugs of type AS3112 (Type I) are available here?` -*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set + +*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set. This tagrendering is only visible in the popup if the following condition is met: socket:as3112~.+ & socket:as3112!=0 This tagrendering has labels @@ -1292,7 +1372,8 @@ This tagrendering has labels ### voltage-socket:as3112 The question is `What voltage do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set + +*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set. - *AS3112 (Type I) outputs 230 volt* is shown if with socket:as3112:voltage=230 @@ -1303,7 +1384,8 @@ This tagrendering has labels ### current-socket:as3112 The question is `What current do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set. - *AS3112 (Type I) outputs at most 10 A* is shown if with socket:as3112:current=10 @@ -1314,7 +1396,8 @@ This tagrendering has labels ### power-output-socket:as3112 The question is `What power output does a single plug of type AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set. - *AS3112 (Type I) outputs at most 2.3 kW* is shown if with socket:as3112:output=2.3 kW @@ -1325,7 +1408,8 @@ This tagrendering has labels ### plugs-amount-socket:nema_5_20 The question is `How much plugs of type NEMA 5-20 (Type B) are available here?` -*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set + +*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema_5_20~.+ & socket:nema_5_20!=0 This tagrendering has labels @@ -1334,7 +1418,8 @@ This tagrendering has labels ### voltage-socket:nema_5_20 The question is `What voltage do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set + +*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set. - *NEMA 5-20 (Type B) outputs 120 volt* is shown if with socket:nema_5_20:voltage=120 @@ -1345,7 +1430,8 @@ This tagrendering has labels ### current-socket:nema_5_20 The question is `What current do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set. - *NEMA 5-20 (Type B) outputs at most 20 A* is shown if with socket:nema_5_20:current=20 @@ -1356,7 +1442,8 @@ This tagrendering has labels ### power-output-socket:nema_5_20 The question is `What power output does a single plug of type NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set. - *NEMA 5-20 (Type B) outputs at most 2.4 kW* is shown if with socket:nema_5_20:output=2.4 kW @@ -1367,7 +1454,8 @@ This tagrendering has labels ### OH The question is `When is this charging station opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -1385,7 +1473,8 @@ The question is `Does one have to pay to use this charging station?` ### charge The question is `How much does one have to pay to use this charging station?` -*Using this charging station costs {charge}* is shown if `charge` is set + +*Using this charging station costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -1405,7 +1494,8 @@ This tagrendering is only visible in the popup if the following condition is met ### app-name The question is `What is the name of the app used for payment?` -*Payment can be done using the app {payment:app}* is shown if `payment:app` is set + +*Payment can be done using the app {payment:app}* is shown if `payment:app` is set. This tagrendering is only visible in the popup if the following condition is met: payment:app~.+ & payment:app!=no @@ -1425,14 +1515,16 @@ The question is `What kind of authentication is available at the charging statio ### Auth phone The question is `What's the phone number for authentication call or SMS?` -*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set + +*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set. This tagrendering is only visible in the popup if the following condition is met: authentication:phone_call=yes | authentication:short_message=yes ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited @@ -1441,7 +1533,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Network The question is `Is this charging station part of a network?` -*Part of the network {network}* is shown if `network` is set + +*Part of the network {network}* is shown if `network` is set. - *Not part of a bigger network, e.g. because the charging station is maintained by a local business* is shown if with no:network=yes - *Not part of a bigger network* is shown if with network=none. _This option cannot be chosen as answer_ @@ -1455,28 +1548,33 @@ The question is `Is this charging station part of a network?` ### Operator The question is `Who is the operator of this charging station?` -*This charging station is operated by {operator}* is shown if `operator` is set + +*This charging station is operated by {operator}* is shown if `operator` is set. - *Actually, {operator} is the network* is shown if with network= ### phone The question is `What number can one call if there is a problem with this charging station?` -*In case of problems, call {phone}* is shown if `phone` is set + +*In case of problems, call {phone}* is shown if `phone` is set. ### email The question is `What is the email address of the operator?` -*In case of problems, send an email to {email}* is shown if `email` is set + +*In case of problems, send an email to {email}* is shown if `email` is set. ### website The question is `What is the website where one can find more information about this charging station?` -*More info on {website}* is shown if `website` is set + +*More info on {website}* is shown if `website` is set. ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -1486,7 +1584,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -1500,7 +1599,8 @@ This tagrendering has labels ### ref The question is `What is the reference number of this charging station?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. This tagrendering is only visible in the popup if the following condition is met: network~.+ @@ -1524,26 +1624,31 @@ The question is `Does one have to pay a parking fee while charging?` ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### questions-technical _This tagrendering has no question and is thus read-only_ + *

Technical questions

The questions below are very technical. Feel free to ignore them
{questions(technical)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/charging_station_ebikes.md b/Docs/Layers/charging_station_ebikes.md index 10c0fa4aa9..9863e112a5 100644 --- a/Docs/Layers/charging_station_ebikes.md +++ b/Docs/Layers/charging_station_ebikes.md @@ -374,6 +374,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Type @@ -389,7 +390,8 @@ The question is `Which vehicles are allowed to charge here?` ### access The question is `Who is allowed to use this charging station?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Anyone can use this charging station (payment might be needed)* is shown if with access=yes - *Anyone can use this charging station (payment might be needed)* is shown if with access=public. _This option cannot be chosen as answer_ @@ -401,7 +403,8 @@ The question is `Who is allowed to use this charging station?` ### capacity The question is `How much vehicles can be charged here at the same time?` -*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set + +*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set. ### Available_charging_stations (generated) @@ -453,7 +456,8 @@ The question is `Which charging connections are available here?` ### plugs-amount-socket:schuko The question is `How much plugs of type Schuko wall plug without ground pin (CEE7/4 type F) are available here?` -*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set + +*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set. This tagrendering is only visible in the popup if the following condition is met: socket:schuko~.+ & socket:schuko!=0 This tagrendering has labels @@ -462,7 +466,8 @@ This tagrendering has labels ### voltage-socket:schuko The question is `What voltage do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt* is shown if with socket:schuko:voltage=230 @@ -473,7 +478,8 @@ This tagrendering has labels ### current-socket:schuko The question is `What current do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A* is shown if with socket:schuko:current=16 @@ -484,7 +490,8 @@ This tagrendering has labels ### power-output-socket:schuko The question is `What power output does a single plug of type Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kW* is shown if with socket:schuko:output=3.6 kW @@ -495,7 +502,8 @@ This tagrendering has labels ### plugs-amount-socket:typee The question is `How much plugs of type European wall plug with ground pin (CEE7/4 type E) are available here?` -*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set + +*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set. This tagrendering is only visible in the popup if the following condition is met: socket:typee~.+ & socket:typee!=0 This tagrendering has labels @@ -504,7 +512,8 @@ This tagrendering has labels ### voltage-socket:typee The question is `What voltage do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs 230 volt* is shown if with socket:typee:voltage=230 @@ -515,7 +524,8 @@ This tagrendering has labels ### current-socket:typee The question is `What current do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A* is shown if with socket:typee:current=16 @@ -526,7 +536,8 @@ This tagrendering has labels ### power-output-socket:typee The question is `What power output does a single plug of type European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kW* is shown if with socket:typee:output=3 kW - *European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kW* is shown if with socket:typee:output=22 kW @@ -538,7 +549,8 @@ This tagrendering has labels ### plugs-amount-socket:chademo The question is `How much plugs of type Chademo are available here?` -*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set + +*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:chademo~.+ & socket:chademo!=0 This tagrendering has labels @@ -547,7 +559,8 @@ This tagrendering has labels ### voltage-socket:chademo The question is `What voltage do the plugs with Chademo offer?` -*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set + +*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set. - *Chademo outputs 500 volt* is shown if with socket:chademo:voltage=500 @@ -558,7 +571,8 @@ This tagrendering has labels ### current-socket:chademo The question is `What current do the plugs with Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set + +*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set. - *Chademo outputs at most 120 A* is shown if with socket:chademo:current=120 @@ -569,7 +583,8 @@ This tagrendering has labels ### power-output-socket:chademo The question is `What power output does a single plug of type Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set + +*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set. - *Chademo outputs at most 50 kW* is shown if with socket:chademo:output=50 kW @@ -580,7 +595,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_cable The question is `How much plugs of type Type 1 with cable (J1772) are available here?` -*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set + +*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_cable~.+ & socket:type1_cable!=0 This tagrendering has labels @@ -589,7 +605,8 @@ This tagrendering has labels ### voltage-socket:type1_cable The question is `What voltage do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set + +*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set. - *Type 1 with cable (J1772) outputs 200 volt* is shown if with socket:type1_cable:voltage=200 - *Type 1 with cable (J1772) outputs 240 volt* is shown if with socket:type1_cable:voltage=240 @@ -601,7 +618,8 @@ This tagrendering has labels ### current-socket:type1_cable The question is `What current do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set. - *Type 1 with cable (J1772) outputs at most 32 A* is shown if with socket:type1_cable:current=32 @@ -612,7 +630,8 @@ This tagrendering has labels ### power-output-socket:type1_cable The question is `What power output does a single plug of type Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set. - *Type 1 with cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1_cable:output=3.7 kW - *Type 1 with cable (J1772) outputs at most 7 kW* is shown if with socket:type1_cable:output=7 kW @@ -624,7 +643,8 @@ This tagrendering has labels ### plugs-amount-socket:type1 The question is `How much plugs of type Type 1 without cable (J1772) are available here?` -*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set + +*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1~.+ & socket:type1!=0 This tagrendering has labels @@ -633,7 +653,8 @@ This tagrendering has labels ### voltage-socket:type1 The question is `What voltage do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set + +*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set. - *Type 1 without cable (J1772) outputs 200 volt* is shown if with socket:type1:voltage=200 - *Type 1 without cable (J1772) outputs 240 volt* is shown if with socket:type1:voltage=240 @@ -645,7 +666,8 @@ This tagrendering has labels ### current-socket:type1 The question is `What current do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set. - *Type 1 without cable (J1772) outputs at most 32 A* is shown if with socket:type1:current=32 @@ -656,7 +678,8 @@ This tagrendering has labels ### power-output-socket:type1 The question is `What power output does a single plug of type Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set. - *Type 1 without cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1:output=3.7 kW - *Type 1 without cable (J1772) outputs at most 6.6 kW* is shown if with socket:type1:output=6.6 kW @@ -670,7 +693,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_combo The question is `How much plugs of type Type 1 CCS (aka Type 1 Combo) are available here?` -*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set + +*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_combo~.+ & socket:type1_combo!=0 This tagrendering has labels @@ -679,7 +703,8 @@ This tagrendering has labels ### voltage-socket:type1_combo The question is `What voltage do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set + +*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set. - *Type 1 CCS (aka Type 1 Combo) outputs 400 volt* is shown if with socket:type1_combo:voltage=400 - *Type 1 CCS (aka Type 1 Combo) outputs 1000 volt* is shown if with socket:type1_combo:voltage=1000 @@ -691,7 +716,8 @@ This tagrendering has labels ### current-socket:type1_combo The question is `What current do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 A* is shown if with socket:type1_combo:current=50 - *Type 1 CCS (aka Type 1 Combo) outputs at most 125 A* is shown if with socket:type1_combo:current=125 @@ -703,7 +729,8 @@ This tagrendering has labels ### power-output-socket:type1_combo The question is `What power output does a single plug of type Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 kW* is shown if with socket:type1_combo:output=50 kW - *Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kW* is shown if with socket:type1_combo:output=62.5 kW @@ -717,7 +744,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger The question is `How much plugs of type Tesla Supercharger are available here?` -*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set + +*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger~.+ & socket:tesla_supercharger!=0 This tagrendering has labels @@ -726,7 +754,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger The question is `What voltage do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set + +*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set. - *Tesla Supercharger outputs 480 volt* is shown if with socket:tesla_supercharger:voltage=480 @@ -737,7 +766,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger The question is `What current do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set. - *Tesla Supercharger outputs at most 125 A* is shown if with socket:tesla_supercharger:current=125 - *Tesla Supercharger outputs at most 350 A* is shown if with socket:tesla_supercharger:current=350 @@ -749,7 +779,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger The question is `What power output does a single plug of type Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set. - *Tesla Supercharger outputs at most 120 kW* is shown if with socket:tesla_supercharger:output=120 kW - *Tesla Supercharger outputs at most 150 kW* is shown if with socket:tesla_supercharger:output=150 kW @@ -762,7 +793,8 @@ This tagrendering has labels ### plugs-amount-socket:type2 The question is `How much plugs of type Type 2 (mennekes) are available here?` -*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set + +*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2~.+ & socket:type2!=0 This tagrendering has labels @@ -771,7 +803,8 @@ This tagrendering has labels ### voltage-socket:type2 The question is `What voltage do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set + +*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set. - *Type 2 (mennekes) outputs 230 volt* is shown if with socket:type2:voltage=230 - *Type 2 (mennekes) outputs 400 volt* is shown if with socket:type2:voltage=400 @@ -783,7 +816,8 @@ This tagrendering has labels ### current-socket:type2 The question is `What current do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set. - *Type 2 (mennekes) outputs at most 16 A* is shown if with socket:type2:current=16 - *Type 2 (mennekes) outputs at most 32 A* is shown if with socket:type2:current=32 @@ -795,7 +829,8 @@ This tagrendering has labels ### power-output-socket:type2 The question is `What power output does a single plug of type Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set. - *Type 2 (mennekes) outputs at most 11 kW* is shown if with socket:type2:output=11 kW - *Type 2 (mennekes) outputs at most 22 kW* is shown if with socket:type2:output=22 kW @@ -807,7 +842,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_combo The question is `How much plugs of type Type 2 CCS (mennekes) are available here?` -*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set + +*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_combo~.+ & socket:type2_combo!=0 This tagrendering has labels @@ -816,7 +852,8 @@ This tagrendering has labels ### voltage-socket:type2_combo The question is `What voltage do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set + +*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set. - *Type 2 CCS (mennekes) outputs 500 volt* is shown if with socket:type2_combo:voltage=500 - *Type 2 CCS (mennekes) outputs 920 volt* is shown if with socket:type2_combo:voltage=920 @@ -828,7 +865,8 @@ This tagrendering has labels ### current-socket:type2_combo The question is `What current do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set. - *Type 2 CCS (mennekes) outputs at most 125 A* is shown if with socket:type2_combo:current=125 - *Type 2 CCS (mennekes) outputs at most 350 A* is shown if with socket:type2_combo:current=350 @@ -840,7 +878,8 @@ This tagrendering has labels ### power-output-socket:type2_combo The question is `What power output does a single plug of type Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set. - *Type 2 CCS (mennekes) outputs at most 50 kW* is shown if with socket:type2_combo:output=50 kW @@ -851,7 +890,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_cable The question is `How much plugs of type Type 2 with cable (mennekes) are available here?` -*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set + +*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_cable~.+ & socket:type2_cable!=0 This tagrendering has labels @@ -860,7 +900,8 @@ This tagrendering has labels ### voltage-socket:type2_cable The question is `What voltage do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set + +*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set. - *Type 2 with cable (mennekes) outputs 230 volt* is shown if with socket:type2_cable:voltage=230 - *Type 2 with cable (mennekes) outputs 400 volt* is shown if with socket:type2_cable:voltage=400 @@ -872,7 +913,8 @@ This tagrendering has labels ### current-socket:type2_cable The question is `What current do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set. - *Type 2 with cable (mennekes) outputs at most 16 A* is shown if with socket:type2_cable:current=16 - *Type 2 with cable (mennekes) outputs at most 32 A* is shown if with socket:type2_cable:current=32 @@ -884,7 +926,8 @@ This tagrendering has labels ### power-output-socket:type2_cable The question is `What power output does a single plug of type Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set. - *Type 2 with cable (mennekes) outputs at most 11 kW* is shown if with socket:type2_cable:output=11 kW - *Type 2 with cable (mennekes) outputs at most 22 kW* is shown if with socket:type2_cable:output=22 kW @@ -896,7 +939,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger_ccs The question is `How much plugs of type Tesla Supercharger CCS (a branded type2_css) are available here?` -*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set + +*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger_ccs~.+ & socket:tesla_supercharger_ccs!=0 This tagrendering has labels @@ -905,7 +949,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger_ccs The question is `What voltage do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs 500 volt* is shown if with socket:tesla_supercharger_ccs:voltage=500 - *Tesla Supercharger CCS (a branded type2_css) outputs 920 volt* is shown if with socket:tesla_supercharger_ccs:voltage=920 @@ -917,7 +962,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger_ccs The question is `What current do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A* is shown if with socket:tesla_supercharger_ccs:current=125 - *Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A* is shown if with socket:tesla_supercharger_ccs:current=350 @@ -929,7 +975,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger_ccs The question is `What power output does a single plug of type Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kW* is shown if with socket:tesla_supercharger_ccs:output=50 kW @@ -940,7 +987,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination_us The question is `How much plugs of type Tesla Supercharger (destination) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -949,7 +997,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination_us The question is `What voltage do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla Supercharger (destination) outputs 480 volt* is shown if with socket:tesla_destination:voltage=480 @@ -960,7 +1009,8 @@ This tagrendering has labels ### current-socket:tesla_destination_us The question is `What current do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla Supercharger (destination) outputs at most 125 A* is shown if with socket:tesla_destination:current=125 - *Tesla Supercharger (destination) outputs at most 350 A* is shown if with socket:tesla_destination:current=350 @@ -972,7 +1022,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination_us The question is `What power output does a single plug of type Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla Supercharger (destination) outputs at most 120 kW* is shown if with socket:tesla_destination:output=120 kW - *Tesla Supercharger (destination) outputs at most 150 kW* is shown if with socket:tesla_destination:output=150 kW @@ -985,7 +1036,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination The question is `How much plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -994,7 +1046,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination The question is `What voltage do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt* is shown if with socket:tesla_destination:voltage=230 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt* is shown if with socket:tesla_destination:voltage=400 @@ -1006,7 +1059,8 @@ This tagrendering has labels ### current-socket:tesla_destination The question is `What current do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A* is shown if with socket:tesla_destination:current=16 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A* is shown if with socket:tesla_destination:current=32 @@ -1018,7 +1072,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination The question is `What power output does a single plug of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kW* is shown if with socket:tesla_destination:output=11 kW - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kW* is shown if with socket:tesla_destination:output=22 kW @@ -1030,7 +1085,8 @@ This tagrendering has labels ### plugs-amount-socket:USB-A The question is `How much plugs of type USB to charge phones and small electronics are available here?` -*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set + +*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set. This tagrendering is only visible in the popup if the following condition is met: socket:USB-A~.+ & socket:USB-A!=0 This tagrendering has labels @@ -1039,7 +1095,8 @@ This tagrendering has labels ### voltage-socket:USB-A The question is `What voltage do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set + +*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set. - *USB to charge phones and small electronics outputs 5 volt* is shown if with socket:USB-A:voltage=5 @@ -1050,7 +1107,8 @@ This tagrendering has labels ### current-socket:USB-A The question is `What current do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set. - *USB to charge phones and small electronics outputs at most 1 A* is shown if with socket:USB-A:current=1 - *USB to charge phones and small electronics outputs at most 2 A* is shown if with socket:USB-A:current=2 @@ -1062,7 +1120,8 @@ This tagrendering has labels ### power-output-socket:USB-A The question is `What power output does a single plug of type USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set. - *USB to charge phones and small electronics outputs at most 5W* is shown if with socket:USB-A:output=5W - *USB to charge phones and small electronics outputs at most 10W* is shown if with socket:USB-A:output=10W @@ -1074,7 +1133,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_3pin The question is `How much plugs of type Bosch Active Connect with 3 pins and cable are available here?` -*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set + +*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1083,7 +1143,8 @@ This tagrendering has labels ### voltage-socket:bosch_3pin The question is `What voltage do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set + +*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1092,7 +1153,8 @@ This tagrendering has labels ### current-socket:bosch_3pin The question is `What current do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1101,7 +1163,8 @@ This tagrendering has labels ### power-output-socket:bosch_3pin The question is `What power output does a single plug of type Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1110,7 +1173,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_5pin The question is `How much plugs of type Bosch Active Connect with 5 pins and cable are available here?` -*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set + +*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1119,7 +1183,8 @@ This tagrendering has labels ### voltage-socket:bosch_5pin The question is `What voltage do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set + +*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1128,7 +1193,8 @@ This tagrendering has labels ### current-socket:bosch_5pin The question is `What current do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1137,7 +1203,8 @@ This tagrendering has labels ### power-output-socket:bosch_5pin The question is `What power output does a single plug of type Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1146,7 +1213,8 @@ This tagrendering has labels ### plugs-amount-socket:bs1363 The question is `How much plugs of type BS1363 (Type G) are available here?` -*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set + +*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bs1363~.+ & socket:bs1363!=0 This tagrendering has labels @@ -1155,7 +1223,8 @@ This tagrendering has labels ### voltage-socket:bs1363 The question is `What voltage do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set + +*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set. - *BS1363 (Type G) outputs 230 volt* is shown if with socket:bs1363:voltage=230 @@ -1166,7 +1235,8 @@ This tagrendering has labels ### current-socket:bs1363 The question is `What current do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set. - *BS1363 (Type G) outputs at most 13 A* is shown if with socket:bs1363:current=13 @@ -1177,7 +1247,8 @@ This tagrendering has labels ### power-output-socket:bs1363 The question is `What power output does a single plug of type BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set. - *BS1363 (Type G) outputs at most 3kW* is shown if with socket:bs1363:output=3kW @@ -1188,7 +1259,8 @@ This tagrendering has labels ### plugs-amount-socket:nema5_15 The question is `How much plugs of type NEMA 5-15 (Type B) are available here?` -*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set + +*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema5_15~.+ & socket:nema5_15!=0 This tagrendering has labels @@ -1197,7 +1269,8 @@ This tagrendering has labels ### voltage-socket:nema5_15 The question is `What voltage do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set + +*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set. - *NEMA 5-15 (Type B) outputs 120 volt* is shown if with socket:nema5_15:voltage=120 @@ -1208,7 +1281,8 @@ This tagrendering has labels ### current-socket:nema5_15 The question is `What current do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set. - *NEMA 5-15 (Type B) outputs at most 15 A* is shown if with socket:nema5_15:current=15 @@ -1219,7 +1293,8 @@ This tagrendering has labels ### power-output-socket:nema5_15 The question is `What power output does a single plug of type NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set. - *NEMA 5-15 (Type B) outputs at most 1.8 kW* is shown if with socket:nema5_15:output=1.8 kW @@ -1230,7 +1305,8 @@ This tagrendering has labels ### plugs-amount-socket:sev1011_t23 The question is `How much plugs of type SEV 1011 T23 (Type J) are available here?` -*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set + +*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set. This tagrendering is only visible in the popup if the following condition is met: socket:sev1011_t23~.+ & socket:sev1011_t23!=0 This tagrendering has labels @@ -1239,7 +1315,8 @@ This tagrendering has labels ### voltage-socket:sev1011_t23 The question is `What voltage do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set + +*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set. - *SEV 1011 T23 (Type J) outputs 230 volt* is shown if with socket:sev1011_t23:voltage=230 @@ -1250,7 +1327,8 @@ This tagrendering has labels ### current-socket:sev1011_t23 The question is `What current do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set. - *SEV 1011 T23 (Type J) outputs at most 16 A* is shown if with socket:sev1011_t23:current=16 @@ -1261,7 +1339,8 @@ This tagrendering has labels ### power-output-socket:sev1011_t23 The question is `What power output does a single plug of type SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set. - *SEV 1011 T23 (Type J) outputs at most 3.7 kW* is shown if with socket:sev1011_t23:output=3.7 kW @@ -1272,7 +1351,8 @@ This tagrendering has labels ### plugs-amount-socket:as3112 The question is `How much plugs of type AS3112 (Type I) are available here?` -*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set + +*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set. This tagrendering is only visible in the popup if the following condition is met: socket:as3112~.+ & socket:as3112!=0 This tagrendering has labels @@ -1281,7 +1361,8 @@ This tagrendering has labels ### voltage-socket:as3112 The question is `What voltage do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set + +*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set. - *AS3112 (Type I) outputs 230 volt* is shown if with socket:as3112:voltage=230 @@ -1292,7 +1373,8 @@ This tagrendering has labels ### current-socket:as3112 The question is `What current do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set. - *AS3112 (Type I) outputs at most 10 A* is shown if with socket:as3112:current=10 @@ -1303,7 +1385,8 @@ This tagrendering has labels ### power-output-socket:as3112 The question is `What power output does a single plug of type AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set. - *AS3112 (Type I) outputs at most 2.3 kW* is shown if with socket:as3112:output=2.3 kW @@ -1314,7 +1397,8 @@ This tagrendering has labels ### plugs-amount-socket:nema_5_20 The question is `How much plugs of type NEMA 5-20 (Type B) are available here?` -*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set + +*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema_5_20~.+ & socket:nema_5_20!=0 This tagrendering has labels @@ -1323,7 +1407,8 @@ This tagrendering has labels ### voltage-socket:nema_5_20 The question is `What voltage do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set + +*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set. - *NEMA 5-20 (Type B) outputs 120 volt* is shown if with socket:nema_5_20:voltage=120 @@ -1334,7 +1419,8 @@ This tagrendering has labels ### current-socket:nema_5_20 The question is `What current do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set. - *NEMA 5-20 (Type B) outputs at most 20 A* is shown if with socket:nema_5_20:current=20 @@ -1345,7 +1431,8 @@ This tagrendering has labels ### power-output-socket:nema_5_20 The question is `What power output does a single plug of type NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set. - *NEMA 5-20 (Type B) outputs at most 2.4 kW* is shown if with socket:nema_5_20:output=2.4 kW @@ -1356,7 +1443,8 @@ This tagrendering has labels ### OH The question is `When is this charging station opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -1374,7 +1462,8 @@ The question is `Does one have to pay to use this charging station?` ### charge The question is `How much does one have to pay to use this charging station?` -*Using this charging station costs {charge}* is shown if `charge` is set + +*Using this charging station costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -1394,7 +1483,8 @@ This tagrendering is only visible in the popup if the following condition is met ### app-name The question is `What is the name of the app used for payment?` -*Payment can be done using the app {payment:app}* is shown if `payment:app` is set + +*Payment can be done using the app {payment:app}* is shown if `payment:app` is set. This tagrendering is only visible in the popup if the following condition is met: payment:app~.+ & payment:app!=no @@ -1414,14 +1504,16 @@ The question is `What kind of authentication is available at the charging statio ### Auth phone The question is `What's the phone number for authentication call or SMS?` -*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set + +*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set. This tagrendering is only visible in the popup if the following condition is met: authentication:phone_call=yes | authentication:short_message=yes ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited @@ -1430,7 +1522,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Network The question is `Is this charging station part of a network?` -*Part of the network {network}* is shown if `network` is set + +*Part of the network {network}* is shown if `network` is set. - *Not part of a bigger network, e.g. because the charging station is maintained by a local business* is shown if with no:network=yes - *Not part of a bigger network* is shown if with network=none. _This option cannot be chosen as answer_ @@ -1444,28 +1537,33 @@ The question is `Is this charging station part of a network?` ### Operator The question is `Who is the operator of this charging station?` -*This charging station is operated by {operator}* is shown if `operator` is set + +*This charging station is operated by {operator}* is shown if `operator` is set. - *Actually, {operator} is the network* is shown if with network= ### phone The question is `What number can one call if there is a problem with this charging station?` -*In case of problems, call {phone}* is shown if `phone` is set + +*In case of problems, call {phone}* is shown if `phone` is set. ### email The question is `What is the email address of the operator?` -*In case of problems, send an email to {email}* is shown if `email` is set + +*In case of problems, send an email to {email}* is shown if `email` is set. ### website The question is `What is the website where one can find more information about this charging station?` -*More info on {website}* is shown if `website` is set + +*More info on {website}* is shown if `website` is set. ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -1475,7 +1573,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -1489,7 +1588,8 @@ This tagrendering has labels ### ref The question is `What is the reference number of this charging station?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. This tagrendering is only visible in the popup if the following condition is met: network~.+ @@ -1513,26 +1613,31 @@ The question is `Does one have to pay a parking fee while charging?` ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### questions-technical _This tagrendering has no question and is thus read-only_ + *

Technical questions

The questions below are very technical. Feel free to ignore them
{questions(technical)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/childcare.md b/Docs/Layers/childcare.md index ca8ba3326f..4d08e99cd0 100644 --- a/Docs/Layers/childcare.md +++ b/Docs/Layers/childcare.md @@ -75,12 +75,14 @@ Elements must match the expression **{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -90,7 +92,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -101,7 +104,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -111,7 +115,8 @@ This tagrendering has labels ### opening_hours The question is `When is this childcare opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -120,11 +125,13 @@ This tagrendering is only visible in the popup if the following condition is met ### capacity The question is `How much kids (at most) can be enrolled here?` -*This facility has room for {capacity} kids* is shown if `capacity` is set + +*This facility has room for {capacity} kids* is shown if `capacity` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -134,16 +141,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cinema.md b/Docs/Layers/cinema.md index 67aeb5a3ae..a0c1db4e34 100644 --- a/Docs/Layers/cinema.md +++ b/Docs/Layers/cinema.md @@ -63,17 +63,20 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -83,7 +86,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -94,7 +98,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -104,7 +109,8 @@ This tagrendering has labels ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -119,6 +125,7 @@ The question is `What type of cinema is this?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -128,11 +135,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/climbing_area.md b/Docs/Layers/climbing_area.md index 58119a2223..a53ee79104 100644 --- a/Docs/Layers/climbing_area.md +++ b/Docs/Layers/climbing_area.md @@ -93,26 +93,31 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _contained_climbing_route_ids): height: 9rem; overflow: hidden; border-radius:3rem; }* ### Contained routes length hist _This tagrendering has no question and is thus read-only_ + *

Length overview

{histogram(_length_hist)}* ### Contained routes hist _This tagrendering has no question and is thus read-only_ + *

Grades overview

{histogram(_difficulty_hist)}* ### Contained_climbing_routes _This tagrendering has no question and is thus read-only_ + *

Contains {_contained_climbing_routes_count} routes

    {_contained_climbing_routes}
* This tagrendering is only visible in the popup if the following condition is met: _contained_climbing_routes~.+ @@ -120,7 +125,8 @@ This tagrendering is only visible in the popup if the following condition is met ### name The question is `What is the name of this climbing opportunity?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. - *This climbing opportunity doesn't have a name* is shown if with noname=yes & name= @@ -135,7 +141,8 @@ The question is `What kind of climbing opportunity is this?` ### Rock type (crag/rock/cliff only) The question is `What is the rock type here?` -*The rock type is {rock}* is shown if `rock` is set + +*The rock type is {rock}* is shown if `rock` is set. - *Limestone* is shown if with rock=limestone @@ -144,19 +151,22 @@ This tagrendering is only visible in the popup if the following condition is met ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### website The question is `Is there a (unofficial) website with more informations (e.g. topos)?` -*{url}* is shown if `url` is set + +*{url}* is shown if `url` is set. This tagrendering is only visible in the popup if the following condition is met: sport=climbing & club= & office= & leisure!~^(sports_centre)$ ### fee The question is `Is a fee required to climb here?` -*A fee of {charge} should be paid for climbing here* is shown if `charge` is set + +*A fee of {charge} should be paid for climbing here* is shown if `charge` is set. - *Climbing here is free of charge* is shown if with fee=no - *Paying a fee is required to climb here* is shown if with fee=yes & charge= @@ -173,6 +183,7 @@ The question is `Is bouldering possible here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -182,6 +193,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/climbing_club.md b/Docs/Layers/climbing_club.md index 95f75cfa7e..70e52e7ca8 100644 --- a/Docs/Layers/climbing_club.md +++ b/Docs/Layers/climbing_club.md @@ -74,12 +74,14 @@ Elements must match **any** of the following expressions: ### climbing_club-name The question is `What is the name of this climbing club or NGO?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -89,7 +91,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -100,7 +103,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -110,13 +114,15 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -126,11 +132,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/climbing_gym.md b/Docs/Layers/climbing_gym.md index f1c65f9d12..e90bcc9a65 100644 --- a/Docs/Layers/climbing_gym.md +++ b/Docs/Layers/climbing_gym.md @@ -135,17 +135,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### name The question is `What is the name of this climbing gym?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -155,7 +158,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -165,7 +169,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -176,7 +181,8 @@ This tagrendering has labels ### fee The question is `Is a fee required to climb here?` -*A fee of {charge} should be paid for climbing here* is shown if `charge` is set + +*A fee of {charge} should be paid for climbing here* is shown if `charge` is set. - *Climbing here is free of charge* is shown if with fee=no - *Paying a fee is required to climb here* is shown if with fee=yes & charge= @@ -192,13 +198,15 @@ The question is `Which methods of payment are accepted here?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### bouldering @@ -249,7 +257,8 @@ This tagrendering is only visible in the popup if the following condition is met ### auto_belay_toprope The question is `Are there auto belays for top roping here?` -*There are {climbing:autobelay:toprope} auto belay devices for top roping* is shown if `climbing:autobelay:toprope` is set + +*There are {climbing:autobelay:toprope} auto belay devices for top roping* is shown if `climbing:autobelay:toprope` is set. - *There are no auto belays for top roping* is shown if with climbing:autobelay:toprope=no - *There are a number of auto belays for top roping* is shown if with climbing:autobelay:toprope=yes @@ -261,7 +270,8 @@ This tagrendering is only visible in the popup if the following condition is met ### auto_belay_lead The question is `Are there auto belays for lead climbing here?` -*There are {climbing:autobelay:sport} auto belays for lead climbing* is shown if `climbing:autobelay:sport` is set + +*There are {climbing:autobelay:sport} auto belays for lead climbing* is shown if `climbing:autobelay:sport` is set. - *There are no auto belays for lead climbing* is shown if with climbing:autobelay:sport=no - *There is a number of auto belays for lead climbing* is shown if with climbing:autobelay:sport=yes @@ -293,24 +303,28 @@ The question is `Can one rent a climbing rope here to use in the gym?` ### average_length The question is `What is the (average) length of the routes in meters?` -*The routes are {canonical(climbing:length)} long on average* is shown if `climbing:length` is set + +*The routes are {canonical(climbing:length)} long on average* is shown if `climbing:length` is set. ### min_difficulty The question is `What is the grade of the easiest route here, according to the french classification system?` -*The lowest grade is {climbing:grade:french:min} according to the french/belgian system* is shown if `climbing:grade:french:min` is set + +*The lowest grade is {climbing:grade:french:min} according to the french/belgian system* is shown if `climbing:grade:french:min` is set. ### max_difficulty The question is `What is the highest grade route here, according to the french classification system?` -*The highest grade is {climbing:grade:french:max} according to the french/belgian system* is shown if `climbing:grade:french:max` is set + +*The highest grade is {climbing:grade:french:max} according to the french/belgian system* is shown if `climbing:grade:french:max` is set. This tagrendering is only visible in the popup if the following condition is met: club= & office= & (climbing:sport=yes | sport=climbing) & climbing!~^(route)$ ### max_bolts The question is `How many bolts do routes in {title()} have at most?` -*The sport climbing routes here have at most {climbing:bolts:max} bolts.
This is without belay stations and indicates how much quickdraws a climber needs.
* is shown if `climbing:bolts:max` is set + +*The sport climbing routes here have at most {climbing:bolts:max} bolts.
This is without belay stations and indicates how much quickdraws a climber needs.
* is shown if `climbing:bolts:max` is set. ### Speed climbing? @@ -360,7 +374,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -371,6 +386,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -380,11 +396,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/climbing_opportunity.md b/Docs/Layers/climbing_opportunity.md index fb968c7785..4e90ff2693 100644 --- a/Docs/Layers/climbing_opportunity.md +++ b/Docs/Layers/climbing_opportunity.md @@ -47,6 +47,7 @@ Elements must match **all** of the following expressions: ### climbing-opportunity-name _This tagrendering has no question and is thus read-only_ + *{name}* This tagrendering is only visible in the popup if the following condition is met: name~.+ @@ -62,6 +63,7 @@ The question is `Is climbing possible here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -71,6 +73,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/climbing_route.md b/Docs/Layers/climbing_route.md index 8de62d2a1e..15b3aadc17 100644 --- a/Docs/Layers/climbing_route.md +++ b/Docs/Layers/climbing_route.md @@ -74,45 +74,53 @@ Elements must match the expression **noname=yes & name= ### Length The question is `How long is this climbing route (in meters)?` -*This route is {canonical(climbing:length)} long* is shown if `climbing:length` is set + +*This route is {canonical(climbing:length)} long* is shown if `climbing:length` is set. ### Difficulty The question is `What is the grade of this climbing route according to the french/belgian system?` -*The grade is {climbing:grade:french} according to the french/belgian system* is shown if `climbing:grade:french` is set + +*The grade is {climbing:grade:french} according to the french/belgian system* is shown if `climbing:grade:french` is set. ### bolts The question is `How many bolts does this route have before reaching the anchor?` -*This route has {climbing:bolts} bolts.
This is without belay stations and indicates how much quickdraws a climber needs.
* is shown if `climbing:bolts` is set + +*This route has {climbing:bolts} bolts.
This is without belay stations and indicates how much quickdraws a climber needs.
* is shown if `climbing:bolts` is set. - *This route is not bolted* is shown if with climbing:bolted=no ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### Rock type via embedded feature _This tagrendering has no question and is thus read-only_ -*The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag* is shown if `_embedding_features_with_rock:rock` is set + +*The rock type is {_embedding_features_with_rock:rock} as stated on the surrounding crag* is shown if `_embedding_features_with_rock:rock` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -122,11 +130,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/clock.md b/Docs/Layers/clock.md index de4a256ab6..d2d3939744 100644 --- a/Docs/Layers/clock.md +++ b/Docs/Layers/clock.md @@ -89,6 +89,7 @@ Elements must match the expression **faces=1 - *This clock has two faces* is shown if with faces=2 @@ -169,6 +171,7 @@ The question is `How many faces does this clock have?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -178,16 +181,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/crossings.md b/Docs/Layers/crossings.md index 70eafb8894..fb31e3590e 100644 --- a/Docs/Layers/crossings.md +++ b/Docs/Layers/crossings.md @@ -98,6 +98,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### signals @@ -113,7 +114,8 @@ This tagrendering is only visible in the popup if the following condition is met ### markings The question is `What kind of markings does this crossing have?` -*This crossing has {crossing:markings} markings* is shown if `crossing:markings` is set + +*This crossing has {crossing:markings} markings* is shown if `crossing:markings` is set. - *This crossing has no markings* is shown if with crossing:markings=no - *This crossing has zebra markings* is shown if with crossing:markings=zebra @@ -232,6 +234,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -241,11 +244,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/crossings_no_traffic_lights.md b/Docs/Layers/crossings_no_traffic_lights.md index 6fe4a3c085..ee51ff2cca 100644 --- a/Docs/Layers/crossings_no_traffic_lights.md +++ b/Docs/Layers/crossings_no_traffic_lights.md @@ -93,6 +93,7 @@ Elements must match the expression ** *This crossing has no markings* is shown if with crossing:markings=no - *This crossing has zebra markings* is shown if with crossing:markings=zebra @@ -227,6 +229,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -236,11 +239,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cultural_places_without_etymology.md b/Docs/Layers/cultural_places_without_etymology.md index 571df61d7f..48198e7bcd 100644 --- a/Docs/Layers/cultural_places_without_etymology.md +++ b/Docs/Layers/cultural_places_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cycle_highways.md b/Docs/Layers/cycle_highways.md index 3c315a81b0..6e952ca3c2 100644 --- a/Docs/Layers/cycle_highways.md +++ b/Docs/Layers/cycle_highways.md @@ -58,17 +58,20 @@ Elements must match the expression **state=proposed & note:state= - *This is a proposed route which has missing links (thus: some parts don't even have a building permit yet)* is shown if with state=proposed & note:state=has_highway_no @@ -79,12 +82,14 @@ The question is `What is the state of this link?` ### cycle-highway-length _This tagrendering has no question and is thus read-only_ + *This part is {_length:km}km long* ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -94,11 +99,13 @@ This tagrendering has labels ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -108,6 +115,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cyclestreets.md b/Docs/Layers/cyclestreets.md index 930b3ce703..faf183e3c6 100644 --- a/Docs/Layers/cyclestreets.md +++ b/Docs/Layers/cyclestreets.md @@ -58,6 +58,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### is_cyclestreet @@ -87,13 +88,15 @@ This tagrendering is only visible in the popup if the following condition is met ### future_cyclestreet The question is `When will this street become a cyclestreet?` -*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set + +*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set. This tagrendering is only visible in the popup if the following condition is met: proposed:cyclestreet=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -103,11 +106,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cycleways_and_roads.md b/Docs/Layers/cycleways_and_roads.md index 820d2e57cd..c4d247e1bc 100644 --- a/Docs/Layers/cycleways_and_roads.md +++ b/Docs/Layers/cycleways_and_roads.md @@ -127,6 +127,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Cycleway type for a road @@ -176,7 +177,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Maxspeed (for road) The question is `What is the maximum speed in this street?` -*The maximum speed on this road is {maxspeed} km/h* is shown if `maxspeed` is set + +*The maximum speed on this road is {maxspeed} km/h* is shown if `maxspeed` is set. - *The maximum speed is 20 km/h* is shown if with maxspeed=20 - *The maximum speed is 30 km/h* is shown if with maxspeed=30 @@ -187,7 +189,8 @@ The question is `What is the maximum speed in this street?` ### Cycleway:surface The question is `What is the surface of the cycleway made from?` -*This cyleway is made of {cycleway:surface}* is shown if `cycleway:surface` is set + +*This cyleway is made of {cycleway:surface}* is shown if `cycleway:surface` is set. - *This cycleway is unpaved* is shown if with cycleway:surface=unpaved. _This option cannot be chosen as answer_ - *This cycleway is paved* is shown if with cycleway:surface=paved. _This option cannot be chosen as answer_ @@ -208,7 +211,8 @@ This tagrendering is only visible in the popup if the following condition is met ### incline The question is `Does {title()} have an incline?` -*This road has an slope of {incline}* is shown if `incline` is set + +*This road has an slope of {incline}* is shown if `incline` is set. - *There is (probably) no incline here* is shown if with incline=. _This option cannot be chosen as answer_ - *This road has a slope* is shown if with incline=up | incline=down | incline=yes. _This option cannot be chosen as answer_ @@ -231,7 +235,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Surface of the road The question is `What is the surface of the street made from?` -*This road is made of {surface}* is shown if `surface` is set + +*This road is made of {surface}* is shown if `surface` is set. - *This cycleway is unhardened* is shown if with surface=unpaved. _This option cannot be chosen as answer_ - *This cycleway is paved* is shown if with surface=paved. _This option cannot be chosen as answer_ @@ -265,7 +270,8 @@ This tagrendering is only visible in the popup if the following condition is met ### width The question is `What is the carriage width of this road (in meters)?` -*The carriage width of this road is {width}m* is shown if `width` is set + +*The carriage width of this road is {width}m* is shown if `width` is set. ### cycleway-lane-track-traffic-signs @@ -311,7 +317,8 @@ This tagrendering is only visible in the popup if the following condition is met ### cycleways_and_roads-cycleway:buffer The question is `How wide is the gap between the cycleway and the road?` -*The buffer besides this cycleway is {cycleway:buffer} m* is shown if `cycleway:buffer` is set + +*The buffer besides this cycleway is {cycleway:buffer} m* is shown if `cycleway:buffer` is set. This tagrendering is only visible in the popup if the following condition is met: cycleway=track | cycleway=lane @@ -340,6 +347,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -349,11 +357,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/cyclist_waiting_aid.md b/Docs/Layers/cyclist_waiting_aid.md index d207a26cbe..9999ad5776 100644 --- a/Docs/Layers/cyclist_waiting_aid.md +++ b/Docs/Layers/cyclist_waiting_aid.md @@ -63,6 +63,7 @@ Elements must match the expression **direction=forward @@ -93,6 +95,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -102,11 +105,13 @@ This tagrendering has labels ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/defibrillator.md b/Docs/Layers/defibrillator.md index 179ef58f80..fefbdb66a8 100644 --- a/Docs/Layers/defibrillator.md +++ b/Docs/Layers/defibrillator.md @@ -104,6 +104,7 @@ Elements must match the expression **access=yes - *Publicly accessible* is shown if with access=public. _This option cannot be chosen as answer_ @@ -127,7 +129,8 @@ The question is `Is this defibrillator freely accessible?` ### defibrillator-level The question is `On which floor is this defibrillator located?` -*This defibrillator is on floor {level}* is shown if `level` is set + +*This defibrillator is on floor {level}* is shown if `level` is set. - *This defibrillator is on the ground floor* is shown if with level=0 - *This defibrillator is on the first floor* is shown if with level=1 @@ -137,17 +140,20 @@ This tagrendering is only visible in the popup if the following condition is met ### defibrillator-defibrillator:location The question is `Please give some explanation on where the defibrillator can be found (in the local language)` -*Extra information about the location (in the local language):
{defibrillator:location}* is shown if `defibrillator:location` is set + +*Extra information about the location (in the local language):
{defibrillator:location}* is shown if `defibrillator:location` is set. ### defibrillator-defibrillator:location:en The question is `Please give some explanation on where the defibrillator can be found (in English)` -*Extra information about the location (in English):
{defibrillator:location:en}* is shown if `defibrillator:location:en` is set + +*Extra information about the location (in English):
{defibrillator:location:en}* is shown if `defibrillator:location:en` is set. ### defibrillator-defibrillator:location:fr The question is `Please give some explanation on where the defibrillator can be found (in French)` -*Extra information about the location (in French):
{defibrillator:location:fr}* is shown if `defibrillator:location:fr` is set + +*Extra information about the location (in French):
{defibrillator:location:fr}* is shown if `defibrillator:location:fr` is set. This tagrendering is only visible in the popup if the following condition is met: _country=be | defibrillator:location:fr~.+ @@ -163,22 +169,26 @@ The question is `Is this place accessible with a wheelchair?` ### defibrillator-ref The question is `What is the official identification number of the device? (if visible on device)` -*Official identification number of the device: {ref}* is shown if `ref` is set + +*Official identification number of the device: {ref}* is shown if `ref` is set. ### defibrillator-email The question is `What is the email for questions about this defibrillator?` -*Email for questions about this defibrillator: {email}* is shown if `email` is set + +*Email for questions about this defibrillator: {email}* is shown if `email` is set. ### defibrillator-phone The question is `What is the phone number for questions about this defibrillator?` -*Telephone for questions about this defibrillator: {phone}* is shown if `phone` is set + +*Telephone for questions about this defibrillator: {phone}* is shown if `phone` is set. ### opening_hours_24_7 The question is `At what times is this defibrillator available?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -187,23 +197,27 @@ The question is `At what times is this defibrillator available?` ### defibrillator-description The question is `Is there any useful information for users that you haven't been able to describe above? (leave blank if no)` -*Additional information: {description}* is shown if `description` is set + +*Additional information: {description}* is shown if `description` is set. ### defibrillator-survey:date The question is `When was this defibrillator last surveyed?` -*This defibrillator was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This defibrillator was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Checked today!* is shown if with survey:date= ### defibrillator-fixme The question is `Is there something wrong with how this is mapped, that you weren't able to fix here? (leave a note to OpenStreetMap experts)` -*Extra information for OpenStreetMap experts: {fixme}* is shown if `fixme` is set + +*Extra information for OpenStreetMap experts: {fixme}* is shown if `fixme` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -213,16 +227,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/dentist.md b/Docs/Layers/dentist.md index 719435626c..70c4c8106a 100644 --- a/Docs/Layers/dentist.md +++ b/Docs/Layers/dentist.md @@ -88,19 +88,22 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -110,7 +113,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -121,7 +125,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -131,6 +136,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -139,6 +145,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -150,7 +157,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -161,7 +169,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -170,7 +179,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -181,11 +191,13 @@ This tagrendering has labels ### name The question is `What is the name of this dentist?` -*This dentist is called {name}* is shown if `name` is set + +*This dentist is called {name}* is shown if `name` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -195,16 +207,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/direction.md b/Docs/Layers/direction.md index 0ec72f3605..d676a10b8d 100644 --- a/Docs/Layers/direction.md +++ b/Docs/Layers/direction.md @@ -38,6 +38,7 @@ Elements must match **any** of the following expressions: ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -47,6 +48,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/disaster_response.md b/Docs/Layers/disaster_response.md index 3d5f572403..b4d16ad87f 100644 --- a/Docs/Layers/disaster_response.md +++ b/Docs/Layers/disaster_response.md @@ -60,12 +60,14 @@ Elements must match the expression **{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -75,11 +77,13 @@ This tagrendering has labels ### disaster_response_name The question is `What is the name of this organization?` -*This organization is named {name}* is shown if `name` is set + +*This organization is named {name}* is shown if `name` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -89,11 +93,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/doctors.md b/Docs/Layers/doctors.md index 1f205ec685..09412e0fa5 100644 --- a/Docs/Layers/doctors.md +++ b/Docs/Layers/doctors.md @@ -93,17 +93,20 @@ Elements must match the expression **opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -112,7 +115,8 @@ The question is `What are the opening hours of {title()}?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -122,7 +126,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -133,7 +138,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -143,6 +149,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -151,6 +158,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -162,7 +170,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -173,7 +182,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -182,7 +192,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -193,7 +204,8 @@ This tagrendering has labels ### specialty The question is `What is this doctor specialized in?` -*This doctor is specialized in {healthcare:speciality}* is shown if `healthcare:speciality` is set + +*This doctor is specialized in {healthcare:speciality}* is shown if `healthcare:speciality` is set. - *This is a general practitioner* is shown if with healthcare:speciality=general - *This is a gynaecologist* is shown if with healthcare:speciality=gynaecology @@ -203,6 +215,7 @@ The question is `What is this doctor specialized in?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -212,16 +225,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/dog_toilet.md b/Docs/Layers/dog_toilet.md index 7ac83c2952..15e29ff080 100644 --- a/Docs/Layers/dog_toilet.md +++ b/Docs/Layers/dog_toilet.md @@ -51,6 +51,7 @@ Elements must match the expression ** *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -102,7 +106,8 @@ The question is `What are the opening hours of {title()}?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -126,11 +131,13 @@ The question is `Does this dog park have a separate fenced in area for small dog ### dogarea _This tagrendering has no question and is thus read-only_ + *This dogpark is {_surface:ha} ha big* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -140,11 +147,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/drinking_water.md b/Docs/Layers/drinking_water.md index d5de68a890..8049a30f9b 100644 --- a/Docs/Layers/drinking_water.md +++ b/Docs/Layers/drinking_water.md @@ -109,12 +109,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Still in use? The question is `Is this drinking water spot still operational?` -*The operational status is {operational_status}* is shown if `operational_status` is set + +*The operational status is {operational_status}* is shown if `operational_status` is set. - *This drinking water works* is shown if with operational_status= & disused:amenity= - *This drinking water is broken* is shown if with operational_status=broken @@ -165,7 +167,8 @@ The question is `Is this drinking water point available all year round?` ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *This drinking water fountain is closed this season. As such, the opening hours are not shown.* is shown if with seasonal!=no & seasonal~.+ & ((seasonal!~^(.*winter.*)$ & _now:date~^(....-(12|01|02)-..)$) | (seasonal!~^(.*spring.*)$ & _now:date~^(....-(03|04|05)-..)$) | (seasonal!~^(.*summer.*)$ & _now:date~^(....-(06|07|08)-..)$) | (seasonal!~^(.*autumn.*)$ & _now:date~^(....-(09|10|11)-..)$)). _This option cannot be chosen as answer_ - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 @@ -182,7 +185,8 @@ The question is `Does this drinking water fountain have an artistic element?` ### artwork-artwork_type The question is `What is the type of this artwork?` -*This is a {artwork_type}* is shown if `artwork_type` is set + +*This is a {artwork_type}* is shown if `artwork_type` is set. - *Architecture* is shown if with artwork_type=architecture - *Mural* is shown if with artwork_type=mural @@ -206,7 +210,8 @@ This tagrendering has labels ### artwork-artist-wikidata The question is `Who made this artwork?` -*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set + +*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -215,7 +220,8 @@ This tagrendering has labels ### artwork-artist_name The question is `Which artist created this?` -*Created by {artist_name}* is shown if `artist_name` is set + +*Created by {artist_name}* is shown if `artist_name` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -224,7 +230,8 @@ This tagrendering has labels ### artwork-website The question is `Is there a website with more information about this artwork?` -*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -233,7 +240,8 @@ This tagrendering has labels ### artwork_subject The question is `What does this artwork depict?` -*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: tourism=artwork This tagrendering has labels @@ -242,6 +250,7 @@ This tagrendering has labels ### render-closest-drinking-water _This tagrendering has no question and is thus read-only_ + *There is another drinking water fountain at {_closest_other_drinking_water_distance} meters* This tagrendering is only visible in the popup if the following condition is met: _closest_other_drinking_water_id~.+ @@ -249,6 +258,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -258,16 +268,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/dumpstations.md b/Docs/Layers/dumpstations.md index bcfcb95405..66783f57de 100644 --- a/Docs/Layers/dumpstations.md +++ b/Docs/Layers/dumpstations.md @@ -78,6 +78,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### dumpstations-fee @@ -90,7 +91,8 @@ The question is `Does this place charge a fee?` ### dumpstations-charge The question is `How much does this place charge?` -*This place charges {charge}* is shown if `charge` is set + +*This place charges {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -127,11 +129,13 @@ The question is `Who can use this dump station?` ### dumpstations-network The question is `What network is this place a part of? (skip if none)` -*This station is part of network {network}* is shown if `network` is set + +*This station is part of network {network}* is shown if `network` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -141,11 +145,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/education_institutions_without_etymology.md b/Docs/Layers/education_institutions_without_etymology.md index 9dcd306ac8..c816b898c6 100644 --- a/Docs/Layers/education_institutions_without_etymology.md +++ b/Docs/Layers/education_institutions_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/elevator.md b/Docs/Layers/elevator.md index 66901724eb..fbb696579f 100644 --- a/Docs/Layers/elevator.md +++ b/Docs/Layers/elevator.md @@ -22,11 +22,11 @@ This layer show elevators and asks for operational status and elevator dimension - [elevator-depth](#elevator-depth) - [elevator-diameter](#elevator-diameter) - [handrail](#handrail) - - [induction-loop](#induction-loop) - [tactile_writing_available](#tactile_writing_available) - [tactile_writing_language](#tactile_writing_language) - [speech_output_available](#speech_output_available) - [speech_output](#speech_output) + - [induction-loop](#induction-loop) - [leftover-questions](#leftover-questions) - [move-button](#move-button) - [lod](#lod) @@ -65,9 +65,9 @@ Elements must match the expression ** [length](https://wiki.openstreetmap.org/wiki/Key:length) | [pfloat](../SpecialInputElements.md#pfloat) | | | [diameter](https://wiki.openstreetmap.org/wiki/Key:diameter) | [pfloat](../SpecialInputElements.md#pfloat) | | | [handrail](https://wiki.openstreetmap.org/wiki/Key:handrail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:handrail%3Dno) | -| [hearing_loop](https://wiki.openstreetmap.org/wiki/Key:hearing_loop) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dno) | | [tactile_writing:braille](https://wiki.openstreetmap.org/wiki/Key:tactile_writing:braille) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:tactile_writing:braille%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:tactile_writing:braille%3Dno) | | [speech_output](https://wiki.openstreetmap.org/wiki/Key:speech_output) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:speech_output%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:speech_output%3Dno) | +| [hearing_loop](https://wiki.openstreetmap.org/wiki/Key:hearing_loop) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:hearing_loop%3Dno) | ## Featureview elements and TagRenderings @@ -82,11 +82,11 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -119,7 +121,8 @@ The question is `Does this elevator work?` ### door-width The question is `What is the width of this elevator's entrance?` -*This elevator's doors have a width of {canonical(door:width)}* is shown if `door:width` is set + +*This elevator's doors have a width of {canonical(door:width)}* is shown if `door:width` is set. ### elevator-shape @@ -131,17 +134,20 @@ The question is `What shape does this elevator have?` ### elevator-width The question is `What is the width of this elevator?` -*This elevator has a width of {canonical(width)}* is shown if `width` is set + +*This elevator has a width of {canonical(width)}* is shown if `width` is set. ### elevator-depth The question is `What is the depth of this elevator?` -*This elevator has a depth of {canonical(length)}* is shown if `length` is set + +*This elevator has a depth of {canonical(length)}* is shown if `length` is set. ### elevator-diameter The question is `What is the diameter of this elevator?` -*This elevator has a diameter of {canonical(diameter)}* is shown if `diameter` is set + +*This elevator has a diameter of {canonical(diameter)}* is shown if `diameter` is set. This tagrendering is only visible in the popup if the following condition is met: shape=circular @@ -152,13 +158,6 @@ The question is `Is there a handrail in the cabin?` - *This elevator has a handrail in the cabin* is shown if with handrail=yes - *This elevator does not have a handrail* is shown if with handrail=no -### induction-loop -An accessibility feature: induction loops are for hard-hearing persons which have an FM-receiver. -The question is `Does this place have an audio induction loop for people with reduced hearing?` - - - *This place has an audio induction loop* is shown if with hearing_loop=yes - - *This place does not have an audio induction loop* is shown if with hearing_loop=no - ### tactile_writing_available The question is `Has this elevator tactile writing?` @@ -169,6 +168,7 @@ The question is `Has this elevator tactile writing?` ### tactile_writing_language _This tagrendering has no question and is thus read-only_ + *{language_chooser(tactile_writing:braille,In which languages does this elevator have tactile writing &LPARENSbraille&RPARENS?,This elevator has tactile writing in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This elevator has tactile writing in &LBRACElanguage&LPARENS&RPARENS&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: tactile_writing:braille=yes @@ -183,13 +183,24 @@ The question is `Has this elevator speech output?` ### speech_output _This tagrendering has no question and is thus read-only_ + *{language_chooser(speech_output,In which languages does this elevator have speech output?,This elevator has speech output in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This elevator has speech output in &LBRACElanguage&LPARENS&RPARENS&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: speech_output=yes +### induction-loop +An accessibility feature: induction loops are for hard-hearing persons which have an FM-receiver. +The question is `Does this place have an audio induction loop for people with reduced hearing?` + + - *This place has an audio induction loop* is shown if with hearing_loop=yes + - *This place does not have an audio induction loop* is shown if with hearing_loop=no + +This tagrendering is only visible in the popup if the following condition is met: speech_output=yes + ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -199,11 +210,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/elongated_coin.md b/Docs/Layers/elongated_coin.md index 541cebe159..3e5b7e8f7f 100644 --- a/Docs/Layers/elongated_coin.md +++ b/Docs/Layers/elongated_coin.md @@ -97,12 +97,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -110,7 +112,8 @@ The question is `What are the opening hours of {title()}?` ### designs The question is `How many designs are available?` -*This penny press has {coin:design_count} designs available.* is shown if `coin:design_count` is set + +*This penny press has {coin:design_count} designs available.* is shown if `coin:design_count` is set. - *This penny press has one design available.* is shown if with coin:design_count=1 - *This penny press has two designs available.* is shown if with coin:design_count=2 @@ -140,7 +143,8 @@ The question is `Which methods of payment are accepted here?` ### coin The question is `What coin is used for pressing?` -*This penny press uses a {coin:type} coin for pressing.* is shown if `coin:type` is set + +*This penny press uses a {coin:type} coin for pressing.* is shown if `coin:type` is set. - *This penny press uses a 2 cent coin for pressing.* is shown if with coin:type=2cent - *This penny press uses a 5 cent coin for pressing.* is shown if with coin:type=5cent @@ -153,7 +157,8 @@ The question is `What coin is used for pressing?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -163,7 +168,8 @@ This tagrendering has labels ### charge The question is `How much does it cost to press a penny?` -*It costs {charge} to press a penny.* is shown if `charge` is set + +*It costs {charge} to press a penny.* is shown if `charge` is set. - *It costs 1 euro to press a penny.* is shown if with charge=1 EUR - *It costs 2 euros to press a penny.* is shown if with charge=2 EUR @@ -202,6 +208,7 @@ The question is `Is the penny press indoors?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -211,7 +218,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -225,13 +233,15 @@ This tagrendering has labels ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -241,16 +251,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/entrance.md b/Docs/Layers/entrance.md index 33eaea5f82..8959ccbb65 100644 --- a/Docs/Layers/entrance.md +++ b/Docs/Layers/entrance.md @@ -66,7 +66,7 @@ Elements must match **any** of the following expressions: | [door](https://wiki.openstreetmap.org/wiki/Key:door) | Multiple choice | [hinged](https://wiki.openstreetmap.org/wiki/Tag:door%3Dhinged) [revolving](https://wiki.openstreetmap.org/wiki/Tag:door%3Drevolving) [sliding](https://wiki.openstreetmap.org/wiki/Tag:door%3Dsliding) [overhead](https://wiki.openstreetmap.org/wiki/Tag:door%3Doverhead) [no](https://wiki.openstreetmap.org/wiki/Tag:door%3Dno) | | [automatic_door](https://wiki.openstreetmap.org/wiki/Key:automatic_door) | Multiple choice | [no](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dno) [motion](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dmotion) [floor](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dfloor) [button](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dbutton) [slowdown_button](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dslowdown_button) [continuous](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dcontinuous) [serviced_on_button_press](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dserviced_on_button_press) [serviced_on_request](https://wiki.openstreetmap.org/wiki/Tag:automatic_door%3Dserviced_on_request) | | [width](https://wiki.openstreetmap.org/wiki/Key:width) | [pfloat](../SpecialInputElements.md#pfloat) | | -| [kerb:height](https://wiki.openstreetmap.org/wiki/Key:kerb:height) | [pnat](../SpecialInputElements.md#pnat) | [0](https://wiki.openstreetmap.org/wiki/Tag:kerb:height%3D0) | +| [kerb:height](https://wiki.openstreetmap.org/wiki/Key:kerb:height) | [pfloat](../SpecialInputElements.md#pfloat) | [0](https://wiki.openstreetmap.org/wiki/Tag:kerb:height%3D0) | | [ref](https://wiki.openstreetmap.org/wiki/Key:ref) | [string](../SpecialInputElements.md#string) | [](https://wiki.openstreetmap.org/wiki/Tag:ref%3D) | ## Featureview elements and TagRenderings @@ -80,7 +80,7 @@ Elements must match **any** of the following expressions: | [Door_type](#Door_type) | What is the type of this door?
6 options | accessibility | _Multiple choice only_ | | [automatic_door](#automatic_door) | Is this door automated?
9 options | accessibility | _Multiple choice only_ | | [width](#width) | What is the width of this door/entrance?
_This door has a width of {canonical(width)}_ | accessibility | *[width](https://wiki.osm.org/wiki/Key:width)* ([pfloat](../SpecialInputElements.md#pfloat)) | -| [kerb-height](#kerb-height) | What is the height of this kerb?
_The kerb height of this door is {kerb:height}_
1 options | accessibility | *[kerb:height](https://wiki.osm.org/wiki/Key:kerb:height)* ([pnat](../SpecialInputElements.md#pnat)) | +| [kerb-height](#kerb-height) | What is the height of this kerb?
_The kerb height of this door is {kerb:height}_
1 options | accessibility | *[kerb:height](https://wiki.osm.org/wiki/Key:kerb:height)* ([pfloat](../SpecialInputElements.md#pfloat)) | | [ref](#ref) | Does this door have a reference number?
_This door has {ref} as reference number_
1 options | accessibility | *[ref](https://wiki.osm.org/wiki/Key:ref)* ([string](../SpecialInputElements.md#string)) | | [leftover-questions](#leftover-questions) | _{questions( ,hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | @@ -89,6 +89,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* This tagrendering has labels @@ -97,6 +98,7 @@ This tagrendering has labels ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -106,7 +108,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -168,7 +171,10 @@ This tagrendering has labels ### width The question is `What is the width of this door/entrance?` -*This door has a width of {canonical(width)}* is shown if `width` is set + +*This door has a width of {canonical(width)}* is shown if `width` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering has labels `accessibility` @@ -176,7 +182,10 @@ This tagrendering has labels ### kerb-height The question is `What is the height of this kerb?` -*The kerb height of this door is {kerb:height}* is shown if `kerb:height` is set + +*The kerb height of this door is {kerb:height}* is shown if `kerb:height` is set. + +The allowed input is of type pfloat and is in range -infinty until 0.5 (both inclusive). A warning will appear above 0.25. - *This door does not have a kerb* is shown if with kerb:height=0 @@ -186,7 +195,8 @@ This tagrendering has labels ### ref The question is `Does this door have a reference number?` -*This door has {ref} as reference number* is shown if `ref` is set + +*This door has {ref} as reference number* is shown if `ref` is set. - *No reference number* is shown if with ref= @@ -196,6 +206,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -205,11 +216,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/etymology.md b/Docs/Layers/etymology.md index 0861ca051c..8c41841edb 100644 --- a/Docs/Layers/etymology.md +++ b/Docs/Layers/etymology.md @@ -68,16 +68,19 @@ Elements must match **any** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -85,38 +88,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -124,6 +134,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/excrement_bag_dispenser.md b/Docs/Layers/excrement_bag_dispenser.md index 6f2935889c..a814153b5b 100644 --- a/Docs/Layers/excrement_bag_dispenser.md +++ b/Docs/Layers/excrement_bag_dispenser.md @@ -70,13 +70,15 @@ The question is `Does it cost money to use this dispenser?` ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -86,11 +88,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/extinguisher.md b/Docs/Layers/extinguisher.md index 20ca8a5805..4cc4d1ce69 100644 --- a/Docs/Layers/extinguisher.md +++ b/Docs/Layers/extinguisher.md @@ -58,7 +58,8 @@ Elements must match the expression **location=indoor - *Found outdoors.* is shown if with location=outdoor @@ -66,11 +67,13 @@ The question is `Where is it positioned?` ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -80,11 +83,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/facadegardens.md b/Docs/Layers/facadegardens.md index af9c38528e..16227ed6a1 100644 --- a/Docs/Layers/facadegardens.md +++ b/Docs/Layers/facadegardens.md @@ -80,12 +80,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### facadegardens-direction The question is `What is the orientation of the garden?` -*Orientation: {direction} (where 0=N and 90=O)* is shown if `direction` is set + +*Orientation: {direction} (where 0=N and 90=O)* is shown if `direction` is set. ### facadegardens-sunshine @@ -105,7 +107,8 @@ The question is `Is there a water barrel installed for the garden?` ### facadegardens-start_date The question is `When was the garden constructed? (a year is sufficient)` -*Construction date of the garden: {start_date}* is shown if `start_date` is set + +*Construction date of the garden: {start_date}* is shown if `start_date` is set. ### facadegardens-edible @@ -126,11 +129,13 @@ The question is `What kinds of plants grow here?` ### facadegardens-description The question is `Extra describing info about the garden (if needed and not yet described above)` -*More details: {description}* is shown if `description` is set + +*More details: {description}* is shown if `description` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -140,16 +145,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/fire_station.md b/Docs/Layers/fire_station.md index 0e1080ea6b..1fb9d084f2 100644 --- a/Docs/Layers/fire_station.md +++ b/Docs/Layers/fire_station.md @@ -70,29 +70,34 @@ Elements must match the expression **operator=Bureau of Fire Protection & operator:type=government ### station-operator The question is `How is the station operator classified?` -*The operator is a(n) {operator:type} entity.* is shown if `operator:type` is set + +*The operator is a(n) {operator:type} entity.* is shown if `operator:type` is set. - *The station is operated by the government.* is shown if with operator:type=government - *The station is operated by a community-based, or informal organization.* is shown if with operator:type=community @@ -102,11 +107,13 @@ The question is `How is the station operator classified?` ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -116,11 +123,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/firepit.md b/Docs/Layers/firepit.md index ce135b00d7..ec87aa53d2 100644 --- a/Docs/Layers/firepit.md +++ b/Docs/Layers/firepit.md @@ -63,6 +63,7 @@ Elements must match the expression **noname=yes ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -104,7 +107,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -115,7 +119,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -125,7 +130,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -141,6 +147,7 @@ The question is `Is this place accessible with a wheelchair?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -150,7 +157,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -164,11 +172,13 @@ This tagrendering has labels ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -178,11 +188,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/fitness_station.md b/Docs/Layers/fitness_station.md index f022683b73..ecb3975292 100644 --- a/Docs/Layers/fitness_station.md +++ b/Docs/Layers/fitness_station.md @@ -69,12 +69,14 @@ Elements must match the expression **noname=yes @@ -111,12 +113,14 @@ The question is `What kind of equipment does this fitness station have?` ### operator The question is `Who maintains this fitness station?` -*The fitness station is maintained by {operator}.* is shown if `operator` is set + +*The fitness station is maintained by {operator}.* is shown if `operator` is set. ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -124,6 +128,7 @@ The question is `What are the opening hours of {title()}?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -133,11 +138,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/fixme.md b/Docs/Layers/fixme.md index 9e6f160392..c0369491bc 100644 --- a/Docs/Layers/fixme.md +++ b/Docs/Layers/fixme.md @@ -53,13 +53,15 @@ Elements must match **any** of the following expressions: ### fixme The question is `What is wrong with this feature?` -*Fixme Text: {fixme}* is shown if `fixme` is set + +*Fixme Text: {fixme}* is shown if `fixme` is set. - *This issue has been resolved* is shown if with fixme= ### note _This tagrendering has no question and is thus read-only_ + *Note Text: {note}* This tagrendering is only visible in the popup if the following condition is met: note~.+ @@ -67,11 +69,13 @@ This tagrendering is only visible in the popup if the following condition is met ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -81,6 +85,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/food.md b/Docs/Layers/food.md index 61d41883a8..17358b85ef 100644 --- a/Docs/Layers/food.md +++ b/Docs/Layers/food.md @@ -33,7 +33,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo - [show-menu-image](#show-menu-image) - [add-menu-image](#add-menu-image) - [menu-website](#menu-website) - - [Reservation](#reservation) + - [reservation](#reservation) - [Takeaway](#takeaway) - [delivery](#delivery) - [drive-through](#drive-through) @@ -216,7 +216,7 @@ Elements must match **any** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -285,17 +285,20 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -307,14 +310,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -324,7 +329,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -335,7 +341,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -353,6 +360,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -362,7 +370,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -385,7 +394,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -410,19 +420,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -458,7 +471,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -651,7 +665,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -662,6 +677,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -670,6 +686,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -694,6 +711,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -708,7 +726,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -728,7 +747,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -763,7 +783,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -833,7 +854,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -923,7 +945,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -959,7 +982,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1032,6 +1056,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1047,6 +1072,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1064,6 +1090,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1081,6 +1108,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1122,6 +1150,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1138,6 +1167,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1173,7 +1203,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1192,7 +1225,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1209,7 +1245,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1268,6 +1307,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1284,6 +1324,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1294,6 +1335,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1303,16 +1345,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/food_courts.md b/Docs/Layers/food_courts.md index fd664f75eb..345f9b528d 100644 --- a/Docs/Layers/food_courts.md +++ b/Docs/Layers/food_courts.md @@ -71,22 +71,26 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ @@ -102,7 +106,8 @@ The question is `Is this place accessible with a wheelchair?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -112,7 +117,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -130,6 +136,7 @@ The question is `Is smoking allowed at {title()}?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -139,11 +146,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/food_dog_friendly.md b/Docs/Layers/food_dog_friendly.md index 6894889cb2..db589d1f03 100644 --- a/Docs/Layers/food_dog_friendly.md +++ b/Docs/Layers/food_dog_friendly.md @@ -34,7 +34,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo - [show-menu-image](#show-menu-image) - [add-menu-image](#add-menu-image) - [menu-website](#menu-website) - - [Reservation](#reservation) + - [reservation](#reservation) - [Takeaway](#takeaway) - [delivery](#delivery) - [drive-through](#drive-through) @@ -201,7 +201,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -270,17 +270,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -292,14 +295,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -309,7 +314,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -320,7 +326,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -338,6 +345,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -347,7 +355,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -370,7 +379,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -395,19 +405,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -443,7 +456,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -636,7 +650,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -647,6 +662,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -655,6 +671,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -679,6 +696,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -693,7 +711,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -713,7 +732,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -748,7 +768,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -818,7 +839,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -908,7 +930,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -944,7 +967,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1017,6 +1041,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1032,6 +1057,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1049,6 +1075,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1066,6 +1093,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1107,6 +1135,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1123,6 +1152,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1158,7 +1188,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1177,7 +1210,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1194,7 +1230,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1253,6 +1292,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1269,6 +1309,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1279,6 +1320,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1288,16 +1330,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/food_glutenfree.md b/Docs/Layers/food_glutenfree.md index 93dbf2f248..d6cbabb450 100644 --- a/Docs/Layers/food_glutenfree.md +++ b/Docs/Layers/food_glutenfree.md @@ -35,7 +35,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo - [show-menu-image](#show-menu-image) - [add-menu-image](#add-menu-image) - [menu-website](#menu-website) - - [Reservation](#reservation) + - [reservation](#reservation) - [Takeaway](#takeaway) - [delivery](#delivery) - [drive-through](#drive-through) @@ -203,7 +203,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -271,11 +271,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -293,7 +295,8 @@ This tagrendering has labels ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -305,14 +308,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -322,7 +327,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -333,7 +339,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -351,6 +358,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -360,7 +368,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -383,7 +392,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -408,19 +418,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -456,7 +469,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -637,7 +651,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -648,6 +663,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -656,6 +672,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -680,6 +697,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -694,7 +712,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -714,7 +733,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -749,7 +769,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -819,7 +840,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -909,7 +931,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -945,7 +968,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1018,6 +1042,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1033,6 +1058,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1050,6 +1076,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1067,6 +1094,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1108,6 +1136,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1124,6 +1153,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1159,7 +1189,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1178,7 +1211,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1195,7 +1231,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1254,6 +1293,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1270,6 +1310,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1280,6 +1321,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1289,16 +1331,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/food_lactosefree.md b/Docs/Layers/food_lactosefree.md index d9a11dcc9d..e5a426e12e 100644 --- a/Docs/Layers/food_lactosefree.md +++ b/Docs/Layers/food_lactosefree.md @@ -35,7 +35,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo - [show-menu-image](#show-menu-image) - [add-menu-image](#add-menu-image) - [menu-website](#menu-website) - - [Reservation](#reservation) + - [reservation](#reservation) - [Takeaway](#takeaway) - [delivery](#delivery) - [drive-through](#drive-through) @@ -203,7 +203,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -271,11 +271,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -293,7 +295,8 @@ This tagrendering has labels ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -305,14 +308,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -322,7 +327,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -333,7 +339,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -351,6 +358,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -360,7 +368,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -383,7 +392,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -408,19 +418,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -456,7 +469,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -637,7 +651,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -648,6 +663,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -656,6 +672,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -680,6 +697,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -694,7 +712,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -714,7 +733,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -749,7 +769,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -819,7 +840,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -909,7 +931,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -945,7 +968,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1018,6 +1042,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1033,6 +1058,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1050,6 +1076,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1067,6 +1094,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1108,6 +1136,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1124,6 +1153,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1159,7 +1189,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1178,7 +1211,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1195,7 +1231,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1254,6 +1293,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1270,6 +1310,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1280,6 +1321,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1289,16 +1331,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/friture.md b/Docs/Layers/friture.md index 4508bb647d..205aaeb2d8 100644 --- a/Docs/Layers/friture.md +++ b/Docs/Layers/friture.md @@ -34,7 +34,7 @@ A layer showing restaurants and fast-food amenities (with a special rendering fo - [show-menu-image](#show-menu-image) - [add-menu-image](#add-menu-image) - [menu-website](#menu-website) - - [Reservation](#reservation) + - [reservation](#reservation) - [Takeaway](#takeaway) - [delivery](#delivery) - [drive-through](#drive-through) @@ -201,7 +201,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -270,17 +270,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -292,14 +295,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -309,7 +314,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -320,7 +326,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -338,6 +345,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -347,7 +355,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -370,7 +379,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -395,19 +405,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -443,7 +456,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -636,7 +650,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -647,6 +662,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -655,6 +671,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -679,6 +696,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -693,7 +711,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -713,7 +732,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -748,7 +768,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -818,7 +839,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -908,7 +930,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -944,7 +967,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1017,6 +1041,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1032,6 +1057,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1049,6 +1075,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1066,6 +1093,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1107,6 +1135,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1123,6 +1152,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1158,7 +1188,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1177,7 +1210,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1194,7 +1230,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1253,6 +1292,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1269,6 +1309,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1279,6 +1320,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1288,16 +1330,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ghost_bike.md b/Docs/Layers/ghost_bike.md index 8dc1a6cb18..637539ca87 100644 --- a/Docs/Layers/ghost_bike.md +++ b/Docs/Layers/ghost_bike.md @@ -75,17 +75,20 @@ Elements must match the expression **noname=yes @@ -93,21 +96,25 @@ The question is `Whom is remembered by this ghost bike?` ### ghost_bike-source The question is `On what webpage can one find more info about the ghost bike or the accident?` -*{link(More info available,&LBRACEsource&RBRACE,,,,)}* is shown if `source` is set + +*{link(More info available,&LBRACEsource&RBRACE,,,,)}* is shown if `source` is set. ### ghost_bike-inscription The question is `What is the inscription on this Ghost bike?` -*{inscription}* is shown if `inscription` is set + +*{inscription}* is shown if `inscription` is set. ### ghost_bike-start_date The question is `When was this Ghost bike installed?` -*Placed on {start_date}* is shown if `start_date` is set + +*Placed on {start_date}* is shown if `start_date` is set. ### wikidata _This tagrendering has no question and is thus read-only_ + *

Wikipedia page about the deceased person

{wikipedia(subject:wikidata)}* This tagrendering is only visible in the popup if the following condition is met: subject:wikidata~.+ @@ -115,6 +122,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -124,16 +132,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ghostsign.md b/Docs/Layers/ghostsign.md index a711f33045..2f523db142 100644 --- a/Docs/Layers/ghostsign.md +++ b/Docs/Layers/ghostsign.md @@ -70,6 +70,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### historic @@ -82,7 +83,8 @@ The question is `Is this sign for a business that no longer exists or no longer ### type The question is `Which type of advertising feature is this?` -*This is a {advertising}* is shown if `advertising` is set + +*This is a {advertising}* is shown if `advertising` is set. - *This is a billboard* is shown if with advertising=billboard - *This is a board* is shown if with advertising=board @@ -101,16 +103,19 @@ The question is `Which type of advertising feature is this?` ### inscription The question is `What is the text on the sign?` -*The text on the sign is: {inscription}* is shown if `inscription` is set + +*The text on the sign is: {inscription}* is shown if `inscription` is set. ### brand The question is `For what business was this sign made?` -*This sign was made for: {brand}* is shown if `brand` is set + +*This sign was made for: {brand}* is shown if `brand` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -120,11 +125,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/governments.md b/Docs/Layers/governments.md index eb773de2a8..ccf79823ea 100644 --- a/Docs/Layers/governments.md +++ b/Docs/Layers/governments.md @@ -66,12 +66,14 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -81,7 +83,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -92,7 +95,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -102,11 +106,13 @@ This tagrendering has labels ### name The question is `What is the name of this Governmental Office?` -*This Governmental Office is called {name}* is shown if `name` is set + +*This Governmental Office is called {name}* is shown if `name` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -116,11 +122,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/grave.md b/Docs/Layers/grave.md index dd20b985f5..03d0808ee4 100644 --- a/Docs/Layers/grave.md +++ b/Docs/Layers/grave.md @@ -64,21 +64,25 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### buried:wikidata The question is `What is the Wikipedia page of the person buried here?` -*{wikipedia(buried:wikidata)}* is shown if `buried:wikidata` is set + +*{wikipedia(buried:wikidata)}* is shown if `buried:wikidata` is set. ### name The question is `What is the name of the person buried here?` -*{name} is buried here* is shown if `name` is set + +*{name} is buried here* is shown if `name` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -88,11 +92,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/group_campsite.md b/Docs/Layers/group_campsite.md index 76b63e5ee4..8a8665ba6d 100644 --- a/Docs/Layers/group_campsite.md +++ b/Docs/Layers/group_campsite.md @@ -85,6 +85,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### group_only @@ -97,12 +98,14 @@ The question is `Is this campsite exclusively for groups?` ### name The question is `What is the name of this campsite?` -*The name of this campsite is {name}* is shown if `name` is set + +*The name of this campsite is {name}* is shown if `name` is set. ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -112,7 +115,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -123,7 +127,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -133,7 +138,8 @@ This tagrendering has labels ### capacity_persons The question is `How many people can stay here?` -*{capacity:persons} people can stay here* is shown if `capacity:persons` is set + +*{capacity:persons} people can stay here* is shown if `capacity:persons` is set. ### fee @@ -145,12 +151,14 @@ The question is `Is there a fee?` ### charge_person_day The question is `What is the charge per person per day?` -*Charge per person per day: {charge}* is shown if `charge` is set + +*Charge per person per day: {charge}* is shown if `charge` is set. ### charge_day The question is `What is the charge per day?` -*Charge per day: {charge}* is shown if `charge` is set + +*Charge per day: {charge}* is shown if `charge` is set. ### caravansites-toilets @@ -162,21 +170,25 @@ The question is `Does this place have toilets?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/group_hostel.md b/Docs/Layers/group_hostel.md index d28b932b2b..acb515c342 100644 --- a/Docs/Layers/group_hostel.md +++ b/Docs/Layers/group_hostel.md @@ -102,21 +102,25 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### name The question is `What is the name of this {title()}?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### presettypeselect _This tagrendering has no question and is thus read-only_ + *{preset_type_select()}* ### group_only @@ -131,14 +135,16 @@ This tagrendering is only visible in the popup if the following condition is met ### brand The question is `Is {title()} part of a bigger brand?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *Not part of a bigger brand* is shown if with nobrand=yes ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -148,7 +154,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -159,7 +166,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -178,6 +186,7 @@ The question is `Is this place accessible with a wheelchair?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### internet @@ -209,7 +218,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -230,6 +240,7 @@ The question is `Are dogs allowed in this business?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -239,16 +250,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/guidepost.md b/Docs/Layers/guidepost.md index 17d2620f09..1553d779da 100644 --- a/Docs/Layers/guidepost.md +++ b/Docs/Layers/guidepost.md @@ -72,6 +72,7 @@ Elements must match the expression **noname=yes ### ref The question is `What is the reference number of this guidepost?` -*Reference number of the guidepost: {ref}* is shown if `ref` is set + +*Reference number of the guidepost: {ref}* is shown if `ref` is set. - *There is no reference number noted on this guidepost* is shown if with noref=yes ### ele The question is `What is the elevation noted on this guidepost?` -*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set + +*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set. - *There is no elevation noted on this guidepost* is shown if with noele=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -119,16 +124,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/hackerspace.md b/Docs/Layers/hackerspace.md index 5e93abcece..d8ee7bdf8c 100644 --- a/Docs/Layers/hackerspace.md +++ b/Docs/Layers/hackerspace.md @@ -133,11 +133,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -179,7 +184,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -189,7 +195,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -200,7 +207,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -210,12 +218,14 @@ This tagrendering has labels ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### opening_hours_24_7 The question is `When is this hackerspace opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -311,7 +321,8 @@ The question is `Does this hackerspace serve Club-Mate?` ### hackerspaces-start_date The question is `When was this hackerspace founded?` -*This hackerspace was founded at {start_date}* is shown if `start_date` is set + +*This hackerspace was founded at {start_date}* is shown if `start_date` is set. ### internet @@ -342,7 +353,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -353,21 +365,25 @@ This tagrendering has labels ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/health_and_social_places_without_etymology.md b/Docs/Layers/health_and_social_places_without_etymology.md index 8417b2fb3d..a021171d0c 100644 --- a/Docs/Layers/health_and_social_places_without_etymology.md +++ b/Docs/Layers/health_and_social_places_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/hospital.md b/Docs/Layers/hospital.md index 927dc408b1..9734e1c442 100644 --- a/Docs/Layers/hospital.md +++ b/Docs/Layers/hospital.md @@ -76,7 +76,7 @@ Elements must match **any** of the following expressions: | [housenumber](#housenumber)
_(Original in [address](./address.md#housenumber))_ | What is the number of this house?
_The house number is {addr:housenumber}_
1 options | address, hidden | *[addr:housenumber](https://wiki.osm.org/wiki/Key:addr:housenumber)* ([string](../SpecialInputElements.md#string)) | | [street](#street)
_(Original in [address](./address.md#street))_ | What street is this address located in?
_This address is in street {addr:street}_ | address, hidden | *[addr:street](https://wiki.osm.org/wiki/Key:addr:street)* ([string](../SpecialInputElements.md#string)) | | [unit](#unit)
_(Original in [address](./address.md#unit))_ | What is the unit number or letter?
_The unit number is {addr:unit}_
1 options | address, hidden | *[addr:unit](https://wiki.osm.org/wiki/Key:addr:unit)* ([string](../SpecialInputElements.md#string)) | -| [oh-visitor](#oh-visitor) | When are visitors allowed to visit?
_

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

_ | | *[opening_hours:visitors](https://wiki.osm.org/wiki/Key:opening_hours:visitors)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | +| [oh-visitor](#oh-visitor) | When are visitors allowed to visit?
_

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

_ | | *[opening_hours:visitors](https://wiki.osm.org/wiki/Key:opening_hours:visitors)* ([opening_hours](../SpecialInputElements.md#opening_hours)) | | [leftover-questions](#leftover-questions) | _{questions( ,hidden)}_ | ignore-docs, added_by_default | _Multiple choice only_ | | [move-button](#move-button) | _{move_button()}_ | | _Multiple choice only_ | | [lod](#lod)
_(Original in [questions](./BuiltinQuestions.md#lod))_ | _{linked_data_from_website()}_ | added_by_default | _Multiple choice only_ | @@ -84,7 +84,8 @@ Elements must match **any** of the following expressions: ### name The question is `What is the name of this hospital?` -*This hospital is called {name}* is shown if `name` is set + +*This hospital is called {name}* is shown if `name` is set. ### inpatient @@ -96,7 +97,8 @@ The question is `Does this facility admit inpatients?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -106,7 +108,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -117,7 +120,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -127,6 +131,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -135,6 +140,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -146,7 +152,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -157,7 +164,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -166,7 +174,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -177,11 +186,13 @@ This tagrendering has labels ### oh-visitor The question is `When are visitors allowed to visit?` -*

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

* is shown if `opening_hours:visitors` is set + +*

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

* is shown if `opening_hours:visitors` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -191,11 +202,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/hostel.md b/Docs/Layers/hostel.md index c746cbcacf..6efdc6d23f 100644 --- a/Docs/Layers/hostel.md +++ b/Docs/Layers/hostel.md @@ -98,21 +98,25 @@ Elements must match the expression **nobrand=yes ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -144,7 +150,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -155,7 +162,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -174,6 +182,7 @@ The question is `Is this place accessible with a wheelchair?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### internet @@ -205,7 +214,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -226,6 +236,7 @@ The question is `Are dogs allowed in this business?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -235,16 +246,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/hydrant.md b/Docs/Layers/hydrant.md index 43ccc13701..e8faf3918e 100644 --- a/Docs/Layers/hydrant.md +++ b/Docs/Layers/hydrant.md @@ -79,7 +79,8 @@ Elements must match the expression **colour=yellow - *The hydrant color is red.* is shown if with colour=red @@ -87,7 +88,8 @@ The question is `What color is the hydrant?` ### hydrant-type The question is `What type of hydrant is it?` -* Hydrant type: {fire_hydrant:type}* is shown if `fire_hydrant:type` is set + +* Hydrant type: {fire_hydrant:type}* is shown if `fire_hydrant:type` is set. - *Pillar type.* is shown if with fire_hydrant:type=pillar - *Pipe type.* is shown if with fire_hydrant:type=pipe @@ -105,17 +107,20 @@ The question is `Is this hydrant still working?` ### hydrant-diameter The question is `What is the pipe diameter of this hydrant?` -*Pipe diameter: {canonical(fire_hydrant:diameter)}* is shown if `fire_hydrant:diameter` is set + +*Pipe diameter: {canonical(fire_hydrant:diameter)}* is shown if `fire_hydrant:diameter` is set. ### hydrant-number-of-couplings The question is `How many couplings does this fire hydrant have?` -*Number of couplings: {couplings}* is shown if `couplings` is set + +*Number of couplings: {couplings}* is shown if `couplings` is set. ### hydrant-couplings The question is `What kind of couplings does this hydrant have?` -*Couplings: {couplings:type}* is shown if `couplings:type` is set + +*Couplings: {couplings:type}* is shown if `couplings:type` is set. - *Storz coupling* is shown if with couplings:type=Storz - *UNI coupling* is shown if with couplings:type=UNI @@ -124,21 +129,25 @@ The question is `What kind of couplings does this hydrant have?` ### hydrant-couplings-diameters The question is `What diameter are the couplings of this hydrant?` -*Coupling diameters: {couplings:diameters}* is shown if `couplings:diameters` is set + +*Coupling diameters: {couplings:diameters}* is shown if `couplings:diameters` is set. ### ref The question is `What is the reference number of this hydrant?` -*Reference number: {ref}* is shown if `ref` is set + +*Reference number: {ref}* is shown if `ref` is set. ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -148,11 +157,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ice_cream.md b/Docs/Layers/ice_cream.md index 839c2a4568..2e6defe165 100644 --- a/Docs/Layers/ice_cream.md +++ b/Docs/Layers/ice_cream.md @@ -95,29 +95,34 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -127,7 +132,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -138,7 +144,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -213,6 +220,7 @@ The question is `Is this place accessible with a wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -222,11 +230,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/icecream_glutenfree.md b/Docs/Layers/icecream_glutenfree.md index 6a3f9a467c..e50d0f7517 100644 --- a/Docs/Layers/icecream_glutenfree.md +++ b/Docs/Layers/icecream_glutenfree.md @@ -89,11 +89,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -111,19 +113,22 @@ This tagrendering has labels ### 1 The question is `What is the name of this ice cream parlor?` -*This ice cream parlor is named {name}* is shown if `name` is set + +*This ice cream parlor is named {name}* is shown if `name` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -133,7 +138,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -144,7 +150,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -207,6 +214,7 @@ The question is `Is this place accessible with a wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -216,11 +224,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/icecream_lactosefree.md b/Docs/Layers/icecream_lactosefree.md index 653d60fc82..2a737ca86e 100644 --- a/Docs/Layers/icecream_lactosefree.md +++ b/Docs/Layers/icecream_lactosefree.md @@ -89,11 +89,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -111,19 +113,22 @@ This tagrendering has labels ### 1 The question is `What is the name of this ice cream parlor?` -*This ice cream parlor is named {name}* is shown if `name` is set + +*This ice cream parlor is named {name}* is shown if `name` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -133,7 +138,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -144,7 +150,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -207,6 +214,7 @@ The question is `Is this place accessible with a wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -216,11 +224,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/indoors.md b/Docs/Layers/indoors.md index 1360ff62db..fa001635a3 100644 --- a/Docs/Layers/indoors.md +++ b/Docs/Layers/indoors.md @@ -156,11 +156,13 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -170,7 +172,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -184,14 +187,16 @@ This tagrendering has labels ### ref The question is `What is the reference number of this room?` -*This room has the reference number {ref}* is shown if `ref` is set + +*This room has the reference number {ref}* is shown if `ref` is set. This tagrendering is only visible in the popup if the following condition is met: indoor=room | indoor=area | indoor=corridor ### name The question is `What is the name of this room?` -*This room is named {name}* is shown if `name` is set + +*This room is named {name}* is shown if `name` is set. This tagrendering is only visible in the popup if the following condition is met: indoor=room | indoor=area | indoor=corridor @@ -227,21 +232,24 @@ The question is `What type of room is this?` ### room-capacity The question is `How much people can at most fit in this room?` -*At most {capacity} people fit this room* is shown if `capacity` is set + +*At most {capacity} people fit this room* is shown if `capacity` is set. This tagrendering is only visible in the popup if the following condition is met: room=waiting | room=restaurant | room=office | room=nursery | room=conference | room=auditorium | room=chapel | room=bedroom | room=classroom ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: name:etymology!=unknown & name~.+ ### toilet-access The question is `Are these toilets publicly accessible?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Public access* is shown if with access=yes - *Only access to customers* is shown if with access=customers @@ -268,7 +276,8 @@ This tagrendering has labels ### toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {charge}* is shown if `charge` is set + +*The fee is {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=toilets & fee=yes This tagrendering has labels @@ -295,7 +304,8 @@ This tagrendering has labels ### opening_hours_24_7 The question is `When are these toilets opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -364,7 +374,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -392,7 +403,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -463,7 +475,8 @@ This tagrendering has labels ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=toilets This tagrendering has labels @@ -474,6 +487,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: amenity=toilets @@ -501,6 +515,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: amenity=toilets & (toilets:wheelchair=yes | wheelchair=yes) @@ -514,6 +529,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: amenity=toilets & (toilets:wheelchair=yes | wheelchair=yes) @@ -527,6 +543,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -560,7 +577,10 @@ This tagrendering has labels ### wheelchair-door-width The question is `What is the width of the door to the wheelchair accessible toilet?` -*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set + +*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set. + +The allowed input is of type pfloat and is in range 0.4 until infinity (both inclusive). A warning will appear below 0.6. This tagrendering is only visible in the popup if the following condition is met: amenity=toilets & (toilets:wheelchair=yes | toilets:wheelchair=designated | wheelchair=yes | wheelchair=designated) This tagrendering has labels @@ -572,6 +592,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: amenity=toilets @@ -599,6 +620,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: amenity=toilets @@ -611,6 +633,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;hidden)}* This tagrendering has labels @@ -620,11 +643,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/information_board.md b/Docs/Layers/information_board.md index 7a2d720755..e83d116ccb 100644 --- a/Docs/Layers/information_board.md +++ b/Docs/Layers/information_board.md @@ -52,11 +52,13 @@ Elements must match the expression **tactile_paving:colour=yellow - *The tactile paving is red.* is shown if with tactile_paving:colour=red @@ -115,13 +117,15 @@ This tagrendering is only visible in the popup if the following condition is met ### kerb-height The question is `What is the height of this kerb?` -*Kerb height: {kerb:height}* is shown if `kerb:height` is set + +*Kerb height: {kerb:height}* is shown if `kerb:height` is set. - *This kerb is flush and is lower than 1cm.* is shown if with kerb:height=0 ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -131,11 +135,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/lighthouse.md b/Docs/Layers/lighthouse.md index d87e49432e..19aad9369c 100644 --- a/Docs/Layers/lighthouse.md +++ b/Docs/Layers/lighthouse.md @@ -58,12 +58,14 @@ Elements must match the expression **{name}* is shown if `name` is set + +*This love hotel is named {name}* is shown if `name` is set. ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -94,7 +98,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -105,7 +110,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -115,6 +121,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -124,11 +131,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/map.md b/Docs/Layers/map.md index 3ede228f61..3172b0bdd2 100644 --- a/Docs/Layers/map.md +++ b/Docs/Layers/map.md @@ -73,6 +73,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### map_type @@ -97,7 +98,8 @@ The question is `What is the size of the shown area on the map?` ### map-map_source The question is `On which data is this map based?` -*This map is based on {map_source}* is shown if `map_source` is set + +*This map is based on {map_source}* is shown if `map_source` is set. - *This map is based on OpenStreetMap* is shown if with map_source=OpenStreetMap & not:map_source= @@ -121,6 +123,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -130,16 +133,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/maproulette.md b/Docs/Layers/maproulette.md index 37be9be5f9..3a5a5b6b56 100644 --- a/Docs/Layers/maproulette.md +++ b/Docs/Layers/maproulette.md @@ -67,6 +67,7 @@ _This tagrendering has no question and is thus read-only_ ### mark_fixed _This tagrendering has no question and is thus read-only_ + *{maproulette_set_status(Mark as fixed,,,,,)}* This tagrendering has labels @@ -75,6 +76,7 @@ This tagrendering has labels ### mark_duplicate _This tagrendering has no question and is thus read-only_ + *{maproulette_set_status(Mark as not found or false positive,close,,2,,)}* This tagrendering has labels @@ -83,6 +85,7 @@ This tagrendering has labels ### mark_too_hard _This tagrendering has no question and is thus read-only_ + *{maproulette_set_status(Mark as too hard,./assets/svg/not_found.svg,,6,,)}* This tagrendering has labels @@ -91,6 +94,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -100,6 +104,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/maproulette_challenge.md b/Docs/Layers/maproulette_challenge.md index 9b9ceaccb8..c22269d354 100644 --- a/Docs/Layers/maproulette_challenge.md +++ b/Docs/Layers/maproulette_challenge.md @@ -67,6 +67,7 @@ _This tagrendering has no question and is thus read-only_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -76,6 +77,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/maxspeed.md b/Docs/Layers/maxspeed.md index e68fe39e68..8172904837 100644 --- a/Docs/Layers/maxspeed.md +++ b/Docs/Layers/maxspeed.md @@ -58,7 +58,8 @@ Elements must match **all** of the following expressions: ### maxspeed-maxspeed The question is `What is the legal maximum speed one is allowed to drive on this road?` -*The maximum allowed speed on this road is {canonical(maxspeed)}* is shown if `maxspeed` is set + +*The maximum allowed speed on this road is {canonical(maxspeed)}* is shown if `maxspeed` is set. - *This is a living street, which has a maxspeed of 20km/h* is shown if with highway=living_street & _country=be - *The maximum allowed speed on this road depends on the direction a vehicle goes* is shown if with maxspeed= & _forward_backward=yes @@ -66,20 +67,23 @@ The question is `What is the legal maximum speed one is allowed to drive on this ### maxspeed-forward The question is `What is the maximum allowed speed when travelling {direction_absolute()}?` -*The maximum allowed speed when travelling {direction_absolute()} on this road is {canonical(maxspeed:forward)}* is shown if `maxspeed:forward` is set + +*The maximum allowed speed when travelling {direction_absolute()} on this road is {canonical(maxspeed:forward)}* is shown if `maxspeed:forward` is set. This tagrendering is only visible in the popup if the following condition is met: _forward_backward=yes | maxspeed:backward~.+ | maxspeed:forward~.+ ### maxspeed-backward The question is `What is the maximum allowed speed when travelling {direction_absolute(,180)}?` -*The maximum allowed speed when travelling {direction_absolute(,180)} on this road is {canonical(maxspeed:backward)}* is shown if `maxspeed:backward` is set + +*The maximum allowed speed when travelling {direction_absolute(,180)} on this road is {canonical(maxspeed:backward)}* is shown if `maxspeed:backward` is set. This tagrendering is only visible in the popup if the following condition is met: _forward_backward=yes | maxspeed:backward~.+ | maxspeed:forward~.+ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -89,11 +93,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/medical_shops.md b/Docs/Layers/medical_shops.md index feebdadd5a..dafc681878 100644 --- a/Docs/Layers/medical_shops.md +++ b/Docs/Layers/medical_shops.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -58,7 +60,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -141,6 +143,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -214,6 +217,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -237,7 +242,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -284,22 +289,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -473,7 +482,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -490,14 +500,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -507,7 +519,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -518,7 +531,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -536,6 +550,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -545,7 +560,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -596,6 +612,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -638,7 +675,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -657,7 +695,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -666,7 +705,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -675,7 +715,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -684,7 +725,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -693,7 +735,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -702,7 +745,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -711,7 +755,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -750,7 +795,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -786,7 +832,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -843,7 +890,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -856,11 +903,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -869,6 +918,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -893,6 +943,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -907,7 +958,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -927,7 +979,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -962,7 +1015,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1032,7 +1086,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1122,7 +1177,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1158,7 +1214,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1231,6 +1288,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1246,6 +1304,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1263,6 +1322,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1280,6 +1340,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1321,6 +1382,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1337,6 +1399,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1372,7 +1435,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1391,7 +1457,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1408,7 +1477,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1467,6 +1539,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1483,6 +1556,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1493,6 +1567,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1502,16 +1577,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/memorial.md b/Docs/Layers/memorial.md index d6381c5aa1..72b530941d 100644 --- a/Docs/Layers/memorial.md +++ b/Docs/Layers/memorial.md @@ -109,12 +109,14 @@ Elements must match **any** of the following expressions: ### images_no_blur Same as `images`, but uploaded request to disable blurring to the panoramax server _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload(,,,true)}* ### memorial-type The question is `What type of memorial is this?` -*This is a {memorial}* is shown if `memorial` is set + +*This is a {memorial}* is shown if `memorial` is set. - *This is a statue* is shown if with memorial=statue - *This is a plaque* is shown if with memorial=plaque @@ -138,7 +140,8 @@ This tagrendering has labels ### inscription The question is `What is the inscription on this memorial?` -*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set + +*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set. - *This memorial does not have an inscription* is shown if with not:inscription=yes @@ -148,7 +151,8 @@ This tagrendering has labels ### memorial-wikidata The question is `What is the Wikipedia page about this memorial?` -*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set + +*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set. This tagrendering has labels `memorial-specific` @@ -157,7 +161,8 @@ This tagrendering has labels ### subject-wikidata The question is `What is the Wikipedia page about the person or event that is remembered here?` -*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering has labels `memorial-specific` @@ -166,7 +171,8 @@ This tagrendering has labels ### start_date The question is `When was this memorial installed?` -*Placed on {start_date}* is shown if `start_date` is set + +*Placed on {start_date}* is shown if `start_date` is set. ### bench-backrest @@ -194,7 +200,8 @@ This tagrendering has labels ### bench-seats The question is `How many seats does this bench have?` -*This bench has {seats} seats* is shown if `seats` is set + +*This bench has {seats} seats* is shown if `seats` is set. - *This bench does not have separated seats* is shown if with seats:separated=no @@ -205,7 +212,8 @@ This tagrendering has labels ### bench-material The question is `What is the bench (seating) made from?` -*Material: {material}* is shown if `material` is set + +*Material: {material}* is shown if `material` is set. - *The seating is made from wood* is shown if with material=wood - *The seating is made from metal* is shown if with material=metal @@ -221,7 +229,8 @@ This tagrendering has labels ### bench-direction The question is `In which direction are you looking when sitting on the bench?` -*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set + +*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bench & two_sided!=yes This tagrendering has labels @@ -230,7 +239,8 @@ This tagrendering has labels ### bench-colour The question is `Which colour does this bench have?` -*Colour: {colour}* is shown if `colour` is set + +*Colour: {colour}* is shown if `colour` is set. - *Colour: brown* is shown if with colour=brown - *Colour: green* is shown if with colour=green @@ -248,7 +258,8 @@ This tagrendering has labels ### bench-survey:date The question is `When was this bench last surveyed?` -*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Surveyed today!* is shown if with survey:date= @@ -259,7 +270,8 @@ This tagrendering has labels ### bench-inscription The question is `Does this bench have an inscription?` -*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set + +*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set. - *This bench does not have an inscription* is shown if with not:inscription=yes - *This bench probably does not not have an inscription* is shown if with inscription=. _This option cannot be chosen as answer_ @@ -282,6 +294,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -291,16 +304,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/mobility_hub.md b/Docs/Layers/mobility_hub.md index 1bf5707523..eb3d230bc8 100644 --- a/Docs/Layers/mobility_hub.md +++ b/Docs/Layers/mobility_hub.md @@ -66,19 +66,22 @@ Elements must match the expression **noname=yes ### network The question is `To which network does this mobility hub belong to?` -*This mobility hub belongs to the network {network}* is shown if `network` is set + +*This mobility hub belongs to the network {network}* is shown if `network` is set. - *This mobility hub does not belong to a network* is shown if with nonetwork=yes - *This mobility hub belongs to the Groningen-Drenthe network* is shown if with network=Groningen-Drenthe @@ -88,7 +91,8 @@ The question is `To which network does this mobility hub belong to?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -108,6 +112,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -117,11 +122,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/mountain_rescue.md b/Docs/Layers/mountain_rescue.md index 6fc8de3d60..e070dc359d 100644 --- a/Docs/Layers/mountain_rescue.md +++ b/Docs/Layers/mountain_rescue.md @@ -51,11 +51,13 @@ Elements must match the expression **access=yes & fee= - *Not accessible* is shown if with access=no & fee= @@ -110,7 +112,8 @@ The question is `Is this nature reserve accessible to the public?` ### Operator tag The question is `Who operates this area?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. - *Operated by Natuurpunt* is shown if with operator=Natuurpunt - *Operated by {operator}* is shown if with operator~^((n|N)atuurpunt.*)$. _This option cannot be chosen as answer_ @@ -119,7 +122,8 @@ The question is `Who operates this area?` ### Name tag The question is `What is the name of this area?` -*This area is named {name}* is shown if `name` is set + +*This area is named {name}* is shown if `name` is set. - *This area doesn't have a name* is shown if with noname=yes & name= @@ -136,7 +140,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -146,37 +151,44 @@ This tagrendering has labels ### Curator The question is `Whom is the curator of this nature reserve?` -*{curator} is the curator of this nature reserve* is shown if `curator` is set + +*{curator} is the curator of this nature reserve* is shown if `curator` is set. ### Email The question is `What email address can one send to with questions and problems with this nature reserve?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. ### phone The question is `What phone number can one call to with questions and problems with this nature reserve?` -*{phone}* is shown if `phone` is set + +*{phone}* is shown if `phone` is set. ### Non-editable description _This tagrendering has no question and is thus read-only_ -*Extra information: {description}* is shown if `description` is set + +*Extra information: {description}* is shown if `description` is set. ### Editable description The question is `Is there some extra info?` -*Extra info: {description:0}* is shown if `description:0` is set + +*Extra info: {description:0}* is shown if `description:0` is set. ### Surface area _This tagrendering has no question and is thus read-only_ + *Surface area: {_surface:ha}Ha* ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -184,6 +196,7 @@ The question is `What is the corresponding Wikidata entity?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -193,11 +206,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/not_cyclestreets.md b/Docs/Layers/not_cyclestreets.md index 060cd74ce7..b8cf292b1c 100644 --- a/Docs/Layers/not_cyclestreets.md +++ b/Docs/Layers/not_cyclestreets.md @@ -58,6 +58,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### is_cyclestreet @@ -87,13 +88,15 @@ This tagrendering is only visible in the popup if the following condition is met ### future_cyclestreet The question is `When will this street become a cyclestreet?` -*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set + +*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set. This tagrendering is only visible in the popup if the following condition is met: proposed:cyclestreet=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -103,11 +106,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/note.md b/Docs/Layers/note.md index dcb08114f1..d025298399 100644 --- a/Docs/Layers/note.md +++ b/Docs/Layers/note.md @@ -58,26 +58,31 @@ Elements must match the expression **date_created~.+** ### conversation _This tagrendering has no question and is thus read-only_ + *{visualize_note_comments()}* ### add_image _This tagrendering has no question and is thus read-only_ + *{add_image_to_note()}* ### comment _This tagrendering has no question and is thus read-only_ + *{add_note_comment()}* ### nearby-images _This tagrendering has no question and is thus read-only_ + *

Nearby images

The pictures below are nearby geotagged images and might be helpful to handle this note.{nearby_images(open,yes)}* ### report-contributor _This tagrendering has no question and is thus read-only_ + *Report {_first_user} for spam or inappropriate messages* This tagrendering is only visible in the popup if the following condition is met: _opened_by_anonymous_user=false @@ -85,11 +90,13 @@ This tagrendering is only visible in the popup if the following condition is met ### report-note _This tagrendering has no question and is thus read-only_ + *Report this note as spam or inappropriate* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -99,6 +106,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/observation_tower.md b/Docs/Layers/observation_tower.md index 802a391fea..3e0f6f8259 100644 --- a/Docs/Layers/observation_tower.md +++ b/Docs/Layers/observation_tower.md @@ -82,19 +82,22 @@ Elements must match the expression **noname=yes ### Height The question is `What is the height of this tower?` -*This tower is {height} high* is shown if `height` is set + +*This tower is {height} high* is shown if `height` is set. ### access @@ -106,7 +109,8 @@ The question is `Can this tower be visited?` ### Fee The question is `How much does one have to pay to enter this tower?` -*Visiting this tower costs {charge}* is shown if `charge` is set + +*Visiting this tower costs {charge}* is shown if `charge` is set. - *Free to visit* is shown if with fee=no & charge= @@ -125,7 +129,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -135,7 +140,8 @@ This tagrendering has labels ### step_count The question is `How much individual steps does one have to climb to reach the top of this tower?` -*This tower has {step_count} steps to reach the top* is shown if `step_count` is set + +*This tower has {step_count} steps to reach the top* is shown if `step_count` is set. This tagrendering is only visible in the popup if the following condition is met: access=yes | access=guided @@ -151,7 +157,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Operator The question is `Who maintains this tower?` -*Maintained by {operator}* is shown if `operator` is set + +*Maintained by {operator}* is shown if `operator` is set. ### wheelchair-access @@ -167,7 +174,8 @@ This tagrendering is only visible in the popup if the following condition is met ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -175,6 +183,7 @@ The question is `What is the corresponding Wikidata entity?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -184,11 +193,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/onwheels_entrance_data.md b/Docs/Layers/onwheels_entrance_data.md index b945148d4f..4f42da8993 100644 --- a/Docs/Layers/onwheels_entrance_data.md +++ b/Docs/Layers/onwheels_entrance_data.md @@ -51,11 +51,13 @@ Elements must match **all** of the following expressions: ### _stolen_entrances _This tagrendering has no question and is thus read-only_ + *{steal(_enclosing_building,walls_and_buildings.entrance_info; walls_and_buildings.biggest_width)}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -65,6 +67,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/osm_community_index.md b/Docs/Layers/osm_community_index.md index dd593aef98..a915d42f5a 100644 --- a/Docs/Layers/osm_community_index.md +++ b/Docs/Layers/osm_community_index.md @@ -48,6 +48,7 @@ Elements must match the expression **resources~.+** ### country_name The name of the country _This tagrendering has no question and is thus read-only_ + *{nameEn} {emojiFlag}* This tagrendering is only visible in the popup if the following condition is met: level=country @@ -55,6 +56,7 @@ This tagrendering is only visible in the popup if the following condition is met ### community_links Community Links (Discord, meetups, Slack groups, IRC channels, mailing lists etc...) _This tagrendering has no question and is thus read-only_ + *{_community_links}* This tagrendering is only visible in the popup if the following condition is met: _community_links~.+ @@ -62,6 +64,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -71,6 +74,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/outdoor_seating.md b/Docs/Layers/outdoor_seating.md index bfb3049539..16ffab237e 100644 --- a/Docs/Layers/outdoor_seating.md +++ b/Docs/Layers/outdoor_seating.md @@ -84,6 +84,7 @@ Elements must match the expression ** *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -116,7 +118,8 @@ The question is `What are the opening hours of {title()}?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -152,7 +155,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -194,6 +198,7 @@ The question is `Is smoking allowed at {title()}?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -203,11 +208,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parcel_lockers.md b/Docs/Layers/parcel_lockers.md index 207a9915ca..22615b38d9 100644 --- a/Docs/Layers/parcel_lockers.md +++ b/Docs/Layers/parcel_lockers.md @@ -77,22 +77,26 @@ Elements must match the expression ** *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -100,7 +104,8 @@ The question is `What are the opening hours of {title()}?` ### ref The question is `What is the reference number/identifier of this parcel locker?` -*This parcel locker has the reference {ref}* is shown if `ref` is set + +*This parcel locker has the reference {ref}* is shown if `ref` is set. ### mail-in @@ -120,6 +125,7 @@ The question is `Can you pick up packages from this parcel locker?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -129,16 +135,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parking.md b/Docs/Layers/parking.md index 04c876082f..ce10b2bad6 100644 --- a/Docs/Layers/parking.md +++ b/Docs/Layers/parking.md @@ -75,11 +75,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -118,7 +121,8 @@ The question is `What kind of parking is this?` ### capacity-disabled The question is `How many disabled parking spots are there at this parking?` -*There are {capacity:disabled} disabled parking spots* is shown if `capacity:disabled` is set + +*There are {capacity:disabled} disabled parking spots* is shown if `capacity:disabled` is set. - *There are disabled parking spots, but it is not known how many* is shown if with capacity:disabled=yes. _This option cannot be chosen as answer_ - *There are no disabled parking spots* is shown if with capacity:disabled=no. _This option cannot be chosen as answer_ @@ -127,18 +131,21 @@ The question is `How many disabled parking spots are there at this parking?` ### capacity The question is `How many parking spots are there at this parking?` -*There are {capacity} parking spots* is shown if `capacity` is set + +*There are {capacity} parking spots* is shown if `capacity` is set. ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -148,16 +155,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parking_spaces.md b/Docs/Layers/parking_spaces.md index 49323ebf25..47e34f51d5 100644 --- a/Docs/Layers/parking_spaces.md +++ b/Docs/Layers/parking_spaces.md @@ -53,6 +53,7 @@ Elements must match the expression **capacity=1 @@ -84,6 +86,7 @@ _This tagrendering has no question and is thus read-only_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -93,11 +96,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parking_spaces_disabled.md b/Docs/Layers/parking_spaces_disabled.md index 9c2f6b9b69..55911ab622 100644 --- a/Docs/Layers/parking_spaces_disabled.md +++ b/Docs/Layers/parking_spaces_disabled.md @@ -47,16 +47,19 @@ Elements must match the expression **noref=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -145,11 +148,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parks_and_forests_without_etymology.md b/Docs/Layers/parks_and_forests_without_etymology.md index 89a81ff1ab..c1cff45d72 100644 --- a/Docs/Layers/parks_and_forests_without_etymology.md +++ b/Docs/Layers/parks_and_forests_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/parks_without_etymology.md b/Docs/Layers/parks_without_etymology.md index fdbe74233a..fca29a5e97 100644 --- a/Docs/Layers/parks_without_etymology.md +++ b/Docs/Layers/parks_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/pet_shops.md b/Docs/Layers/pet_shops.md index 9fd5f920f7..ce806b8b36 100644 --- a/Docs/Layers/pet_shops.md +++ b/Docs/Layers/pet_shops.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -58,7 +60,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -136,6 +138,7 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -209,6 +212,8 @@ Elements must match the expression ** _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -279,22 +284,26 @@ Elements must match the expression **
*Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -468,7 +477,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -485,14 +495,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -502,7 +514,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -513,7 +526,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -531,6 +545,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -540,7 +555,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -591,6 +607,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -633,7 +670,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -652,7 +690,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -661,7 +700,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -670,7 +710,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -679,7 +720,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -688,7 +730,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -697,7 +740,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -706,7 +750,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -745,7 +790,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -781,7 +827,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -838,7 +885,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -851,11 +898,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -864,6 +913,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -888,6 +938,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -902,7 +953,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -922,7 +974,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -957,7 +1010,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1027,7 +1081,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1117,7 +1172,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1153,7 +1209,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1226,6 +1283,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1241,6 +1299,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1258,6 +1317,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1275,6 +1335,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1316,6 +1377,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1332,6 +1394,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1367,7 +1430,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1386,7 +1452,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1403,7 +1472,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1462,6 +1534,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1478,6 +1551,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1488,6 +1562,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1497,16 +1572,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/pharmacy.md b/Docs/Layers/pharmacy.md index cc1e674f42..169b0a43f3 100644 --- a/Docs/Layers/pharmacy.md +++ b/Docs/Layers/pharmacy.md @@ -97,29 +97,34 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -129,7 +134,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -140,7 +146,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -150,6 +157,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -158,6 +166,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -169,7 +178,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -180,7 +190,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -189,7 +200,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -208,11 +220,13 @@ The question is `Which methods of payment are accepted here?` ### wheelchair _This tagrendering has no question and is thus read-only_ + *wheelchair* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -222,16 +236,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/physiotherapist.md b/Docs/Layers/physiotherapist.md index 33e05a9ca5..1605701ae9 100644 --- a/Docs/Layers/physiotherapist.md +++ b/Docs/Layers/physiotherapist.md @@ -88,17 +88,20 @@ Elements must match the expression **opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -107,7 +110,8 @@ The question is `What are the opening hours of {title()}?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -117,7 +121,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -128,7 +133,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -138,6 +144,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -146,6 +153,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -157,7 +165,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -168,7 +177,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -177,7 +187,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -188,6 +199,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -197,16 +209,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/picnic_table.md b/Docs/Layers/picnic_table.md index 8e23c71f4e..b4f5e69bdd 100644 --- a/Docs/Layers/picnic_table.md +++ b/Docs/Layers/picnic_table.md @@ -67,11 +67,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -95,7 +98,8 @@ This tagrendering has labels ### picnic_table-material The question is `What material is this picnic table made of?` -*This picnic table is made of {material}* is shown if `material` is set + +*This picnic table is made of {material}* is shown if `material` is set. - *This is a wooden picnic table* is shown if with material=wood - *This is a concrete picnic table* is shown if with material=concrete @@ -105,6 +109,7 @@ The question is `What material is this picnic table made of?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -114,16 +119,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/play_forest.md b/Docs/Layers/play_forest.md index 45594cd24c..15029879dd 100644 --- a/Docs/Layers/play_forest.md +++ b/Docs/Layers/play_forest.md @@ -68,12 +68,14 @@ Elements must match the expression **Agentschap Natuur en Bos* is shown if with operator~^([aA][nN][bB])$. _This option cannot be chosen as answer_ - *Dit gebied wordt beheerd door het Agentschap Natuur en Bos* is shown if with operator=Agenstchap Natuur en Bos @@ -88,31 +90,37 @@ The question is `Wanneer is deze speelzone toegankelijk?` ### play_forest-email The question is `Wie kan men emailen indien er problemen zijn met de speelzone?` -*De bevoegde dienst kan bereikt worden via {email}* is shown if `email` is set + +*De bevoegde dienst kan bereikt worden via {email}* is shown if `email` is set. ### play_forest-phone The question is `Wie kan men bellen indien er problemen zijn met de speelzone?` -*De bevoegde dienst kan getelefoneerd worden via {phone}* is shown if `phone` is set + +*De bevoegde dienst kan getelefoneerd worden via {phone}* is shown if `phone` is set. ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### play_forest-reviews _This tagrendering has no question and is thus read-only_ + *{reviews(name, play_forest)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/playground.md b/Docs/Layers/playground.md index 5ace27b36e..0e056e7e75 100644 --- a/Docs/Layers/playground.md +++ b/Docs/Layers/playground.md @@ -104,11 +104,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### fee @@ -121,7 +123,8 @@ The question is `Does one have to pay to use this playground?` ### playground-surface The question is `Which is the surface of this playground?` -*The surface is {surface}* is shown if `surface` is set + +*The surface is {surface}* is shown if `surface` is set. - *The surface is grass* is shown if with surface=grass - *The surface is sand* is shown if with surface=sand @@ -148,7 +151,8 @@ This tagrendering has labels ### playground-min_age The question is `What is the minimum age required to access this playground?` -*Accessible to kids older than {min_age} years* is shown if `min_age` is set + +*Accessible to kids older than {min_age} years* is shown if `min_age` is set. This tagrendering has labels `extra` @@ -156,7 +160,8 @@ This tagrendering has labels ### playground-max_age The question is `What is the maximum age allowed to access this playground?` -*Accessible to kids of at most {max_age}* is shown if `max_age` is set + +*Accessible to kids of at most {max_age}* is shown if `max_age` is set. This tagrendering has labels `extra` @@ -164,7 +169,8 @@ This tagrendering has labels ### playground-operator The question is `Who operates this playground?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### playground-access @@ -180,7 +186,8 @@ The question is `Is this playground accessible to the general public?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -190,12 +197,14 @@ This tagrendering has labels ### playground-email The question is `What is the email address of the playground maintainer?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. ### playground-phone The question is `What is the phone number of the playground maintainer?` -*{phone}* is shown if `phone` is set + +*{phone}* is shown if `phone` is set. ### Playground-wheelchair @@ -208,7 +217,8 @@ The question is `Is this playground accessible to wheelchair users?` ### playground-opening_hours The question is `When is this playground accessible?` -*{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Accessible from sunrise till sunset* is shown if with opening_hours=sunrise-sunset - *Always accessible* is shown if with opening_hours=24/7 @@ -216,33 +226,39 @@ The question is `When is this playground accessible?` ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### playground-reviews _This tagrendering has no question and is thus read-only_ + *{reviews(name, playground)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/playground_equipment.md b/Docs/Layers/playground_equipment.md index 0768939dd7..860aa98f15 100644 --- a/Docs/Layers/playground_equipment.md +++ b/Docs/Layers/playground_equipment.md @@ -62,12 +62,14 @@ Elements must match the expression **playground~.+** ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type The question is `What kind of device is this?` -*This is a {playground}* is shown if `playground` is set + +*This is a {playground}* is shown if `playground` is set. - *This is a swing* is shown if with playground=swing - *This is a structure consisting of several connected playground devices* is shown if with playground=structure @@ -104,6 +106,7 @@ The question is `Is this device accessible by wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -113,16 +116,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/police.md b/Docs/Layers/police.md index 5fa06bcad9..9ad5e4e87c 100644 --- a/Docs/Layers/police.md +++ b/Docs/Layers/police.md @@ -89,27 +89,32 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### police_name The question is `What is the name of this police facility?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### presettypeselect _This tagrendering has no question and is thus read-only_ + *{preset_type_select()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -119,7 +124,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -130,7 +136,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -140,7 +147,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -156,6 +164,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -165,16 +174,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/post_offices_with_atm.md b/Docs/Layers/post_offices_with_atm.md index 60d196efb0..14885334f8 100644 --- a/Docs/Layers/post_offices_with_atm.md +++ b/Docs/Layers/post_offices_with_atm.md @@ -93,12 +93,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -108,7 +110,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -119,7 +122,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -129,7 +133,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours for this post office?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -143,14 +148,16 @@ The question is `Is this a post partner?` ### post_offic_brand The question is `To which brand does this post office belong?` -*This is a {brand} post office* is shown if `brand` is set + +*This is a {brand} post office* is shown if `brand` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=post_office ### partner-brand The question is `For which brand does this location offer services?` -*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set + +*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set. - *This location offers services for DHL* is shown if with post_office:brand=DHL - *This location offers services for DPD* is shown if with post_office:brand=DPD @@ -166,7 +173,8 @@ This tagrendering is only visible in the popup if the following condition is met ### letter-from The question is `Can you post a letter here?` -*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set + +*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set. - *You can post letters here* is shown if with post_office:letter_from=yes - *You can't post letters here* is shown if with post_office:letter_from=no @@ -174,7 +182,8 @@ The question is `Can you post a letter here?` ### parcel-from The question is `Can you send a parcel here?` -*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set + +*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set. - *You can send parcels here* is shown if with post_office:parcel_from=yes - *You can't send parcels here* is shown if with post_office:parcel_from=no @@ -182,7 +191,8 @@ The question is `Can you send a parcel here?` ### parcel-pickup The question is `Can you pick up missed parcels here?` -*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set + +*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set. - *You can pick up missed parcels here* is shown if with post_office:parcel_pickup=yes - *You can't pick up missed parcels here* is shown if with post_office:parcel_pickup=no @@ -190,7 +200,8 @@ The question is `Can you pick up missed parcels here?` ### parcel-to The question is `Can you send parcels to here for pickup?` -*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set + +*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set. - *You can send parcels to here for pickup* is shown if with post_office:parcel_to=yes - *You can't send parcels to here for pickup* is shown if with post_office:parcel_to=no @@ -198,7 +209,8 @@ The question is `Can you send parcels to here for pickup?` ### stamps The question is `Can you buy stamps here?` -*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set + +*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set. - *You can buy stamps here* is shown if with post_office:stamps=yes - *You can't buy stamps here* is shown if with post_office:stamps=no @@ -214,6 +226,7 @@ The question is `Does this post office have an ATM?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -223,11 +236,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/postboxes.md b/Docs/Layers/postboxes.md index 6b0f690027..a025a2cea8 100644 --- a/Docs/Layers/postboxes.md +++ b/Docs/Layers/postboxes.md @@ -63,21 +63,25 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -115,7 +117,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -126,7 +129,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -136,7 +140,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours for this post office?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -150,14 +155,16 @@ The question is `Is this a post partner?` ### post_offic_brand The question is `To which brand does this post office belong?` -*This is a {brand} post office* is shown if `brand` is set + +*This is a {brand} post office* is shown if `brand` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=post_office ### partner-brand The question is `For which brand does this location offer services?` -*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set + +*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set. - *This location offers services for DHL* is shown if with post_office:brand=DHL - *This location offers services for DPD* is shown if with post_office:brand=DPD @@ -173,7 +180,8 @@ This tagrendering is only visible in the popup if the following condition is met ### letter-from The question is `Can you post a letter here?` -*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set + +*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set. - *You can post letters here* is shown if with post_office:letter_from=yes - *You can't post letters here* is shown if with post_office:letter_from=no @@ -181,7 +189,8 @@ The question is `Can you post a letter here?` ### parcel-from The question is `Can you send a parcel here?` -*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set + +*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set. - *You can send parcels here* is shown if with post_office:parcel_from=yes - *You can't send parcels here* is shown if with post_office:parcel_from=no @@ -189,7 +198,8 @@ The question is `Can you send a parcel here?` ### parcel-pickup The question is `Can you pick up missed parcels here?` -*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set + +*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set. - *You can pick up missed parcels here* is shown if with post_office:parcel_pickup=yes - *You can't pick up missed parcels here* is shown if with post_office:parcel_pickup=no @@ -197,7 +207,8 @@ The question is `Can you pick up missed parcels here?` ### parcel-to The question is `Can you send parcels to here for pickup?` -*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set + +*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set. - *You can send parcels to here for pickup* is shown if with post_office:parcel_to=yes - *You can't send parcels to here for pickup* is shown if with post_office:parcel_to=no @@ -205,7 +216,8 @@ The question is `Can you send parcels to here for pickup?` ### stamps The question is `Can you buy stamps here?` -*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set + +*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set. - *You can buy stamps here* is shown if with post_office:stamps=yes - *You can't buy stamps here* is shown if with post_office:stamps=no @@ -221,6 +233,7 @@ The question is `Does this post office have an ATM?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -230,11 +243,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/pt_shelter.md b/Docs/Layers/pt_shelter.md index 75382c03ad..23fa085243 100644 --- a/Docs/Layers/pt_shelter.md +++ b/Docs/Layers/pt_shelter.md @@ -46,11 +46,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -60,11 +62,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/public_bookcase.md b/Docs/Layers/public_bookcase.md index d97a9e6b4a..452bd98995 100644 --- a/Docs/Layers/public_bookcase.md +++ b/Docs/Layers/public_bookcase.md @@ -90,24 +90,28 @@ Elements must match the expression **noname=yes & name= ### public_bookcase-capacity The question is `How many books fit into this public bookcase?` -*{capacity} books fit in this bookcase* is shown if `capacity` is set + +*{capacity} books fit in this bookcase* is shown if `capacity` is set. ### bookcase-booktypes The question is `What kind of books can be found in this public bookcase?` -*This place mostly serves {books}* is shown if `books` is set + +*This place mostly serves {books}* is shown if `books` is set. - *Mostly children books* is shown if with books=children - *Mostly books for adults* is shown if with books=adults @@ -132,19 +136,22 @@ This tagrendering is only visible in the popup if the following condition is met ### public_bookcase-operator The question is `Who maintains this public bookcase?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### public_bookcase-brand The question is `Is this public bookcase part of a bigger network?` -*This public bookcase is part of {brand}* is shown if `brand` is set + +*This public bookcase is part of {brand}* is shown if `brand` is set. - *This public bookcase is not part of a bigger network* is shown if with nobrand=yes ### public_bookcase-ref The question is `What is the reference number of this public bookcase?` -*The reference number of this public bookcase within {brand} is {ref}* is shown if `ref` is set + +*The reference number of this public bookcase within {brand} is {ref}* is shown if `ref` is set. - *This bookcase is not part of a bigger network* is shown if with nobrand=yes & brand= & ref= @@ -153,16 +160,19 @@ This tagrendering is only visible in the popup if the following condition is met ### public_bookcase-start_date The question is `When was this public bookcase installed?` -*Installed on {start_date}* is shown if `start_date` is set + +*Installed on {start_date}* is shown if `start_date` is set. ### public_bookcase-website The question is `Is there a website with more information about this public bookcase?` -*{link(More info on the website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More info on the website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -172,16 +182,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/railway_platforms.md b/Docs/Layers/railway_platforms.md index 98f18b8357..e167734c9e 100644 --- a/Docs/Layers/railway_platforms.md +++ b/Docs/Layers/railway_platforms.md @@ -50,11 +50,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -78,6 +81,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -87,6 +91,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/rainbow_crossing_high_zoom.md b/Docs/Layers/rainbow_crossing_high_zoom.md index 95ac39d902..a3c956fc7d 100644 --- a/Docs/Layers/rainbow_crossing_high_zoom.md +++ b/Docs/Layers/rainbow_crossing_high_zoom.md @@ -46,6 +46,7 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -93,7 +96,8 @@ This tagrendering has labels ### desk-height The question is `What is the height of the reception desk? ` -*The height of the desk is {canonical(desk:height)}* is shown if `desk:height` is set + +*The height of the desk is {canonical(desk:height)}* is shown if `desk:height` is set. ### induction-loop An accessibility feature: induction loops are for hard-hearing persons which have an FM-receiver. @@ -105,6 +109,7 @@ The question is `Does this place have an audio induction loop for people with re ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -114,11 +119,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/recycling.md b/Docs/Layers/recycling.md index c48248e16b..827c915980 100644 --- a/Docs/Layers/recycling.md +++ b/Docs/Layers/recycling.md @@ -95,6 +95,7 @@ Elements must match the expression **noname=yes @@ -160,12 +162,14 @@ The question is `What can be recycled here?` ### operator The question is `What company operates this recycling facility?` -*This recycling facility is operated by {operator}* is shown if `operator` is set + +*This recycling facility is operated by {operator}* is shown if `operator` is set. ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -176,7 +180,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -188,7 +193,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -199,7 +205,8 @@ This tagrendering has labels ### opening_hours_24_7 The question is `What are the opening hours of this recycling facility?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -207,7 +214,8 @@ The question is `What are the opening hours of this recycling facility?` ### access The question is `Who can use this recycling facility?` -*This recycling facility can be used by {access}* is shown if `access` is set + +*This recycling facility can be used by {access}* is shown if `access` is set. - *Everyone can use this recycling facility* is shown if with access=yes - *Only residents can use this recycling facility* is shown if with access=residents @@ -216,7 +224,8 @@ The question is `Who can use this recycling facility?` ### colour The question is `What color is this recycling container?` -*This recycling container is {colour}* is shown if `colour` is set + +*This recycling container is {colour}* is shown if `colour` is set. - *This recycling container is coloured blue* is shown if with colour=blue - *This recycling container is coloured green* is shown if with colour=green @@ -231,13 +240,15 @@ This tagrendering is only visible in the popup if the following condition is met ### survey_date The question is `When was this object last surveyed?` -*This object was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This object was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -247,16 +258,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/route_marker.md b/Docs/Layers/route_marker.md index 105cf5a833..ac2b9712b0 100644 --- a/Docs/Layers/route_marker.md +++ b/Docs/Layers/route_marker.md @@ -53,6 +53,7 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -138,7 +141,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -149,7 +153,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -159,6 +164,7 @@ This tagrendering has labels ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -167,6 +173,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -178,7 +185,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -189,7 +197,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -198,7 +207,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -209,7 +219,8 @@ This tagrendering has labels ### capacity The question is `How much students can at most enroll in this school?` -*This school can enroll at most {capacity} students* is shown if `capacity` is set + +*This school can enroll at most {capacity} students* is shown if `capacity` is set. ### education-level-belgium @@ -269,7 +280,8 @@ The question is `Which genders can enroll at this school?` ### pedagogy The question is `What educational theory is applied on this school?` -*This school uses {pedagogy}* is shown if `pedagogy` is set + +*This school uses {pedagogy}* is shown if `pedagogy` is set. - *This school does not use a specific pedagogy* is shown if with pedagogy=mainstream - *This school uses the Montessori method of education* is shown if with pedagogy=montessori @@ -299,12 +311,14 @@ This tagrendering is only visible in the popup if the following condition is met ### school-language _This tagrendering has no question and is thus read-only_ + *{language_chooser(language,What is the main language of this school?
What language is spoken with the students in non-language related courses and with the administration?
,,&LBRACElanguage&LPARENS&RPARENS&RBRACE is the main language of this school,The following languages are used in this school:&LBRACElist&LPARENS&RPARENS&RBRACE,The main language of this school is unknown)}* ### uniform The question is `Do pupils have to wear a uniform or obey a dresscode?` -*{dress_code}* is shown if `dress_code` is set + +*{dress_code}* is shown if `dress_code` is set. - *Students must wear a uniform, which is extensively described* is shown if with dress_code=uniform - *Students must wear clothes in a specific colour scheme* is shown if with dress_code=obligated_colour @@ -317,7 +331,8 @@ The question is `Do pupils have to wear a uniform or obey a dresscode?` ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -325,6 +340,7 @@ The question is `What is the corresponding Wikidata entity?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -334,11 +350,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/scouting_group.md b/Docs/Layers/scouting_group.md index e90b98e330..f5ae9bee33 100644 --- a/Docs/Layers/scouting_group.md +++ b/Docs/Layers/scouting_group.md @@ -74,17 +74,20 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -94,7 +97,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -105,7 +109,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -115,26 +120,31 @@ This tagrendering has labels ### start_date The question is `When was this group founded?` -*This group was founded at {start_date}* is shown if `start_date` is set + +*This group was founded at {start_date}* is shown if `start_date` is set. ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shelter.md b/Docs/Layers/shelter.md index 59bf6eef02..2725e1f91e 100644 --- a/Docs/Layers/shelter.md +++ b/Docs/Layers/shelter.md @@ -52,12 +52,14 @@ Elements must match the expression **shelter_type=public_transport - *This is a shelter protecting from rain at a picnic site.* is shown if with shelter_type=picnic_shelter @@ -70,6 +72,7 @@ The question is `What kind of shelter is this?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -79,11 +82,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shop_dog_friendly.md b/Docs/Layers/shop_dog_friendly.md index e4c85d8a33..b29e5591e8 100644 --- a/Docs/Layers/shop_dog_friendly.md +++ b/Docs/Layers/shop_dog_friendly.md @@ -34,6 +34,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -57,7 +59,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -133,6 +135,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -206,6 +209,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -229,7 +234,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -276,22 +281,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -465,7 +474,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -482,14 +492,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -499,7 +511,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -510,7 +523,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -528,6 +542,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -537,7 +552,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -588,6 +604,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -630,7 +667,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -649,7 +687,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -658,7 +697,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -667,7 +707,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -676,7 +717,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -685,7 +727,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -694,7 +737,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -703,7 +747,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -742,7 +787,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -778,7 +824,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -835,7 +882,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -848,11 +895,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -861,6 +910,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -885,6 +935,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -899,7 +950,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -919,7 +971,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -954,7 +1007,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1024,7 +1078,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1114,7 +1169,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1150,7 +1206,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1223,6 +1280,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1238,6 +1296,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1255,6 +1314,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1272,6 +1332,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1313,6 +1374,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1329,6 +1391,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1364,7 +1427,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1383,7 +1449,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1400,7 +1469,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1459,6 +1531,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1475,6 +1548,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1485,6 +1559,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1494,16 +1569,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shops.md b/Docs/Layers/shops.md index c23ec70012..709b5305a6 100644 --- a/Docs/Layers/shops.md +++ b/Docs/Layers/shops.md @@ -33,6 +33,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -56,7 +58,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -149,6 +151,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -222,6 +225,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -245,7 +250,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -292,22 +297,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -481,7 +490,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -498,14 +508,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -515,7 +527,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -526,7 +539,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -544,6 +558,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -553,7 +568,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -604,6 +620,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -646,7 +683,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -665,7 +703,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -674,7 +713,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -683,7 +723,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -692,7 +733,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -701,7 +743,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -710,7 +753,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -719,7 +763,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -758,7 +803,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -794,7 +840,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -851,7 +898,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -864,11 +911,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -877,6 +926,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -901,6 +951,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -915,7 +966,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -935,7 +987,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -970,7 +1023,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1040,7 +1094,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1130,7 +1185,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1166,7 +1222,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1239,6 +1296,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1254,6 +1312,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1271,6 +1330,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1288,6 +1348,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1329,6 +1390,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1345,6 +1407,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1380,7 +1443,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1399,7 +1465,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1416,7 +1485,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1475,6 +1547,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1491,6 +1564,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1501,6 +1575,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1510,16 +1585,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shops_glutenfree.md b/Docs/Layers/shops_glutenfree.md index 90cd729f4b..69c9fa5b96 100644 --- a/Docs/Layers/shops_glutenfree.md +++ b/Docs/Layers/shops_glutenfree.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -57,7 +59,7 @@ A shop - [organic](#organic) - [sugar_free](#sugar_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -135,6 +137,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -208,6 +211,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -230,7 +235,7 @@ Elements must match **all** of the following expressions: | [organic](#organic) | Does this shop offer organic products?
3 options | | _Multiple choice only_ | | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -277,11 +282,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -299,12 +306,14 @@ This tagrendering has labels ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -478,7 +487,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -495,14 +505,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -512,7 +524,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -523,7 +536,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -541,6 +555,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -550,7 +565,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -601,6 +617,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -643,7 +680,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -662,7 +700,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -671,7 +710,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -680,7 +720,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -689,7 +730,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -698,7 +740,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -707,7 +750,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -716,7 +760,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -755,7 +800,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -791,7 +837,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -835,7 +882,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -848,11 +895,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -861,6 +910,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -885,6 +935,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -899,7 +950,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -919,7 +971,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -954,7 +1007,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1024,7 +1078,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1114,7 +1169,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1150,7 +1206,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1223,6 +1280,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1238,6 +1296,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1255,6 +1314,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1272,6 +1332,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1313,6 +1374,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1329,6 +1391,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1364,7 +1427,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1383,7 +1449,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1400,7 +1469,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1459,6 +1531,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1475,6 +1548,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1485,6 +1559,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1494,16 +1569,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shops_lactosefree.md b/Docs/Layers/shops_lactosefree.md index 81319a4078..cbe0b0a002 100644 --- a/Docs/Layers/shops_lactosefree.md +++ b/Docs/Layers/shops_lactosefree.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -57,7 +59,7 @@ A shop - [organic](#organic) - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -135,6 +137,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -208,6 +211,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -230,7 +235,7 @@ Elements must match **all** of the following expressions: | [organic](#organic) | Does this shop offer organic products?
3 options | | _Multiple choice only_ | | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -277,11 +282,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -299,12 +306,14 @@ This tagrendering has labels ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -478,7 +487,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -495,14 +505,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -512,7 +524,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -523,7 +536,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -541,6 +555,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -550,7 +565,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -601,6 +617,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -643,7 +680,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -662,7 +700,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -671,7 +710,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -680,7 +720,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -689,7 +730,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -698,7 +740,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -707,7 +750,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -716,7 +760,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -755,7 +800,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -791,7 +837,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -835,7 +882,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -848,11 +895,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -861,6 +910,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -885,6 +935,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -899,7 +950,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -919,7 +971,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -954,7 +1007,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1024,7 +1078,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1114,7 +1169,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1150,7 +1206,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1223,6 +1280,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1238,6 +1296,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1255,6 +1314,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1272,6 +1332,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1313,6 +1374,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1329,6 +1391,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1364,7 +1427,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1383,7 +1449,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1400,7 +1469,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1459,6 +1531,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1475,6 +1548,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1485,6 +1559,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1494,16 +1569,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shops_second_hand.md b/Docs/Layers/shops_second_hand.md index 570217e898..c658bde504 100644 --- a/Docs/Layers/shops_second_hand.md +++ b/Docs/Layers/shops_second_hand.md @@ -34,6 +34,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -57,7 +59,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -132,6 +134,7 @@ Elements must match **any** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -205,6 +208,8 @@ Elements must match **any** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -228,7 +233,7 @@ Elements must match **any** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -275,22 +280,26 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -464,7 +473,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -481,14 +491,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -498,7 +510,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -509,7 +522,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -527,6 +541,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -536,7 +551,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -587,6 +603,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -629,7 +666,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -648,7 +686,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -657,7 +696,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -666,7 +706,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -675,7 +716,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -684,7 +726,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -693,7 +736,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -702,7 +746,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -741,7 +786,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -777,7 +823,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -834,7 +881,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -847,11 +894,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -860,6 +909,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -884,6 +934,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -898,7 +949,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -918,7 +970,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -953,7 +1006,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1023,7 +1077,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1113,7 +1168,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1149,7 +1205,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1222,6 +1279,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1237,6 +1295,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1254,6 +1313,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1271,6 +1331,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1312,6 +1373,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1328,6 +1390,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1363,7 +1426,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1382,7 +1448,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1399,7 +1468,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1458,6 +1530,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1474,6 +1547,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1484,6 +1558,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1493,16 +1568,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shops_with_climbing_shoe_repair.md b/Docs/Layers/shops_with_climbing_shoe_repair.md index 45fb2e1bfd..2ce176253f 100644 --- a/Docs/Layers/shops_with_climbing_shoe_repair.md +++ b/Docs/Layers/shops_with_climbing_shoe_repair.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -58,7 +60,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -134,6 +136,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -208,6 +211,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -231,7 +236,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -285,22 +290,26 @@ The question is `Does this shoe repair shop repair climbing shoes?` ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -474,7 +483,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -491,14 +501,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -508,7 +520,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -519,7 +532,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -537,6 +551,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -546,7 +561,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -597,6 +613,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -639,7 +676,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -658,7 +696,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -667,7 +706,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -676,7 +716,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -685,7 +726,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -694,7 +736,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -703,7 +746,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -712,7 +756,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -751,7 +796,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -787,7 +833,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -844,7 +891,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -857,11 +904,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -870,6 +919,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -894,6 +944,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -908,7 +959,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -928,7 +980,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -963,7 +1016,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1033,7 +1087,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1123,7 +1178,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1159,7 +1215,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1232,6 +1289,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1247,6 +1305,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1264,6 +1323,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1281,6 +1341,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1322,6 +1383,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1338,6 +1400,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1373,7 +1436,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1392,7 +1458,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1409,7 +1478,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1468,6 +1540,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1484,6 +1557,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1494,6 +1568,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1503,16 +1578,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/shower.md b/Docs/Layers/shower.md index c359d213e8..9ccdbacb73 100644 --- a/Docs/Layers/shower.md +++ b/Docs/Layers/shower.md @@ -84,11 +84,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -127,14 +130,16 @@ The question is `Is there a fee for using this shower?` ### charge The question is `How much does it cost to use this shower?` -*It costs {charge} to use this shower* is shown if `charge` is set + +*It costs {charge} to use this shower* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -175,6 +180,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -184,16 +190,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ski_piste.md b/Docs/Layers/ski_piste.md index 4a8156711b..ffdb3eca4b 100644 --- a/Docs/Layers/ski_piste.md +++ b/Docs/Layers/ski_piste.md @@ -55,6 +55,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### piste_difficulty @@ -71,11 +72,13 @@ The question is `What is the difficulty of this piste?` ### length _This tagrendering has no question and is thus read-only_ + *This part of the ski piste is {_length:km} kilometer long* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -85,11 +88,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/slow_roads.md b/Docs/Layers/slow_roads.md index bd2c301513..51e0141903 100644 --- a/Docs/Layers/slow_roads.md +++ b/Docs/Layers/slow_roads.md @@ -57,6 +57,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### explanation @@ -73,7 +74,8 @@ _This tagrendering has no question and is thus read-only_ ### slow_roads-surface The question is `What surface does this road have?` -*The surface is {surface}* is shown if `surface` is set + +*The surface is {surface}* is shown if `surface` is set. - *The surface is grass* is shown if with surface=grass - *The surface is ground* is shown if with surface=ground @@ -94,6 +96,7 @@ The question is `Is this road lit at night?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -103,6 +106,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/souvenir_coin.md b/Docs/Layers/souvenir_coin.md index 58891b51e3..bc9040a449 100644 --- a/Docs/Layers/souvenir_coin.md +++ b/Docs/Layers/souvenir_coin.md @@ -90,12 +90,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -103,7 +105,8 @@ The question is `What are the opening hours of {title()}?` ### designs The question is `How many designs are available?` -*This machine has {coin:design_count} designs available* is shown if `coin:design_count` is set + +*This machine has {coin:design_count} designs available* is shown if `coin:design_count` is set. - *This machine has one design available* is shown if with coin:design_count=1 - *This machine has two designs available* is shown if with coin:design_count=2 @@ -125,7 +128,8 @@ The question is `Which methods of payment are accepted here?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -135,7 +139,8 @@ This tagrendering has labels ### charge The question is `How much does a souvenir coin cost?` -*A souvenir coins costs {charge}* is shown if `charge` is set + +*A souvenir coins costs {charge}* is shown if `charge` is set. - *A souvenir coin costs 2 euro* is shown if with charge=2 EUR @@ -171,6 +176,7 @@ The question is `Is this machine located indoors?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -180,7 +186,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -194,13 +201,15 @@ This tagrendering has labels ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -210,16 +219,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/souvenir_note.md b/Docs/Layers/souvenir_note.md index ccdc58063e..f6f8736db1 100644 --- a/Docs/Layers/souvenir_note.md +++ b/Docs/Layers/souvenir_note.md @@ -90,12 +90,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -103,7 +105,8 @@ The question is `What are the opening hours of {title()}?` ### designs The question is `How many designs are available?` -*This machine has {note:design_count} designs available.* is shown if `note:design_count` is set + +*This machine has {note:design_count} designs available.* is shown if `note:design_count` is set. - *This machine has one design available.* is shown if with note:design_count=1 - *This machine has two designs available.* is shown if with note:design_count=2 @@ -125,7 +128,8 @@ The question is `Which methods of payment are accepted here?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -135,7 +139,8 @@ This tagrendering has labels ### charge The question is `How much does a souvenir note cost?` -*A souvenir note costs {charge}* is shown if `charge` is set + +*A souvenir note costs {charge}* is shown if `charge` is set. - *A souvenir note costs 2 euro* is shown if with charge=2 EUR - *A souvenir note costs 3 euro* is shown if with charge=3 EUR @@ -172,6 +177,7 @@ The question is `Is this machine located indoors?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -181,7 +187,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -195,13 +202,15 @@ This tagrendering has labels ### check_date The question is `When was this object last checked?` -*This object was last checked on {check_date}* is shown if `check_date` is set + +*This object was last checked on {check_date}* is shown if `check_date` is set. - *This object was last checked today* is shown if with check_date= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -211,16 +220,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/speed_camera.md b/Docs/Layers/speed_camera.md index 18d7bd643f..2bdcb8446a 100644 --- a/Docs/Layers/speed_camera.md +++ b/Docs/Layers/speed_camera.md @@ -63,16 +63,19 @@ Elements must match the expression **sport=basketball - *Soccer is played here* is shown if with sport=soccer @@ -116,7 +118,8 @@ This tagrendering is only visible in the popup if the following condition is met ### sport_pitch-surface The question is `Which is the surface of this sport pitch?` -*The surface is {surface}* is shown if `surface` is set + +*The surface is {surface}* is shown if `surface` is set. - *The surface is grass* is shown if with surface=grass - *The surface is sand* is shown if with surface=sand @@ -148,17 +151,20 @@ The question is `Does one have to make an appointment to use this sport pitch?` ### sport_pitch-phone The question is `What is the phone number of the operator?` -*{phone}* is shown if `phone` is set + +*{phone}* is shown if `phone` is set. ### sport_pitch-email The question is `What is the email address of the operator?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. ### sport_pitch-opening_hours The question is `When is this pitch accessible?` -*Openingsuren: {opening_hours_table()}* is shown if `opening_hours` is set + +*Openingsuren: {opening_hours_table()}* is shown if `opening_hours` is set. - *Always accessible* is shown if with opening_hours=. _This option cannot be chosen as answer_ - *Always accessible* is shown if with opening_hours=24/7 @@ -168,21 +174,25 @@ This tagrendering is only visible in the popup if the following condition is met ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### sport-pitch-reviews _This tagrendering has no question and is thus read-only_ + *{reviews(name, sportpitch)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/sport_places_without_etymology.md b/Docs/Layers/sport_places_without_etymology.md index 62cf529f2a..41f2aff45c 100644 --- a/Docs/Layers/sport_places_without_etymology.md +++ b/Docs/Layers/sport_places_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/sport_shops.md b/Docs/Layers/sport_shops.md index e95fd92a1d..c274f83c92 100644 --- a/Docs/Layers/sport_shops.md +++ b/Docs/Layers/sport_shops.md @@ -35,6 +35,8 @@ A shop - [copyshop-binding](#copyshop-binding) - [optometrist_service](#optometrist_service) - [key_cutter](#key_cutter) + - [hairdresser-targetgroup](#hairdresser-targetgroup) + - [reservation](#reservation) - [sells_new_bikes](#sells_new_bikes) - [bike_second_hand](#bike_second_hand) - [repairs_bikes](#repairs_bikes) @@ -58,7 +60,7 @@ A shop - [sugar_free](#sugar_free) - [gluten_free](#gluten_free) - [lactose_free](#lactose_free) - - [dog-access](#dog-access) + - [shop-dog-access](#shop-dog-access) - [description](#description) - [toilets-group](#toilets-group) - [grouptitle](#grouptitle) @@ -136,6 +138,7 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -209,6 +212,8 @@ Elements must match the expression ** _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -279,22 +284,26 @@ Elements must match the expression **
*Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -468,7 +477,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -485,14 +495,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -502,7 +514,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -513,7 +526,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -531,6 +545,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -540,7 +555,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -591,6 +607,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -633,7 +670,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -652,7 +690,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -661,7 +700,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -670,7 +710,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -679,7 +720,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -688,7 +730,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -697,7 +740,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -706,7 +750,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -745,7 +790,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -781,7 +827,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -838,7 +885,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -851,11 +898,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -864,6 +913,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -888,6 +938,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -902,7 +953,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -922,7 +974,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -957,7 +1010,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1027,7 +1081,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1117,7 +1172,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1153,7 +1209,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1226,6 +1283,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1241,6 +1299,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1258,6 +1317,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1275,6 +1335,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1316,6 +1377,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1332,6 +1394,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1367,7 +1430,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1386,7 +1452,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1403,7 +1472,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1462,6 +1534,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1478,6 +1551,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1488,6 +1562,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1497,16 +1572,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/sports_centre.md b/Docs/Layers/sports_centre.md index 241bb888ea..a3b7a8302f 100644 --- a/Docs/Layers/sports_centre.md +++ b/Docs/Layers/sports_centre.md @@ -75,19 +75,22 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -97,7 +100,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -107,7 +111,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -127,7 +132,8 @@ The question is `Is this place accessible with a wheelchair?` ### sport_centre-sport The question is `What sports are played at this venue?` -*Sports played here: {sport}* is shown if `sport` is set + +*Sports played here: {sport}* is shown if `sport` is set. - *Nine-pin bowling* is shown if with sport=9pin - *Ten-pin bowling* is shown if with sport=10pin @@ -261,6 +267,7 @@ The question is `What sports are played at this venue?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -270,11 +277,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/stairs.md b/Docs/Layers/stairs.md index 3c2fc281b9..e0cb79ca14 100644 --- a/Docs/Layers/stairs.md +++ b/Docs/Layers/stairs.md @@ -67,12 +67,14 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -109,6 +111,7 @@ This tagrendering is only visible in the popup if the following condition is met ### tactile_writing_language _This tagrendering has no question and is thus read-only_ + *{language_chooser(tactile_writing:braille,In which languages is there tactile writing &LPARENSbraille&RPARENS for navigation? ,These stairs have tactile writing in &LBRACElanguage&LPARENS&RPARENS&RBRACE,These stairs have tactile writing in &LBRACElanguage&LPARENS&RPARENS&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: tactile_writing=yes @@ -126,7 +129,8 @@ The question is `Is there a ramp at these stairs?` ### incline The question is `What is the incline of these stairs?` -*These stairs have an incline of {incline}* is shown if `incline` is set + +*These stairs have an incline of {incline}* is shown if `incline` is set. - *The upward direction is {direction_absolute()}* is shown if with incline=up. _This option cannot be chosen as answer_ - *The downward direction is {direction_absolute()}* is shown if with incline=down. _This option cannot be chosen as answer_ @@ -134,6 +138,7 @@ The question is `What is the incline of these stairs?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -143,11 +148,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/street_lamps.md b/Docs/Layers/street_lamps.md index 5bdbc4580d..8ebd3d0417 100644 --- a/Docs/Layers/street_lamps.md +++ b/Docs/Layers/street_lamps.md @@ -84,6 +84,7 @@ Elements must match the expression **light:colour=white - *This lamp emits green light* is shown if with light:colour=green @@ -162,7 +165,8 @@ This tagrendering has labels ### count The question is `How many fixtures does this light have?` -*This lamp has {light:count} fixtures* is shown if `light:count` is set + +*This lamp has {light:count} fixtures* is shown if `light:count` is set. - *This lamp has 1 fixture* is shown if with light:count=1 - *This lamp has 2 fixtures* is shown if with light:count=2 @@ -186,7 +190,8 @@ This tagrendering has labels ### direction The question is `Where does this lamp point to?` -*This lamp points towards {light:direction}* is shown if `light:direction` is set + +*This lamp points towards {light:direction}* is shown if `light:direction` is set. This tagrendering is only visible in the popup if the following condition is met: light:count=1 This tagrendering has labels @@ -195,6 +200,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -204,16 +210,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/streets_without_etymology.md b/Docs/Layers/streets_without_etymology.md index f1eed8f758..53124eaf1f 100644 --- a/Docs/Layers/streets_without_etymology.md +++ b/Docs/Layers/streets_without_etymology.md @@ -70,16 +70,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -87,38 +90,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -126,6 +136,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/stripclub.md b/Docs/Layers/stripclub.md index cf0f07c7bf..192f87cf0d 100644 --- a/Docs/Layers/stripclub.md +++ b/Docs/Layers/stripclub.md @@ -73,29 +73,34 @@ Elements must match the expression **opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -105,7 +110,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -116,7 +122,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -126,6 +133,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -135,11 +143,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/surveillance_camera.md b/Docs/Layers/surveillance_camera.md index 2e9ebca5f0..f7674cc08c 100644 --- a/Docs/Layers/surveillance_camera.md +++ b/Docs/Layers/surveillance_camera.md @@ -91,6 +91,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### has_alpr @@ -112,14 +113,16 @@ The question is `What kind of camera is this?` ### camera_direction The question is `In which geographical direction does this camera film?` -*Films to a compass heading of {camera:direction}* is shown if `camera:direction` is set + +*Films to a compass heading of {camera:direction}* is shown if `camera:direction` is set. - *Films to a compass heading of {direction}* is shown if with camera:direction= & direction~.+. _This option cannot be chosen as answer_ ### Operator The question is `Who operates this CCTV?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### Surveillance type: public, outdoor, indoor @@ -140,14 +143,16 @@ The question is `Is this camera located inside or outside?` ### Level The question is `On which level is this camera located?` -*Located on level {level}* is shown if `level` is set + +*Located on level {level}* is shown if `level` is set. This tagrendering is only visible in the popup if the following condition is met: (indoor=yes | surveillance=indoor) & (surveillance:type=alpr | surveillance:type=camera) & camera:type!=doorbell ### Surveillance:zone The question is `What exactly is surveilled here?` -*Surveills a {surveillance:zone}* is shown if `surveillance:zone` is set + +*Surveills a {surveillance:zone}* is shown if `surveillance:zone` is set. - *Surveills a parking* is shown if with surveillance:zone=parking - *Surveills the traffic* is shown if with surveillance:zone=traffic @@ -159,7 +164,8 @@ The question is `What exactly is surveilled here?` ### camera:mount The question is `How is this camera placed?` -*Mounting method: {camera:mount}* is shown if `camera:mount` is set + +*Mounting method: {camera:mount}* is shown if `camera:mount` is set. - *This camera is placed against a wall* is shown if with camera:mount=wall - *This camera is placed on a pole* is shown if with camera:mount=pole @@ -170,6 +176,7 @@ The question is `How is this camera placed?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -179,16 +186,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tactile_map.md b/Docs/Layers/tactile_map.md index 939fdbeaa4..10dcca46ae 100644 --- a/Docs/Layers/tactile_map.md +++ b/Docs/Layers/tactile_map.md @@ -73,12 +73,14 @@ Elements must match the expression **braille=yes @@ -104,6 +107,7 @@ The question is `Are there embossed letters on this tactile map?` ### embossed_letters_languages _This tagrendering has no question and is thus read-only_ + *{language_chooser(tactile_writing:embossed,In which languages are the embossed letters on this tactile map?,This map has embossed letters in &LBRACElanguage&RBRACE,This map has embossed letters in &LBRACElanguage&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: embossed_letters=yes @@ -111,7 +115,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -121,6 +126,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -130,16 +136,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tactile_model.md b/Docs/Layers/tactile_model.md index 332c9208f1..e5a9b6ec4b 100644 --- a/Docs/Layers/tactile_model.md +++ b/Docs/Layers/tactile_model.md @@ -76,12 +76,14 @@ Elements must match the expression **braille=yes @@ -107,6 +110,7 @@ The question is `Are there embossed letters describing the model?` ### embossed_letters_languages _This tagrendering has no question and is thus read-only_ + *{language_chooser(tactile_writing:embossed_letters,In which languages are there embossed letters?,This model has embossed letters in &LBRACElanguage&LPARENS&RPARENS&RBRACE,This model has embossed letters in &LBRACElanguage&RBRACE,,)}* This tagrendering is only visible in the popup if the following condition is met: embossed_letters=yes @@ -114,12 +118,14 @@ This tagrendering is only visible in the popup if the following condition is met ### scale The question is `What scale is the model?` -*The scale of this model is {scale}.* is shown if `scale` is set + +*The scale of this model is {scale}.* is shown if `scale` is set. ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -129,6 +135,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -138,16 +145,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tertiary_education.md b/Docs/Layers/tertiary_education.md index fd5b75126b..1518c8c77f 100644 --- a/Docs/Layers/tertiary_education.md +++ b/Docs/Layers/tertiary_education.md @@ -94,7 +94,8 @@ This tagrendering is only visible in the popup if the following condition is met ### capacity The question is `How much students can at most enroll in this school?` -*This school can enroll at most {capacity} students* is shown if `capacity` is set + +*This school can enroll at most {capacity} students* is shown if `capacity` is set. ### gender @@ -108,7 +109,8 @@ The question is `Which genders can enroll at this school?` ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -118,7 +120,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -129,7 +132,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -139,6 +143,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -148,11 +153,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ticket_machine.md b/Docs/Layers/ticket_machine.md index 24f33bfecd..8b4e464290 100644 --- a/Docs/Layers/ticket_machine.md +++ b/Docs/Layers/ticket_machine.md @@ -77,11 +77,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -91,7 +93,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -105,7 +108,8 @@ This tagrendering has labels ### operator The question is `Who is the operator of this ticket machine?` -*This ticket machine is operated by {operator}* is shown if `operator` is set + +*This ticket machine is operated by {operator}* is shown if `operator` is set. - *Dutch Railways (NS)* is shown if with operator=Nederlandse Spoorwegen @@ -166,6 +170,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -175,16 +180,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/ticket_validator.md b/Docs/Layers/ticket_validator.md index 8258153f0e..9b15aaebf6 100644 --- a/Docs/Layers/ticket_validator.md +++ b/Docs/Layers/ticket_validator.md @@ -69,11 +69,13 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -97,6 +100,7 @@ This tagrendering has labels ### barrier _This tagrendering has no question and is thus read-only_ + *This ticket validator is part of a barrier of type {barrier}* - *This ticket validator is part of a gate* is shown if with barrier=gate @@ -106,7 +110,8 @@ This tagrendering is only visible in the popup if the following condition is met ### validator-operator The question is `Who is the operator of this ticket validator?` -*This ticket validator is operated by {operator}* is shown if `operator` is set + +*This ticket validator is operated by {operator}* is shown if `operator` is set. - *Dutch Railways (NS)* is shown if with operator=Nederlandse Spoorwegen @@ -123,6 +128,7 @@ The question is `Which methods of payment are accepted here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -132,16 +138,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/toekomstige_fietsstraat.md b/Docs/Layers/toekomstige_fietsstraat.md index 8312ab2dd8..85e62cfc63 100644 --- a/Docs/Layers/toekomstige_fietsstraat.md +++ b/Docs/Layers/toekomstige_fietsstraat.md @@ -57,6 +57,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### is_cyclestreet @@ -86,13 +87,15 @@ This tagrendering is only visible in the popup if the following condition is met ### future_cyclestreet The question is `When will this street become a cyclestreet?` -*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set + +*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set. This tagrendering is only visible in the popup if the following condition is met: proposed:cyclestreet=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -102,11 +105,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/toilet.md b/Docs/Layers/toilet.md index a53bc91c52..4e4e2abd95 100644 --- a/Docs/Layers/toilet.md +++ b/Docs/Layers/toilet.md @@ -213,16 +213,19 @@ Elements must match the expression **location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -248,7 +252,8 @@ This tagrendering has labels ### toilet-access The question is `Are these toilets publicly accessible?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Public access* is shown if with access=yes - *Only access to customers* is shown if with access=customers @@ -273,7 +278,8 @@ This tagrendering has labels ### toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {charge}* is shown if `charge` is set + +*The fee is {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes This tagrendering has labels @@ -300,7 +306,8 @@ This tagrendering has labels ### opening_hours_24_7 The question is `When are these toilets opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -364,7 +371,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -391,7 +399,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -459,7 +468,8 @@ This tagrendering has labels ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. This tagrendering has labels `amenity-no-prefix` @@ -469,6 +479,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering has labels @@ -494,6 +505,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets:wheelchair=yes | wheelchair=yes @@ -507,6 +519,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets:wheelchair=yes | wheelchair=yes @@ -520,6 +533,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -600,7 +614,10 @@ This tagrendering has labels ### wheelchair-door-width The question is `What is the width of the door to the wheelchair accessible toilet?` -*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set + +*The door to the wheelchair-accessible toilet is {canonical(door:width)} wide* is shown if `door:width` is set. + +The allowed input is of type pfloat and is in range 0.4 until infinity (both inclusive). A warning will appear below 0.6. This tagrendering is only visible in the popup if the following condition is met: toilets:wheelchair=yes | toilets:wheelchair=designated | wheelchair=yes | wheelchair=designated This tagrendering has labels @@ -612,6 +629,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering has labels @@ -623,6 +641,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes @@ -649,7 +668,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -664,7 +686,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable This tagrendering has labels @@ -677,7 +702,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable This tagrendering has labels @@ -724,6 +752,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering has labels @@ -735,7 +764,8 @@ This tagrendering has labels ### phone The question is `What number can one call in case of troubles or questions?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -745,7 +775,8 @@ This tagrendering has labels ### email The question is `What is the email address one can send to in case of troubles or questions?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -756,6 +787,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;hidden)}* This tagrendering has labels @@ -765,16 +797,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/toilet_at_amenity.md b/Docs/Layers/toilet_at_amenity.md index 9044f63d84..c7a96a807f 100644 --- a/Docs/Layers/toilet_at_amenity.md +++ b/Docs/Layers/toilet_at_amenity.md @@ -146,11 +146,13 @@ Elements must match **all** of the following expressions: ### images _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:panoramax,Add a picture of the toilets,)}* ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets:repeat_on~.+ @@ -162,7 +164,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -178,7 +181,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -205,7 +209,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets:fee=yes This tagrendering has labels @@ -261,7 +266,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering has labels `amenity-no-prefix` @@ -288,7 +294,8 @@ This tagrendering has labels ### opening_hours The question is `When is the amenity where these toilets are located open?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -338,7 +345,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -367,7 +375,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -426,6 +435,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering has labels @@ -437,6 +447,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets:wheelchair=yes | wheelchair=yes @@ -451,6 +462,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets:wheelchair=yes | wheelchair=yes @@ -465,6 +477,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -499,6 +512,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering has labels @@ -511,6 +525,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes @@ -539,7 +554,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -555,7 +573,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable This tagrendering has labels @@ -569,7 +590,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable This tagrendering has labels @@ -619,6 +643,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering has labels @@ -631,6 +656,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;hidden)}* This tagrendering has labels @@ -640,11 +666,13 @@ This tagrendering has labels ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tool_library.md b/Docs/Layers/tool_library.md index e5c66b0291..50e6b7f85e 100644 --- a/Docs/Layers/tool_library.md +++ b/Docs/Layers/tool_library.md @@ -83,12 +83,14 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -98,7 +100,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -109,7 +112,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -119,12 +123,14 @@ This tagrendering has labels ### facebook Shows and asks for the facebook handle The question is `What is the facebook page of of {title()}?` -*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set + +*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set. ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -141,7 +147,8 @@ The question is `Is a membership required to borrow tools here?` ### membership_charge The question is `How much does a membership cost?` -*A membership costs {charge:membership}* is shown if `charge:membership` is set + +*A membership costs {charge:membership}* is shown if `charge:membership` is set. This tagrendering is only visible in the popup if the following condition is met: membership=required @@ -157,6 +164,7 @@ The question is `Is a fee asked to borrow tools?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -166,16 +174,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tourism_accomodation.md b/Docs/Layers/tourism_accomodation.md index e622200861..799813d6ee 100644 --- a/Docs/Layers/tourism_accomodation.md +++ b/Docs/Layers/tourism_accomodation.md @@ -113,21 +113,25 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### name The question is `What is the name of this {title()}?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### presettypeselect _This tagrendering has no question and is thus read-only_ + *{preset_type_select()}* ### group_only @@ -142,14 +146,16 @@ This tagrendering is only visible in the popup if the following condition is met ### brand The question is `Is {title()} part of a bigger brand?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *Not part of a bigger brand* is shown if with nobrand=yes ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -159,7 +165,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -170,7 +177,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -189,6 +197,7 @@ The question is `Is this place accessible with a wheelchair?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### internet @@ -220,7 +229,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -241,6 +251,7 @@ The question is `Are dogs allowed in this business?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -250,16 +261,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/toursistic_places_without_etymology.md b/Docs/Layers/toursistic_places_without_etymology.md index 910bd81691..bed77e23d9 100644 --- a/Docs/Layers/toursistic_places_without_etymology.md +++ b/Docs/Layers/toursistic_places_without_etymology.md @@ -69,16 +69,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -86,38 +89,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -125,6 +135,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/trail.md b/Docs/Layers/trail.md index f4c98add3d..308f87ad08 100644 --- a/Docs/Layers/trail.md +++ b/Docs/Layers/trail.md @@ -63,22 +63,26 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### trail-length _This tagrendering has no question and is thus read-only_ + *The trail is {_length:km} kilometers long* ### Name The question is `What is the name of this trail?` -*This trail is called {name}* is shown if `name` is set + +*This trail is called {name}* is shown if `name` is set. ### Operator tag The question is `Who maintains this trail?` -*This trail is maintained by {operator}* is shown if `operator` is set + +*This trail is maintained by {operator}* is shown if `operator` is set. - *This trail is maintained by Natuurpunt* is shown if with operator=Natuurpunt - *This trail is maintained by {operator}* is shown if with operator~^((n|N)atuurpunt.*)$. _This option cannot be chosen as answer_ @@ -86,7 +90,8 @@ The question is `Who maintains this trail?` ### Color The question is `What is the reference colour of this trail?` -*The reference colour is {colour}* is shown if `colour` is set + +*The reference colour is {colour}* is shown if `colour` is set. - *Blue trail* is shown if with colour=blue - *Red trail* is shown if with colour=red @@ -110,6 +115,7 @@ The question is `Is this trail accessible with a pushchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -119,6 +125,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/transit_routes.md b/Docs/Layers/transit_routes.md index 3e21b5deb4..efedfc447b 100644 --- a/Docs/Layers/transit_routes.md +++ b/Docs/Layers/transit_routes.md @@ -68,41 +68,49 @@ Elements must match **all** of the following expressions: ### name The question is `What is the name for this bus line? (i.e. Bus XX: From => Via => To)` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### from The question is `What is the starting point for this bus line?` -*This bus line begins at {from}* is shown if `from` is set + +*This bus line begins at {from}* is shown if `from` is set. ### via The question is `What is the via point for this bus line?` -*This bus line goes via {via}* is shown if `via` is set + +*This bus line goes via {via}* is shown if `via` is set. ### to The question is `What is the ending point for this bus line?` -*This bus line ends at {to}* is shown if `to` is set + +*This bus line ends at {to}* is shown if `to` is set. ### colour The question is `What is the colour for this bus line?` -*This bus line has the color {colour}* is shown if `colour` is set + +*This bus line has the color {colour}* is shown if `colour` is set. ### network The question is `What network does this bus line belong to?` -*This bus line is part of the {network} network* is shown if `network` is set + +*This bus line is part of the {network} network* is shown if `network` is set. ### operator The question is `What company operates this bus line?` -*This bus line is operated by {operator}* is shown if `operator` is set + +*This bus line is operated by {operator}* is shown if `operator` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -112,6 +120,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/transit_stops.md b/Docs/Layers/transit_stops.md index cd36037080..97b8319828 100644 --- a/Docs/Layers/transit_stops.md +++ b/Docs/Layers/transit_stops.md @@ -75,13 +75,15 @@ Elements must match the expression **noname=yes & name= ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### shelter @@ -145,6 +147,7 @@ _This tagrendering has no question and is thus read-only_ ### contained_routes _This tagrendering has no question and is thus read-only_ + *

{_contained_routes_count} routes stop at this stop

    {_contained_routes}
* This tagrendering is only visible in the popup if the following condition is met: _contained_routes~.+ @@ -152,6 +155,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -161,6 +165,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/tree_node.md b/Docs/Layers/tree_node.md index 24c99103b3..44cfd479bf 100644 --- a/Docs/Layers/tree_node.md +++ b/Docs/Layers/tree_node.md @@ -94,21 +94,25 @@ Elements must match the expression **noname=yes @@ -176,20 +183,23 @@ This tagrendering is only visible in the popup if the following condition is met ### tree_node-ref:OnroerendErfgoed The question is `What is the ID issued by Onroerend Erfgoed Flanders?` -* Onroerend Erfgoed ID: {ref:OnroerendErfgoed}* is shown if `ref:OnroerendErfgoed` is set + +* Onroerend Erfgoed ID: {ref:OnroerendErfgoed}* is shown if `ref:OnroerendErfgoed` is set. This tagrendering is only visible in the popup if the following condition is met: heritage=4 & heritage:operator=OnroerendErfgoed ### tree_node-wikidata The question is `What is the Wikidata ID for this tree?` -* Wikidata: {wikidata}* is shown if `wikidata` is set + +* Wikidata: {wikidata}* is shown if `wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: denotation=landmark | denotation=natural_monument | wikidata~.+ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -199,16 +209,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/trolley_bay.md b/Docs/Layers/trolley_bay.md index 6ecc416d71..49599913e6 100644 --- a/Docs/Layers/trolley_bay.md +++ b/Docs/Layers/trolley_bay.md @@ -106,6 +106,7 @@ _This tagrendering has no question and is thus read-only_ ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -115,16 +116,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/utility_pole.md b/Docs/Layers/utility_pole.md index 4c41ef7296..8764d2344e 100644 --- a/Docs/Layers/utility_pole.md +++ b/Docs/Layers/utility_pole.md @@ -62,6 +62,7 @@ The question is `Does this utility pole have a street lamp mounted on it?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -71,11 +72,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/vending_machine.md b/Docs/Layers/vending_machine.md index bec1d30879..6be07cc8b1 100644 --- a/Docs/Layers/vending_machine.md +++ b/Docs/Layers/vending_machine.md @@ -110,11 +110,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -124,7 +126,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -138,7 +141,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -173,7 +177,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -183,7 +188,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -245,7 +251,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -258,7 +265,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -268,7 +276,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -278,21 +287,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -308,6 +320,7 @@ The question is `Is this vending machine still operational?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -317,16 +330,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/vending_machine_bicycle.md b/Docs/Layers/vending_machine_bicycle.md index 156af68ba0..2566f16599 100644 --- a/Docs/Layers/vending_machine_bicycle.md +++ b/Docs/Layers/vending_machine_bicycle.md @@ -103,11 +103,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -117,7 +119,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -131,7 +134,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -166,7 +170,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -176,7 +181,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -238,7 +244,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -251,7 +258,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -261,7 +269,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -271,21 +280,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -301,6 +313,7 @@ The question is `Is this vending machine still operational?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -310,16 +323,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/veterinary.md b/Docs/Layers/veterinary.md index f49d54b47c..506890fdf7 100644 --- a/Docs/Layers/veterinary.md +++ b/Docs/Layers/veterinary.md @@ -69,7 +69,8 @@ Elements must match the expression **{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -79,12 +80,14 @@ This tagrendering has labels ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -94,18 +97,21 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### vetName The question is `What is the name of this veterinarian?` -*The name of this veterinarian is {name}* is shown if `name` is set + +*The name of this veterinarian is {name}* is shown if `name` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -115,11 +121,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/viewpoint.md b/Docs/Layers/viewpoint.md index 3a5d56eb81..b22949d8ef 100644 --- a/Docs/Layers/viewpoint.md +++ b/Docs/Layers/viewpoint.md @@ -59,16 +59,19 @@ Elements must match the expression **access=yes - *This bin is private* is shown if with access=no @@ -96,6 +98,7 @@ The question is `Where is this container located?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -105,16 +108,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/wayside_shrine.md b/Docs/Layers/wayside_shrine.md index 0d8d156198..3814b27b4f 100644 --- a/Docs/Layers/wayside_shrine.md +++ b/Docs/Layers/wayside_shrine.md @@ -95,12 +95,14 @@ Elements must match **any** of the following expressions: ### images_no_blur Same as `images`, but uploaded request to disable blurring to the panoramax server _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload(,,,true)}* ### shrine_name The question is `What's the name of this {title()}?` -*The name of this {title()} is {name}* is shown if `name` is set + +*The name of this {title()} is {name}* is shown if `name` is set. - *This shrine does not have a name* is shown if with noname=yes @@ -110,7 +112,8 @@ This tagrendering has labels ### inscription The question is `Is there an inscription?` -*The inscription is {inscription}* is shown if `inscription` is set + +*The inscription is {inscription}* is shown if `inscription` is set. - *No inscription* is shown if with not:inscription=yes - *The inscription is Ave Maria* is shown if with inscription=Ave Maria @@ -119,7 +122,8 @@ The question is `Is there an inscription?` ### religion The question is `To which religion is this shrine dedicated?` -*This shrine is {religion}* is shown if `religion` is set + +*This shrine is {religion}* is shown if `religion` is set. - *This is a Christian shrine* is shown if with religion=christian - *This is a Buddhist shrine* is shown if with religion=buddhist @@ -139,7 +143,8 @@ This tagrendering has labels ### denomination_christian The question is `What's the Christian denomination of this {title()}?` -*The religious denomination is {denomination}* is shown if `denomination` is set + +*The religious denomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Catholic* is shown if with denomination=catholic - *The religious subdenomination is Roman Catholic* is shown if with denomination=roman_catholic @@ -159,7 +164,8 @@ This tagrendering has labels ### denomination_muslim The question is `What's the Muslim denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Shia* is shown if with denomination=shia - *The religious subdenomination is Sunni* is shown if with denomination=sunni @@ -172,7 +178,8 @@ This tagrendering has labels ### denomination_jewish The question is `What's the Jewish denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Conservative* is shown if with denomination=conservative - *The religious subdenomination is Orthodox* is shown if with denomination=orthodox @@ -186,7 +193,8 @@ This tagrendering has labels ### denomination_other The question is `What's the denomination of this shrine?` -*The denomination of this shrine is {denomination}* is shown if `denomination` is set + +*The denomination of this shrine is {denomination}* is shown if `denomination` is set. This tagrendering is only visible in the popup if the following condition is met: religion!=christian & religion!=muslim & religion!=jewish & religion~.+ This tagrendering has labels @@ -195,7 +203,8 @@ This tagrendering has labels ### subject:wikidata The question is `Who is depicted?` -*{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. - *Mother mary is depicted* is shown if with subject:wikidata=Q345 - *Jesus Christ as a child is depicted* is shown if with subject:wikidata=Q942467 @@ -207,6 +216,7 @@ This tagrendering is only visible in the popup if the following condition is met ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -216,7 +226,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -230,6 +241,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -239,16 +251,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Layers/windturbine.md b/Docs/Layers/windturbine.md index 7592697d69..dd313790db 100644 --- a/Docs/Layers/windturbine.md +++ b/Docs/Layers/windturbine.md @@ -70,41 +70,49 @@ Elements must match the expression **image
is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | +| image_key | image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image,image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | #### Example usage of plantnet_detection -`{plantnet_detection(image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image)}` +`{plantnet_detection(image,mapillary,image,wikidata,wikimedia_commons,image,panoramax,image,image)}` ### tag_apply @@ -466,11 +466,11 @@ Creates an image carousel for the given sources. An attempt will be made to gues | name | default | description | -----|-----|----- | -| image_key | image;mapillary;image;wikidata;wikimedia_commons;image;panoramax;image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | +| image_key | image;mapillary;image;wikidata;wikimedia_commons;image;panoramax;image;image | The keys given to the images, e.g. if image is given, the first picture URL will be added as image, the second as image:0, the third as image:1, etc... Multiple values are allowed if ';'-separated | #### Example usage of image_carousel -`{image_carousel(image;mapillary;image;wikidata;wikimedia_commons;image;panoramax;image)}` +`{image_carousel(image;mapillary;image;wikidata;wikimedia_commons;image;panoramax;image;image)}` ### image_upload diff --git a/Docs/TagInfo/mapcomplete_blind_osm.json b/Docs/TagInfo/mapcomplete_blind_osm.json index 3d2db36bff..b20c57879a 100644 --- a/Docs/TagInfo/mapcomplete_blind_osm.json +++ b/Docs/TagInfo/mapcomplete_blind_osm.json @@ -1744,20 +1744,6 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#handrail", "icon_url": "./assets/layers/elevator/elevator_wheelchair.svg" }, - { - "key": "hearing_loop", - "value": "yes", - "description": "hearing_loop=yes is displayed as \"This place has an audio induction loop\" by layer Elevator", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", - "icon_url": "./assets/layers/questions/audio_induction_loop.svg" - }, - { - "key": "hearing_loop", - "value": "no", - "description": "hearing_loop=no is displayed as \"This place does not have an audio induction loop\" by layer Elevator", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", - "icon_url": "./assets/layers/questions/audio_induction_loop_missing.svg" - }, { "key": "tactile_writing:braille", "value": "yes", @@ -1786,6 +1772,20 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#speech_output_available", "icon_url": "./assets/layers/elevator/elevator_wheelchair.svg" }, + { + "key": "hearing_loop", + "value": "yes", + "description": "hearing_loop=yes is displayed as \"This place has an audio induction loop\" by layer Elevator", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", + "icon_url": "./assets/layers/questions/audio_induction_loop.svg" + }, + { + "key": "hearing_loop", + "value": "no", + "description": "hearing_loop=no is displayed as \"This place does not have an audio induction loop\" by layer Elevator", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", + "icon_url": "./assets/layers/questions/audio_induction_loop_missing.svg" + }, { "key": "highway", "value": "steps", diff --git a/Docs/TagInfo/mapcomplete_circular_economy.json b/Docs/TagInfo/mapcomplete_circular_economy.json index d7d115aae8..4e1dc9e06e 100644 --- a/Docs/TagInfo/mapcomplete_circular_economy.json +++ b/Docs/TagInfo/mapcomplete_circular_economy.json @@ -2062,6 +2062,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Second hand shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -2524,35 +2573,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Second hand shops", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Second hand shops", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Second hand shops", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Second hand shops", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Second hand shops", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_second_hand.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_climbing.json b/Docs/TagInfo/mapcomplete_climbing.json index 58dc06f7e8..f9afff9459 100644 --- a/Docs/TagInfo/mapcomplete_climbing.json +++ b/Docs/TagInfo/mapcomplete_climbing.json @@ -2231,6 +2231,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -2617,35 +2666,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_with_climbing_shoe_repair.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_cyclofix.json b/Docs/TagInfo/mapcomplete_cyclofix.json index db8bed0ca2..fc6b4a0af0 100644 --- a/Docs/TagInfo/mapcomplete_cyclofix.json +++ b/Docs/TagInfo/mapcomplete_cyclofix.json @@ -1704,6 +1704,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#key_cutter", "icon_url": "./assets/layers/bike_shop/repair_shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#reservation", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#reservation", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#reservation", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Bike repair/shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#reservation", + "icon_url": "./assets/layers/bike_shop/repair_shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -2166,35 +2215,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Bike repair/shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Bike repair/shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Bike repair/shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Bike repair/shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Bike repair/shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/bike_shop.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_disaster_response.json b/Docs/TagInfo/mapcomplete_disaster_response.json index 06783945fe..333756a11c 100644 --- a/Docs/TagInfo/mapcomplete_disaster_response.json +++ b/Docs/TagInfo/mapcomplete_disaster_response.json @@ -143,7 +143,7 @@ }, { "key": "opening_hours:visitors", - "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", + "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/hospital.md#oh_visitor", "icon_url": "./assets/layers/hospital/hospital.svg" }, diff --git a/Docs/TagInfo/mapcomplete_food.json b/Docs/TagInfo/mapcomplete_food.json index aeb1e31a03..8f0efc4ab6 100644 --- a/Docs/TagInfo/mapcomplete_food.json +++ b/Docs/TagInfo/mapcomplete_food.json @@ -403,28 +403,28 @@ "key": "reservation", "value": "required", "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_fritures.json b/Docs/TagInfo/mapcomplete_fritures.json index 438067d81c..f88c01751b 100644 --- a/Docs/TagInfo/mapcomplete_fritures.json +++ b/Docs/TagInfo/mapcomplete_fritures.json @@ -409,28 +409,28 @@ "key": "reservation", "value": "required", "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Fries shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Fries shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Fries shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Fries shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/friture.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_glutenfree.json b/Docs/TagInfo/mapcomplete_glutenfree.json index 1007fe6d97..2ec712cff8 100644 --- a/Docs/TagInfo/mapcomplete_glutenfree.json +++ b/Docs/TagInfo/mapcomplete_glutenfree.json @@ -436,29 +436,29 @@ { "key": "reservation", "value": "required", - "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#Reservation", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", - "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#Reservation", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", - "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#Reservation", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", - "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#Reservation", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_glutenfree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { @@ -2972,6 +2972,27 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_glutenfree.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_glutenfree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_glutenfree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_glutenfree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", diff --git a/Docs/TagInfo/mapcomplete_healthcare.json b/Docs/TagInfo/mapcomplete_healthcare.json index 8ca9ead5db..eda57ac349 100644 --- a/Docs/TagInfo/mapcomplete_healthcare.json +++ b/Docs/TagInfo/mapcomplete_healthcare.json @@ -272,7 +272,7 @@ }, { "key": "opening_hours:visitors", - "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", + "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/hospital.md#oh_visitor", "icon_url": "./assets/layers/hospital/hospital.svg" }, @@ -1681,6 +1681,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -2143,35 +2192,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/medical_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_indoors.json b/Docs/TagInfo/mapcomplete_indoors.json index 8db8e1cf24..446f7707b6 100644 --- a/Docs/TagInfo/mapcomplete_indoors.json +++ b/Docs/TagInfo/mapcomplete_indoors.json @@ -884,20 +884,6 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#handrail", "icon_url": "./assets/layers/elevator/elevator_wheelchair.svg" }, - { - "key": "hearing_loop", - "value": "yes", - "description": "hearing_loop=yes is displayed as \"This place has an audio induction loop\" by layer Elevator", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", - "icon_url": "./assets/layers/questions/audio_induction_loop.svg" - }, - { - "key": "hearing_loop", - "value": "no", - "description": "hearing_loop=no is displayed as \"This place does not have an audio induction loop\" by layer Elevator", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", - "icon_url": "./assets/layers/questions/audio_induction_loop_missing.svg" - }, { "key": "tactile_writing:braille", "value": "yes", @@ -926,6 +912,20 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#speech_output_available", "icon_url": "./assets/layers/elevator/elevator_wheelchair.svg" }, + { + "key": "hearing_loop", + "value": "yes", + "description": "hearing_loop=yes is displayed as \"This place has an audio induction loop\" by layer Elevator", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", + "icon_url": "./assets/layers/questions/audio_induction_loop.svg" + }, + { + "key": "hearing_loop", + "value": "no", + "description": "hearing_loop=no is displayed as \"This place does not have an audio induction loop\" by layer Elevator", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/elevator.md#induction_loop", + "icon_url": "./assets/layers/questions/audio_induction_loop_missing.svg" + }, { "key": "entrance", "description": "Features with this tag are displayed by layer Entrance", diff --git a/Docs/TagInfo/mapcomplete_lactosefree.json b/Docs/TagInfo/mapcomplete_lactosefree.json index ee0ecf714c..2da614c40e 100644 --- a/Docs/TagInfo/mapcomplete_lactosefree.json +++ b/Docs/TagInfo/mapcomplete_lactosefree.json @@ -436,29 +436,29 @@ { "key": "reservation", "value": "required", - "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#Reservation", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", - "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#Reservation", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", - "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#Reservation", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", - "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#Reservation", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_lactosefree.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { @@ -2972,6 +2972,27 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_lactosefree.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_lactosefree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_lactosefree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops_lactosefree.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", diff --git a/Docs/TagInfo/mapcomplete_onwheels.json b/Docs/TagInfo/mapcomplete_onwheels.json index 1c66a707a3..6f50d087aa 100644 --- a/Docs/TagInfo/mapcomplete_onwheels.json +++ b/Docs/TagInfo/mapcomplete_onwheels.json @@ -1563,29 +1563,29 @@ { "key": "reservation", "value": "required", - "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/themes/onwheels/restaurant.svg" }, { "key": "reservation", "value": "recommended", - "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/themes/onwheels/restaurant.svg" }, { "key": "reservation", "value": "yes", - "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/themes/onwheels/restaurant.svg" }, { "key": "reservation", "value": "no", - "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layers Restaurants and fast food, Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/themes/onwheels/restaurant.svg" }, { @@ -3528,6 +3528,27 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#key_cutter", "icon_url": "./assets/themes/onwheels/shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/themes/onwheels/shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/themes/onwheels/shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/themes/onwheels/shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -4324,7 +4345,7 @@ }, { "key": "opening_hours:visitors", - "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", + "description": "Values of `opening_hours:visitors` are shown with \"

Opening hours for visitors

Regular visitors are allowed at the following moments: {opening_hours_table(opening_hours:visitors,,)}

Some wands might have different opening hours. Many hospitals allow visits during emergencies too.

\" and can be updated. The question is \"When are visitors allowed to visit?\" by layer Hospitals", "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/hospital.md#oh_visitor", "icon_url": "./assets/themes/onwheels/hospital.svg" }, diff --git a/Docs/TagInfo/mapcomplete_pets.json b/Docs/TagInfo/mapcomplete_pets.json index 3b5a10a61b..89f5a8aaf3 100644 --- a/Docs/TagInfo/mapcomplete_pets.json +++ b/Docs/TagInfo/mapcomplete_pets.json @@ -614,29 +614,29 @@ { "key": "reservation", "value": "required", - "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Dog friendly eateries", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#Reservation", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layers Dog friendly eateries, Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", - "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Dog friendly eateries", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#Reservation", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layers Dog friendly eateries, Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", - "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Dog friendly eateries", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#Reservation", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layers Dog friendly eateries, Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", - "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Dog friendly eateries", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#Reservation", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layers Dog friendly eateries, Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food_dog_friendly.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { @@ -3124,6 +3124,27 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/pet_shops.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layers Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/pet_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layers Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/pet_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layers Pet stores, Dog-friendly shops", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/pet_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", diff --git a/Docs/TagInfo/mapcomplete_postboxes.json b/Docs/TagInfo/mapcomplete_postboxes.json index 10d5454b68..f9250453ea 100644 --- a/Docs/TagInfo/mapcomplete_postboxes.json +++ b/Docs/TagInfo/mapcomplete_postboxes.json @@ -1774,6 +1774,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -2236,35 +2285,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_shops.json b/Docs/TagInfo/mapcomplete_shops.json index 416b91a883..00aee6bc1c 100644 --- a/Docs/TagInfo/mapcomplete_shops.json +++ b/Docs/TagInfo/mapcomplete_shops.json @@ -1472,6 +1472,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -1934,35 +1983,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_ski.json b/Docs/TagInfo/mapcomplete_ski.json index c7cfff14e6..b7fa66cfd0 100644 --- a/Docs/TagInfo/mapcomplete_ski.json +++ b/Docs/TagInfo/mapcomplete_ski.json @@ -1812,28 +1812,28 @@ "key": "reservation", "value": "required", "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "recommended", "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "yes", "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { "key": "reservation", "value": "no", "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Restaurants and fast food", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#Reservation", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/food.md#reservation", "icon_url": "./assets/layers/food/restaurant.svg" }, { diff --git a/Docs/TagInfo/mapcomplete_sports.json b/Docs/TagInfo/mapcomplete_sports.json index 011f078049..ac55bfec2d 100644 --- a/Docs/TagInfo/mapcomplete_sports.json +++ b/Docs/TagInfo/mapcomplete_sports.json @@ -2869,6 +2869,55 @@ "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#key_cutter", "icon_url": "./assets/layers/id_presets/maki-shop.svg" }, + { + "key": "male", + "value": "yes", + "description": "male=yes is displayed as \"Specializes in cutting men's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "female", + "value": "yes", + "description": "female=yes is displayed as \"Specializes in cutting women's hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "children", + "value": "yes", + "description": "children=yes is displayed as \"Specializes in cutting kids hair.\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#hairdresser_targetgroup", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "required", + "description": "reservation=required is displayed as \"A reservation is required at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "recommended", + "description": "reservation=recommended is displayed as \"A reservation is not required, but still recommended to make sure you get a table\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "yes", + "description": "reservation=yes is displayed as \"Reservation is possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, + { + "key": "reservation", + "value": "no", + "description": "reservation=no is displayed as \"Reservation is not possible at this place\" by layer Shop", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#reservation", + "icon_url": "./assets/layers/id_presets/maki-shop.svg" + }, { "key": "service:bicycle:retail", "value": "yes", @@ -3331,35 +3380,35 @@ "key": "dog", "value": "yes", "description": "dog=yes is displayed as \"Dogs are allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "no", "description": "dog=no is displayed as \"Dogs are not allowed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/no_dogs.svg" }, { "key": "dog", "value": "leashed", "description": "dog=leashed is displayed as \"Dogs are allowed, but they have to be leashed\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_leashed.svg" }, { "key": "dog", "value": "unleashed", "description": "dog=unleashed is displayed as \"Dogs are allowed and can run around freely\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_allowed.svg" }, { "key": "dog", "value": "outside", "description": "dog=outside is displayed as \"Dogs are allowed only outside\" by layer Shop", - "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#dog_access", + "doc_url": "https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/Docs/Layers/sport_shops.md#shop_dog_access", "icon_url": "./assets/layers/questions/dogs_outside.svg" }, { diff --git a/Docs/Themes/architecture.md b/Docs/Themes/architecture.md index ea03b1d29d..cecf7cf5c8 100644 --- a/Docs/Themes/architecture.md +++ b/Docs/Themes/architecture.md @@ -91,7 +91,8 @@ Elements must match **all** of the following expressions: ### architecture The question is `What is the architectural style of this building?` -*{building:architecture}* is shown if `building:architecture` is set + +*{building:architecture}* is shown if `building:architecture` is set. - *Islamic architecture* is shown if with
building:architecture=islamic - *Mamluk architecture* is shown if with building:architecture=mamluk @@ -131,11 +132,13 @@ The question is `What is the architectural style of this building?` ### construction_date The question is `When was this built?` -*Built in {construction_date}* is shown if `construction_date` is set + +*Built in {construction_date}* is shown if `construction_date` is set. ### address_joined _This tagrendering has no question and is thus read-only_ + *{group(header,street;housenumber;unit,)}* This tagrendering has labels @@ -144,6 +147,7 @@ This tagrendering has labels ### header _This tagrendering has no question and is thus read-only_ + *{addr:street} {addr:housenumber} {addr:unit}* - *No address is known* is shown if with addr:street= & addr:unit= & addr:housenumber= @@ -155,7 +159,8 @@ This tagrendering has labels ### housenumber The question is `What is the number of this house?` -*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set + +*The house number is {addr:housenumber}* is shown if `addr:housenumber` is set. - *This building has no house number* is shown if with nohousenumber=yes @@ -166,7 +171,8 @@ This tagrendering has labels ### street The question is `What street is this address located in?` -*This address is in street {addr:street}* is shown if `addr:street` is set + +*This address is in street {addr:street}* is shown if `addr:street` is set. This tagrendering has labels `address` @@ -175,7 +181,8 @@ This tagrendering has labels ### unit The question is `What is the unit number or letter?` -*The unit number is {addr:unit}* is shown if `addr:unit` is set + +*The unit number is {addr:unit}* is shown if `addr:unit` is set. - *No unit number* is shown if with addr:unit= @@ -186,6 +193,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -195,11 +203,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/atm.md b/Docs/Themes/atm.md index dee0442032..6f0eb9f39c 100644 --- a/Docs/Themes/atm.md +++ b/Docs/Themes/atm.md @@ -121,6 +121,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### has_atm @@ -134,6 +135,7 @@ The question is `Does this bank have an ATM?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -143,16 +145,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -228,12 +233,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -243,7 +250,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -254,7 +262,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -264,7 +273,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours for this post office?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -278,14 +288,16 @@ The question is `Is this a post partner?` ### post_offic_brand The question is `To which brand does this post office belong?` -*This is a {brand} post office* is shown if `brand` is set + +*This is a {brand} post office* is shown if `brand` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=post_office ### partner-brand The question is `For which brand does this location offer services?` -*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set + +*This location offers services for {post_office:brand}* is shown if `post_office:brand` is set. - *This location offers services for DHL* is shown if with post_office:brand=DHL - *This location offers services for DPD* is shown if with post_office:brand=DPD @@ -301,7 +313,8 @@ This tagrendering is only visible in the popup if the following condition is met ### letter-from The question is `Can you post a letter here?` -*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set + +*You can post letters with these companies: {post_office:letter_from}* is shown if `post_office:letter_from` is set. - *You can post letters here* is shown if with post_office:letter_from=yes - *You can't post letters here* is shown if with post_office:letter_from=no @@ -309,7 +322,8 @@ The question is `Can you post a letter here?` ### parcel-from The question is `Can you send a parcel here?` -*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set + +*You can post parcels with these companies: {post_office:parcel_from}* is shown if `post_office:parcel_from` is set. - *You can send parcels here* is shown if with post_office:parcel_from=yes - *You can't send parcels here* is shown if with post_office:parcel_from=no @@ -317,7 +331,8 @@ The question is `Can you send a parcel here?` ### parcel-pickup The question is `Can you pick up missed parcels here?` -*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set + +*You can pick up parcels from these companies: {post_office:parcel_pickup}* is shown if `post_office:parcel_pickup` is set. - *You can pick up missed parcels here* is shown if with post_office:parcel_pickup=yes - *You can't pick up missed parcels here* is shown if with post_office:parcel_pickup=no @@ -325,7 +340,8 @@ The question is `Can you pick up missed parcels here?` ### parcel-to The question is `Can you send parcels to here for pickup?` -*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set + +*You can send parcels to here for pickup with these companies: {post_office:parcel_to}* is shown if `post_office:parcel_to` is set. - *You can send parcels to here for pickup* is shown if with post_office:parcel_to=yes - *You can't send parcels to here for pickup* is shown if with post_office:parcel_to=no @@ -333,7 +349,8 @@ The question is `Can you send parcels to here for pickup?` ### stamps The question is `Can you buy stamps here?` -*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set + +*You can buy stamps from companies: {post_office:stamps}* is shown if `post_office:stamps` is set. - *You can buy stamps here* is shown if with post_office:stamps=yes - *You can't buy stamps here* is shown if with post_office:stamps=no @@ -349,6 +366,7 @@ The question is `Does this post office have an ATM?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -358,11 +376,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/bag.md b/Docs/Themes/bag.md index 5ce43b97b5..e101a641b5 100644 --- a/Docs/Themes/bag.md +++ b/Docs/Themes/bag.md @@ -112,6 +112,7 @@ Elements must match the expression **building~.+** ### Reference _This tagrendering has no question and is thus read-only_ + *The reference in BAG is {ref:bag}* - *This building has no reference in the BAG* is shown if with ref:bag= @@ -119,11 +120,13 @@ _This tagrendering has no question and is thus read-only_ ### Building type The question is `What kind of building is this?` -*This building is a {building}* is shown if `building` is set + +*This building is a {building}* is shown if `building` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -133,6 +136,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -169,6 +173,7 @@ Elements must match **all** of the following expressions: ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -177,6 +182,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -227,6 +233,7 @@ Elements must match the expression **identificatie~.+** ### Import button _This tagrendering has no question and is thus read-only_ + *{import_way_button(osm_buildings,building=$_bag_obj:building; ref:bag=$_bag_obj:ref:bag; source=BAG; source:date=$_bag_obj:source:date; start_date=$_bag_obj:start_date,{"*":"Upload this building to OpenStreetMap"},,,,,,,)}* - *Didn't calculate the correct values yet. Refresh this page* is shown if with _bag_obj:building= | _bag_obj:ref:bag= @@ -236,11 +243,13 @@ _This tagrendering has no question and is thus read-only_ ### Reference _This tagrendering has no question and is thus read-only_ + *The reference in BAG is {_bag_obj:ref:bag}* ### Build year _This tagrendering has no question and is thus read-only_ + *This building was built in {_bag_obj:start_date}* - *The building was started in {_bag_obj:start_date}* is shown if with _bag_obj:in_construction=true @@ -248,6 +257,7 @@ _This tagrendering has no question and is thus read-only_ ### Building type _This tagrendering has no question and is thus read-only_ + *The building type is a {_bag_obj:building}* - *The building type will be a {_bag_obj:construction}* is shown if with _bag_obj:in_construction=true @@ -255,6 +265,7 @@ _This tagrendering has no question and is thus read-only_ ### Overlapping building _This tagrendering has no question and is thus read-only_ + *
The overlapping osm_buildings is a {_osm_obj:building} and covers {_overlap_percentage}% of the BAG building.
The BAG-building covers {_reverse_overlap_percentage}% of the OSM building

BAG geometry:

{minimap(21, id):height:10rem;border-radius:1rem;overflow:hidden}

OSM geometry:

{minimap(21,_osm_obj:id):height:10rem;border-radius:1rem;overflow:hidden}
* This tagrendering is only visible in the popup if the following condition is met: _overlaps_with~.+ @@ -262,16 +273,19 @@ This tagrendering is only visible in the popup if the following condition is met ### Building status _This tagrendering has no question and is thus read-only_ + *The current building status is {status}* ### Buidling function _This tagrendering has no question and is thus read-only_ + *The current function of the building is {gebruiksdoel}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -281,6 +295,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -318,6 +333,7 @@ Elements must match the expression **identificatie~.+** ### Import button _This tagrendering has no question and is thus read-only_ + *{import_button(osm_adresses, addr:city=$woonplaats; addr:housenumber=$_bag_obj:addr:housenumber; addr:postcode=$postcode; addr:street=$openbare_ruimte; ref:bag=$_bag_obj:ref:bag; source=BAG; source:date=$_bag_obj:source:date, Upload this adress to OpenStreetMap)}* This tagrendering is only visible in the popup if the following condition is met: _imported_osm_object_found=false @@ -325,11 +341,13 @@ This tagrendering is only visible in the popup if the following condition is met ### Address _This tagrendering has no question and is thus read-only_ + *{openbare_ruimte} {_bag_obj:addr:housenumber}, {woonplaats} {postcode}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -339,6 +357,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/buurtnatuur.md b/Docs/Themes/buurtnatuur.md index a58940b5cb..60231b20b3 100644 --- a/Docs/Themes/buurtnatuur.md +++ b/Docs/Themes/buurtnatuur.md @@ -119,12 +119,14 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Access tag The question is `Is dit gebied toegankelijk?` -*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set + +*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set. - *Dit gebied is vrij toegankelijk* is shown if with access:description= & access= & leisure=park. _This option cannot be chosen as answer_ - *Vrij toegankelijk* is shown if with access:description= & access=yes & fee= @@ -137,7 +139,8 @@ The question is `Is dit gebied toegankelijk?` ### Operator tag The question is `Wie beheert dit gebied?` -*Beheer door {operator}* is shown if `operator` is set + +*Beheer door {operator}* is shown if `operator` is set. - *Beheer door de gemeente* is shown if with leisure=park & operator=. _This option cannot be chosen as answer_ - *Dit gebied wordt beheerd door Natuurpunt* is shown if with operator=Natuurpunt @@ -148,30 +151,35 @@ The question is `Wie beheert dit gebied?` ### Non-editable description _This tagrendering has no question and is thus read-only_ -*Extra info: {description}* is shown if `description` is set + +*Extra info: {description}* is shown if `description` is set. ### Editable description The question is `Is er extra info die je kwijt wil?` -*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set + +*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set. ### Name:nl-tag The question is `Wat is de Nederlandstalige naam van dit gebied?` -*Dit gebied heet {name:nl}* is shown if `name:nl` is set + +*Dit gebied heet {name:nl}* is shown if `name:nl` is set. This tagrendering is only visible in the popup if the following condition is met: name:nl~.+ & viewpoint!~^(tourism)$ ### Name tag The question is `Wat is de naam van dit gebied?` -*Dit gebied heet {name}* is shown if `name` is set + +*Dit gebied heet {name}* is shown if `name` is set. - *Dit gebied heeft geen naam* is shown if with noname=yes & name= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -181,6 +189,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -238,12 +247,14 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Access tag The question is `Is dit gebied toegankelijk?` -*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set + +*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set. - *Dit gebied is vrij toegankelijk* is shown if with access:description= & access= & leisure=park. _This option cannot be chosen as answer_ - *Vrij toegankelijk* is shown if with access:description= & access=yes & fee= @@ -256,7 +267,8 @@ The question is `Is dit gebied toegankelijk?` ### Operator tag The question is `Wie beheert dit gebied?` -*Beheer door {operator}* is shown if `operator` is set + +*Beheer door {operator}* is shown if `operator` is set. - *Beheer door de gemeente* is shown if with leisure=park & operator=. _This option cannot be chosen as answer_ - *Dit gebied wordt beheerd door Natuurpunt* is shown if with operator=Natuurpunt @@ -267,30 +279,35 @@ The question is `Wie beheert dit gebied?` ### Non-editable description _This tagrendering has no question and is thus read-only_ -*Extra info: {description}* is shown if `description` is set + +*Extra info: {description}* is shown if `description` is set. ### Editable description The question is `Is er extra info die je kwijt wil?` -*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set + +*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set. ### Name:nl-tag The question is `Wat is de Nederlandstalige naam van dit gebied?` -*Dit gebied heet {name:nl}* is shown if `name:nl` is set + +*Dit gebied heet {name:nl}* is shown if `name:nl` is set. This tagrendering is only visible in the popup if the following condition is met: name:nl~.+ & viewpoint!~^(tourism)$ ### Name tag The question is `Wat is de naam van dit gebied?` -*Dit gebied heet {name}* is shown if `name` is set + +*Dit gebied heet {name}* is shown if `name` is set. - *Dit gebied heeft geen naam* is shown if with noname=yes & name= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -300,6 +317,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -358,12 +376,14 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Access tag The question is `Is dit gebied toegankelijk?` -*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set + +*De toegankelijkheid van dit gebied is: {access:description}* is shown if `access:description` is set. - *Dit gebied is vrij toegankelijk* is shown if with access:description= & access= & leisure=park. _This option cannot be chosen as answer_ - *Vrij toegankelijk* is shown if with access:description= & access=yes & fee= @@ -376,7 +396,8 @@ The question is `Is dit gebied toegankelijk?` ### Operator tag The question is `Wie beheert dit gebied?` -*Beheer door {operator}* is shown if `operator` is set + +*Beheer door {operator}* is shown if `operator` is set. - *Beheer door de gemeente* is shown if with leisure=park & operator=. _This option cannot be chosen as answer_ - *Dit gebied wordt beheerd door Natuurpunt* is shown if with operator=Natuurpunt @@ -387,30 +408,35 @@ The question is `Wie beheert dit gebied?` ### Non-editable description _This tagrendering has no question and is thus read-only_ -*Extra info: {description}* is shown if `description` is set + +*Extra info: {description}* is shown if `description` is set. ### Editable description The question is `Is er extra info die je kwijt wil?` -*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set + +*Extra info via buurtnatuur.be: {description:0}* is shown if `description:0` is set. ### Name:nl-tag The question is `Wat is de Nederlandstalige naam van dit gebied?` -*Dit gebied heet {name:nl}* is shown if `name:nl` is set + +*Dit gebied heet {name:nl}* is shown if `name:nl` is set. This tagrendering is only visible in the popup if the following condition is met: name:nl~.+ & viewpoint!~^(tourism)$ ### Name tag The question is `Wat is de naam van dit gebied?` -*Dit gebied heet {name}* is shown if `name` is set + +*Dit gebied heet {name}* is shown if `name` is set. - *Dit gebied heeft geen naam* is shown if with noname=yes & name= ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -420,6 +446,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/circular_economy.md b/Docs/Themes/circular_economy.md index e481f4c29c..f464be905e 100644 --- a/Docs/Themes/circular_economy.md +++ b/Docs/Themes/circular_economy.md @@ -61,6 +61,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -84,7 +86,7 @@ Available languages: + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -167,6 +169,7 @@ Elements must match **any** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -240,6 +243,8 @@ Elements must match **any** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -263,7 +268,7 @@ Elements must match **any** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -310,22 +315,26 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -499,7 +508,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -516,14 +526,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -533,7 +545,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -544,7 +557,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -562,6 +576,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -571,7 +586,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -622,6 +638,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -664,7 +701,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -683,7 +721,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -692,7 +731,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -701,7 +741,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -710,7 +751,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -719,7 +761,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -728,7 +771,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -737,7 +781,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -776,7 +821,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -812,7 +858,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -869,7 +916,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -882,11 +929,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -895,6 +944,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -919,6 +969,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -933,7 +984,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -953,7 +1005,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -988,7 +1041,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1058,7 +1112,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1148,7 +1203,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1184,7 +1240,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1257,6 +1314,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1272,6 +1330,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1289,6 +1348,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1306,6 +1366,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1347,6 +1408,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1363,6 +1425,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1398,7 +1461,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1417,7 +1483,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1434,7 +1503,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1493,6 +1565,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1509,6 +1582,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1519,6 +1593,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1528,16 +1603,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/climbing.md b/Docs/Themes/climbing.md index 0a3b142a09..228b463051 100644 --- a/Docs/Themes/climbing.md +++ b/Docs/Themes/climbing.md @@ -67,6 +67,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -90,7 +92,7 @@ Available languages: + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -174,6 +176,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -248,6 +251,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -271,7 +276,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -325,22 +330,26 @@ The question is `Does this shoe repair shop repair climbing shoes?` ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -514,7 +523,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -531,14 +541,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -548,7 +560,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -559,7 +572,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -577,6 +591,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -586,7 +601,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -637,6 +653,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -679,7 +716,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -698,7 +736,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -707,7 +746,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -716,7 +756,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -725,7 +766,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -734,7 +776,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -743,7 +786,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -752,7 +796,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -791,7 +836,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -827,7 +873,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -884,7 +931,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -897,11 +944,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -910,6 +959,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -934,6 +984,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -948,7 +999,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -968,7 +1020,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -1003,7 +1056,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1073,7 +1127,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1163,7 +1218,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1199,7 +1255,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1272,6 +1329,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1287,6 +1345,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1304,6 +1363,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1321,6 +1381,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1362,6 +1423,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1378,6 +1440,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1413,7 +1476,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1432,7 +1498,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1449,7 +1518,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1508,6 +1580,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1524,6 +1597,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1534,6 +1608,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1543,16 +1618,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/cycle_highways.md b/Docs/Themes/cycle_highways.md index 2f9d304e9d..e18c53d036 100644 --- a/Docs/Themes/cycle_highways.md +++ b/Docs/Themes/cycle_highways.md @@ -108,17 +108,20 @@ Elements must match **all** of the following expressions: ### cycle_highways-name The question is `What is the name of this cycle highway?` -*The name is {name}* is shown if `name` is set + +*The name is {name}* is shown if `name` is set. ### cycle_highways-ref The question is `What is the reference number of this cycle highway?` -*Referentienummer is {ref}* is shown if `ref` is set + +*Referentienummer is {ref}* is shown if `ref` is set. ### cycle_highways-state The question is `What is the state of this link?` -*The current state of this link is {state}* is shown if `state` is set + +*The current state of this link is {state}* is shown if `state` is set. - *This is a proposed route which can be cycled* is shown if with state=proposed & note:state= - *This is a proposed route which has missing links (thus: some parts don't even have a building permit yet)* is shown if with state=proposed & note:state=has_highway_no @@ -129,12 +132,14 @@ The question is `What is the state of this link?` ### cycle-highway-length _This tagrendering has no question and is thus read-only_ + *This part is {_length:km}km long* ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -144,11 +149,13 @@ This tagrendering has labels ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -158,6 +165,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -241,17 +249,20 @@ Elements must match **all** of the following expressions: ### cycle_highways-name The question is `What is the name of this cycle highway?` -*The name is {name}* is shown if `name` is set + +*The name is {name}* is shown if `name` is set. ### cycle_highways-ref The question is `What is the reference number of this cycle highway?` -*Referentienummer is {ref}* is shown if `ref` is set + +*Referentienummer is {ref}* is shown if `ref` is set. ### cycle_highways-state The question is `What is the state of this link?` -*The current state of this link is {state}* is shown if `state` is set + +*The current state of this link is {state}* is shown if `state` is set. - *This is a proposed route which can be cycled* is shown if with state=proposed & note:state= - *This is a proposed route which has missing links (thus: some parts don't even have a building permit yet)* is shown if with state=proposed & note:state=has_highway_no @@ -262,12 +273,14 @@ The question is `What is the state of this link?` ### cycle-highway-length _This tagrendering has no question and is thus read-only_ + *This part is {_length:km}km long* ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -277,11 +290,13 @@ This tagrendering has labels ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -291,6 +306,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/cyclenodes.md b/Docs/Themes/cyclenodes.md index 66e7aaf22d..0830888e44 100644 --- a/Docs/Themes/cyclenodes.md +++ b/Docs/Themes/cyclenodes.md @@ -107,18 +107,21 @@ Elements must match **all** of the following expressions: ### node2node-survey:date The question is `When was this node to node link last surveyed?` -*This node to node link was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This node to node link was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### export_as_gpx Shows a button to export this feature as GPX. Especially useful for route relations _This tagrendering has no question and is thus read-only_ + *{export_as_gpx()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -128,6 +131,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -177,30 +181,35 @@ Elements must match **any** of the following expressions: ### node-rxn_ref The question is `What is the reference number of this cycling node?` -*This cycling node has reference number {rcn_ref}* is shown if `rcn_ref` is set + +*This cycling node has reference number {rcn_ref}* is shown if `rcn_ref` is set. This tagrendering is only visible in the popup if the following condition is met: rcn_ref~.+ ### node-survey:date The question is `When was this cycle node last surveyed?` -*This cycle node was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This cycle node was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### node-expected_rcn_route_relations The question is `How many other cycle nodes does this node link to?` -*This node links to {expected_rcn_route_relations} other cycle nodes.* is shown if `expected_rcn_route_relations` is set + +*This node links to {expected_rcn_route_relations} other cycle nodes.* is shown if `expected_rcn_route_relations` is set. ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -210,6 +219,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -265,32 +275,37 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### name The question is `What is the name noted on this guidepost?` -*Name noted on the guidepost: {name}* is shown if `name` is set + +*Name noted on the guidepost: {name}* is shown if `name` is set. - *There is no name noted on this guidepost* is shown if with noname=yes ### ref The question is `What is the reference number of this guidepost?` -*Reference number of the guidepost: {ref}* is shown if `ref` is set + +*Reference number of the guidepost: {ref}* is shown if `ref` is set. - *There is no reference number noted on this guidepost* is shown if with noref=yes ### ele The question is `What is the elevation noted on this guidepost?` -*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set + +*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set. - *There is no elevation noted on this guidepost* is shown if with noele=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -300,16 +315,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/cyclestreets.md b/Docs/Themes/cyclestreets.md index be9692d4e2..a7e4630f96 100644 --- a/Docs/Themes/cyclestreets.md +++ b/Docs/Themes/cyclestreets.md @@ -104,6 +104,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### is_cyclestreet @@ -133,13 +134,15 @@ This tagrendering is only visible in the popup if the following condition is met ### future_cyclestreet The question is `When will this street become a cyclestreet?` -*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set + +*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set. This tagrendering is only visible in the popup if the following condition is met: proposed:cyclestreet=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -149,11 +152,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -200,6 +205,7 @@ Elements must match **any** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### is_cyclestreet @@ -229,13 +235,15 @@ This tagrendering is only visible in the popup if the following condition is met ### future_cyclestreet The question is `When will this street become a cyclestreet?` -*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set + +*This street will become a cyclestreet at {cyclestreet:start_date}* is shown if `cyclestreet:start_date` is set. This tagrendering is only visible in the popup if the following condition is met: proposed:cyclestreet=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -245,11 +253,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/cyclofix.md b/Docs/Themes/cyclofix.md index 44fbc43b4d..d0be2a311b 100644 --- a/Docs/Themes/cyclofix.md +++ b/Docs/Themes/cyclofix.md @@ -307,22 +307,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### preset_description _This tagrendering has no question and is thus read-only_ + *{preset_description()}* ### name The question is `What is the name of this repair workshop?` -*This workshop is called {name}* is shown if `name` is set + +*This workshop is called {name}* is shown if `name` is set. ### opening_hours_by_appointment The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Only by appointment* is shown if with opening_hours="by appointment" - *Only by appointment* is shown if with opening_hours~^("by appointment"|by appointment)$. _This option cannot be chosen as answer_ @@ -331,7 +335,8 @@ The question is `What are the opening hours of {title()}?` ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -341,7 +346,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -352,7 +358,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -362,12 +369,14 @@ This tagrendering has labels ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### facebook Shows and asks for the facebook handle The question is `What is the facebook page of of {title()}?` -*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set + +*{link(Facebook page,&LBRACEcontact:facebook&RBRACE,,,,)}
Facebook is known to harm mental health, manipulate public opinion and cause hate. Try to use healthier alternatives
* is shown if `contact:facebook` is set. ### item:repair @@ -383,6 +392,7 @@ The question is `What type of items are repaired here?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -392,16 +402,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -479,6 +492,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bicycle_rental_type @@ -497,7 +511,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -507,7 +522,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -518,7 +534,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -528,7 +545,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -557,7 +575,8 @@ The question is `Which methods of payment are accepted here?` ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -575,7 +594,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*city_bike.*)$ This tagrendering has labels @@ -584,7 +604,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*ebike.*)$ This tagrendering has labels @@ -593,7 +614,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -602,7 +624,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bmx.*)$ This tagrendering has labels @@ -611,7 +634,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*mtb.*)$ This tagrendering has labels @@ -620,7 +644,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -629,7 +654,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -638,6 +664,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -647,16 +674,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -923,6 +953,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Type @@ -938,7 +969,8 @@ The question is `Which vehicles are allowed to charge here?` ### access The question is `Who is allowed to use this charging station?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Anyone can use this charging station (payment might be needed)* is shown if with access=yes - *Anyone can use this charging station (payment might be needed)* is shown if with access=public. _This option cannot be chosen as answer_ @@ -950,7 +982,8 @@ The question is `Who is allowed to use this charging station?` ### capacity The question is `How much vehicles can be charged here at the same time?` -*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set + +*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set. ### Available_charging_stations (generated) @@ -1002,7 +1035,8 @@ The question is `Which charging connections are available here?` ### plugs-amount-socket:schuko The question is `How much plugs of type Schuko wall plug without ground pin (CEE7/4 type F) are available here?` -*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set + +*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set. This tagrendering is only visible in the popup if the following condition is met: socket:schuko~.+ & socket:schuko!=0 This tagrendering has labels @@ -1011,7 +1045,8 @@ This tagrendering has labels ### voltage-socket:schuko The question is `What voltage do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt* is shown if with socket:schuko:voltage=230 @@ -1022,7 +1057,8 @@ This tagrendering has labels ### current-socket:schuko The question is `What current do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A* is shown if with socket:schuko:current=16 @@ -1033,7 +1069,8 @@ This tagrendering has labels ### power-output-socket:schuko The question is `What power output does a single plug of type Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kW* is shown if with socket:schuko:output=3.6 kW @@ -1044,7 +1081,8 @@ This tagrendering has labels ### plugs-amount-socket:typee The question is `How much plugs of type European wall plug with ground pin (CEE7/4 type E) are available here?` -*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set + +*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set. This tagrendering is only visible in the popup if the following condition is met: socket:typee~.+ & socket:typee!=0 This tagrendering has labels @@ -1053,7 +1091,8 @@ This tagrendering has labels ### voltage-socket:typee The question is `What voltage do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs 230 volt* is shown if with socket:typee:voltage=230 @@ -1064,7 +1103,8 @@ This tagrendering has labels ### current-socket:typee The question is `What current do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A* is shown if with socket:typee:current=16 @@ -1075,7 +1115,8 @@ This tagrendering has labels ### power-output-socket:typee The question is `What power output does a single plug of type European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kW* is shown if with socket:typee:output=3 kW - *European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kW* is shown if with socket:typee:output=22 kW @@ -1087,7 +1128,8 @@ This tagrendering has labels ### plugs-amount-socket:chademo The question is `How much plugs of type Chademo are available here?` -*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set + +*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:chademo~.+ & socket:chademo!=0 This tagrendering has labels @@ -1096,7 +1138,8 @@ This tagrendering has labels ### voltage-socket:chademo The question is `What voltage do the plugs with Chademo offer?` -*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set + +*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set. - *Chademo outputs 500 volt* is shown if with socket:chademo:voltage=500 @@ -1107,7 +1150,8 @@ This tagrendering has labels ### current-socket:chademo The question is `What current do the plugs with Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set + +*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set. - *Chademo outputs at most 120 A* is shown if with socket:chademo:current=120 @@ -1118,7 +1162,8 @@ This tagrendering has labels ### power-output-socket:chademo The question is `What power output does a single plug of type Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set + +*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set. - *Chademo outputs at most 50 kW* is shown if with socket:chademo:output=50 kW @@ -1129,7 +1174,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_cable The question is `How much plugs of type Type 1 with cable (J1772) are available here?` -*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set + +*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_cable~.+ & socket:type1_cable!=0 This tagrendering has labels @@ -1138,7 +1184,8 @@ This tagrendering has labels ### voltage-socket:type1_cable The question is `What voltage do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set + +*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set. - *Type 1 with cable (J1772) outputs 200 volt* is shown if with socket:type1_cable:voltage=200 - *Type 1 with cable (J1772) outputs 240 volt* is shown if with socket:type1_cable:voltage=240 @@ -1150,7 +1197,8 @@ This tagrendering has labels ### current-socket:type1_cable The question is `What current do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set. - *Type 1 with cable (J1772) outputs at most 32 A* is shown if with socket:type1_cable:current=32 @@ -1161,7 +1209,8 @@ This tagrendering has labels ### power-output-socket:type1_cable The question is `What power output does a single plug of type Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set. - *Type 1 with cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1_cable:output=3.7 kW - *Type 1 with cable (J1772) outputs at most 7 kW* is shown if with socket:type1_cable:output=7 kW @@ -1173,7 +1222,8 @@ This tagrendering has labels ### plugs-amount-socket:type1 The question is `How much plugs of type Type 1 without cable (J1772) are available here?` -*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set + +*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1~.+ & socket:type1!=0 This tagrendering has labels @@ -1182,7 +1232,8 @@ This tagrendering has labels ### voltage-socket:type1 The question is `What voltage do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set + +*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set. - *Type 1 without cable (J1772) outputs 200 volt* is shown if with socket:type1:voltage=200 - *Type 1 without cable (J1772) outputs 240 volt* is shown if with socket:type1:voltage=240 @@ -1194,7 +1245,8 @@ This tagrendering has labels ### current-socket:type1 The question is `What current do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set. - *Type 1 without cable (J1772) outputs at most 32 A* is shown if with socket:type1:current=32 @@ -1205,7 +1257,8 @@ This tagrendering has labels ### power-output-socket:type1 The question is `What power output does a single plug of type Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set. - *Type 1 without cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1:output=3.7 kW - *Type 1 without cable (J1772) outputs at most 6.6 kW* is shown if with socket:type1:output=6.6 kW @@ -1219,7 +1272,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_combo The question is `How much plugs of type Type 1 CCS (aka Type 1 Combo) are available here?` -*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set + +*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_combo~.+ & socket:type1_combo!=0 This tagrendering has labels @@ -1228,7 +1282,8 @@ This tagrendering has labels ### voltage-socket:type1_combo The question is `What voltage do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set + +*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set. - *Type 1 CCS (aka Type 1 Combo) outputs 400 volt* is shown if with socket:type1_combo:voltage=400 - *Type 1 CCS (aka Type 1 Combo) outputs 1000 volt* is shown if with socket:type1_combo:voltage=1000 @@ -1240,7 +1295,8 @@ This tagrendering has labels ### current-socket:type1_combo The question is `What current do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 A* is shown if with socket:type1_combo:current=50 - *Type 1 CCS (aka Type 1 Combo) outputs at most 125 A* is shown if with socket:type1_combo:current=125 @@ -1252,7 +1308,8 @@ This tagrendering has labels ### power-output-socket:type1_combo The question is `What power output does a single plug of type Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 kW* is shown if with socket:type1_combo:output=50 kW - *Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kW* is shown if with socket:type1_combo:output=62.5 kW @@ -1266,7 +1323,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger The question is `How much plugs of type Tesla Supercharger are available here?` -*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set + +*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger~.+ & socket:tesla_supercharger!=0 This tagrendering has labels @@ -1275,7 +1333,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger The question is `What voltage do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set + +*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set. - *Tesla Supercharger outputs 480 volt* is shown if with socket:tesla_supercharger:voltage=480 @@ -1286,7 +1345,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger The question is `What current do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set. - *Tesla Supercharger outputs at most 125 A* is shown if with socket:tesla_supercharger:current=125 - *Tesla Supercharger outputs at most 350 A* is shown if with socket:tesla_supercharger:current=350 @@ -1298,7 +1358,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger The question is `What power output does a single plug of type Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set. - *Tesla Supercharger outputs at most 120 kW* is shown if with socket:tesla_supercharger:output=120 kW - *Tesla Supercharger outputs at most 150 kW* is shown if with socket:tesla_supercharger:output=150 kW @@ -1311,7 +1372,8 @@ This tagrendering has labels ### plugs-amount-socket:type2 The question is `How much plugs of type Type 2 (mennekes) are available here?` -*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set + +*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2~.+ & socket:type2!=0 This tagrendering has labels @@ -1320,7 +1382,8 @@ This tagrendering has labels ### voltage-socket:type2 The question is `What voltage do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set + +*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set. - *Type 2 (mennekes) outputs 230 volt* is shown if with socket:type2:voltage=230 - *Type 2 (mennekes) outputs 400 volt* is shown if with socket:type2:voltage=400 @@ -1332,7 +1395,8 @@ This tagrendering has labels ### current-socket:type2 The question is `What current do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set. - *Type 2 (mennekes) outputs at most 16 A* is shown if with socket:type2:current=16 - *Type 2 (mennekes) outputs at most 32 A* is shown if with socket:type2:current=32 @@ -1344,7 +1408,8 @@ This tagrendering has labels ### power-output-socket:type2 The question is `What power output does a single plug of type Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set. - *Type 2 (mennekes) outputs at most 11 kW* is shown if with socket:type2:output=11 kW - *Type 2 (mennekes) outputs at most 22 kW* is shown if with socket:type2:output=22 kW @@ -1356,7 +1421,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_combo The question is `How much plugs of type Type 2 CCS (mennekes) are available here?` -*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set + +*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_combo~.+ & socket:type2_combo!=0 This tagrendering has labels @@ -1365,7 +1431,8 @@ This tagrendering has labels ### voltage-socket:type2_combo The question is `What voltage do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set + +*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set. - *Type 2 CCS (mennekes) outputs 500 volt* is shown if with socket:type2_combo:voltage=500 - *Type 2 CCS (mennekes) outputs 920 volt* is shown if with socket:type2_combo:voltage=920 @@ -1377,7 +1444,8 @@ This tagrendering has labels ### current-socket:type2_combo The question is `What current do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set. - *Type 2 CCS (mennekes) outputs at most 125 A* is shown if with socket:type2_combo:current=125 - *Type 2 CCS (mennekes) outputs at most 350 A* is shown if with socket:type2_combo:current=350 @@ -1389,7 +1457,8 @@ This tagrendering has labels ### power-output-socket:type2_combo The question is `What power output does a single plug of type Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set. - *Type 2 CCS (mennekes) outputs at most 50 kW* is shown if with socket:type2_combo:output=50 kW @@ -1400,7 +1469,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_cable The question is `How much plugs of type Type 2 with cable (mennekes) are available here?` -*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set + +*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_cable~.+ & socket:type2_cable!=0 This tagrendering has labels @@ -1409,7 +1479,8 @@ This tagrendering has labels ### voltage-socket:type2_cable The question is `What voltage do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set + +*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set. - *Type 2 with cable (mennekes) outputs 230 volt* is shown if with socket:type2_cable:voltage=230 - *Type 2 with cable (mennekes) outputs 400 volt* is shown if with socket:type2_cable:voltage=400 @@ -1421,7 +1492,8 @@ This tagrendering has labels ### current-socket:type2_cable The question is `What current do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set. - *Type 2 with cable (mennekes) outputs at most 16 A* is shown if with socket:type2_cable:current=16 - *Type 2 with cable (mennekes) outputs at most 32 A* is shown if with socket:type2_cable:current=32 @@ -1433,7 +1505,8 @@ This tagrendering has labels ### power-output-socket:type2_cable The question is `What power output does a single plug of type Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set. - *Type 2 with cable (mennekes) outputs at most 11 kW* is shown if with socket:type2_cable:output=11 kW - *Type 2 with cable (mennekes) outputs at most 22 kW* is shown if with socket:type2_cable:output=22 kW @@ -1445,7 +1518,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger_ccs The question is `How much plugs of type Tesla Supercharger CCS (a branded type2_css) are available here?` -*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set + +*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger_ccs~.+ & socket:tesla_supercharger_ccs!=0 This tagrendering has labels @@ -1454,7 +1528,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger_ccs The question is `What voltage do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs 500 volt* is shown if with socket:tesla_supercharger_ccs:voltage=500 - *Tesla Supercharger CCS (a branded type2_css) outputs 920 volt* is shown if with socket:tesla_supercharger_ccs:voltage=920 @@ -1466,7 +1541,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger_ccs The question is `What current do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A* is shown if with socket:tesla_supercharger_ccs:current=125 - *Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A* is shown if with socket:tesla_supercharger_ccs:current=350 @@ -1478,7 +1554,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger_ccs The question is `What power output does a single plug of type Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kW* is shown if with socket:tesla_supercharger_ccs:output=50 kW @@ -1489,7 +1566,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination_us The question is `How much plugs of type Tesla Supercharger (destination) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -1498,7 +1576,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination_us The question is `What voltage do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla Supercharger (destination) outputs 480 volt* is shown if with socket:tesla_destination:voltage=480 @@ -1509,7 +1588,8 @@ This tagrendering has labels ### current-socket:tesla_destination_us The question is `What current do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla Supercharger (destination) outputs at most 125 A* is shown if with socket:tesla_destination:current=125 - *Tesla Supercharger (destination) outputs at most 350 A* is shown if with socket:tesla_destination:current=350 @@ -1521,7 +1601,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination_us The question is `What power output does a single plug of type Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla Supercharger (destination) outputs at most 120 kW* is shown if with socket:tesla_destination:output=120 kW - *Tesla Supercharger (destination) outputs at most 150 kW* is shown if with socket:tesla_destination:output=150 kW @@ -1534,7 +1615,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination The question is `How much plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -1543,7 +1625,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination The question is `What voltage do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt* is shown if with socket:tesla_destination:voltage=230 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt* is shown if with socket:tesla_destination:voltage=400 @@ -1555,7 +1638,8 @@ This tagrendering has labels ### current-socket:tesla_destination The question is `What current do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A* is shown if with socket:tesla_destination:current=16 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A* is shown if with socket:tesla_destination:current=32 @@ -1567,7 +1651,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination The question is `What power output does a single plug of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kW* is shown if with socket:tesla_destination:output=11 kW - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kW* is shown if with socket:tesla_destination:output=22 kW @@ -1579,7 +1664,8 @@ This tagrendering has labels ### plugs-amount-socket:USB-A The question is `How much plugs of type USB to charge phones and small electronics are available here?` -*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set + +*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set. This tagrendering is only visible in the popup if the following condition is met: socket:USB-A~.+ & socket:USB-A!=0 This tagrendering has labels @@ -1588,7 +1674,8 @@ This tagrendering has labels ### voltage-socket:USB-A The question is `What voltage do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set + +*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set. - *USB to charge phones and small electronics outputs 5 volt* is shown if with socket:USB-A:voltage=5 @@ -1599,7 +1686,8 @@ This tagrendering has labels ### current-socket:USB-A The question is `What current do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set. - *USB to charge phones and small electronics outputs at most 1 A* is shown if with socket:USB-A:current=1 - *USB to charge phones and small electronics outputs at most 2 A* is shown if with socket:USB-A:current=2 @@ -1611,7 +1699,8 @@ This tagrendering has labels ### power-output-socket:USB-A The question is `What power output does a single plug of type USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set. - *USB to charge phones and small electronics outputs at most 5W* is shown if with socket:USB-A:output=5W - *USB to charge phones and small electronics outputs at most 10W* is shown if with socket:USB-A:output=10W @@ -1623,7 +1712,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_3pin The question is `How much plugs of type Bosch Active Connect with 3 pins and cable are available here?` -*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set + +*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1632,7 +1722,8 @@ This tagrendering has labels ### voltage-socket:bosch_3pin The question is `What voltage do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set + +*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1641,7 +1732,8 @@ This tagrendering has labels ### current-socket:bosch_3pin The question is `What current do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1650,7 +1742,8 @@ This tagrendering has labels ### power-output-socket:bosch_3pin The question is `What power output does a single plug of type Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1659,7 +1752,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_5pin The question is `How much plugs of type Bosch Active Connect with 5 pins and cable are available here?` -*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set + +*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1668,7 +1762,8 @@ This tagrendering has labels ### voltage-socket:bosch_5pin The question is `What voltage do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set + +*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1677,7 +1772,8 @@ This tagrendering has labels ### current-socket:bosch_5pin The question is `What current do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1686,7 +1782,8 @@ This tagrendering has labels ### power-output-socket:bosch_5pin The question is `What power output does a single plug of type Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1695,7 +1792,8 @@ This tagrendering has labels ### plugs-amount-socket:bs1363 The question is `How much plugs of type BS1363 (Type G) are available here?` -*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set + +*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bs1363~.+ & socket:bs1363!=0 This tagrendering has labels @@ -1704,7 +1802,8 @@ This tagrendering has labels ### voltage-socket:bs1363 The question is `What voltage do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set + +*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set. - *BS1363 (Type G) outputs 230 volt* is shown if with socket:bs1363:voltage=230 @@ -1715,7 +1814,8 @@ This tagrendering has labels ### current-socket:bs1363 The question is `What current do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set. - *BS1363 (Type G) outputs at most 13 A* is shown if with socket:bs1363:current=13 @@ -1726,7 +1826,8 @@ This tagrendering has labels ### power-output-socket:bs1363 The question is `What power output does a single plug of type BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set. - *BS1363 (Type G) outputs at most 3kW* is shown if with socket:bs1363:output=3kW @@ -1737,7 +1838,8 @@ This tagrendering has labels ### plugs-amount-socket:nema5_15 The question is `How much plugs of type NEMA 5-15 (Type B) are available here?` -*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set + +*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema5_15~.+ & socket:nema5_15!=0 This tagrendering has labels @@ -1746,7 +1848,8 @@ This tagrendering has labels ### voltage-socket:nema5_15 The question is `What voltage do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set + +*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set. - *NEMA 5-15 (Type B) outputs 120 volt* is shown if with socket:nema5_15:voltage=120 @@ -1757,7 +1860,8 @@ This tagrendering has labels ### current-socket:nema5_15 The question is `What current do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set. - *NEMA 5-15 (Type B) outputs at most 15 A* is shown if with socket:nema5_15:current=15 @@ -1768,7 +1872,8 @@ This tagrendering has labels ### power-output-socket:nema5_15 The question is `What power output does a single plug of type NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set. - *NEMA 5-15 (Type B) outputs at most 1.8 kW* is shown if with socket:nema5_15:output=1.8 kW @@ -1779,7 +1884,8 @@ This tagrendering has labels ### plugs-amount-socket:sev1011_t23 The question is `How much plugs of type SEV 1011 T23 (Type J) are available here?` -*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set + +*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set. This tagrendering is only visible in the popup if the following condition is met: socket:sev1011_t23~.+ & socket:sev1011_t23!=0 This tagrendering has labels @@ -1788,7 +1894,8 @@ This tagrendering has labels ### voltage-socket:sev1011_t23 The question is `What voltage do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set + +*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set. - *SEV 1011 T23 (Type J) outputs 230 volt* is shown if with socket:sev1011_t23:voltage=230 @@ -1799,7 +1906,8 @@ This tagrendering has labels ### current-socket:sev1011_t23 The question is `What current do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set. - *SEV 1011 T23 (Type J) outputs at most 16 A* is shown if with socket:sev1011_t23:current=16 @@ -1810,7 +1918,8 @@ This tagrendering has labels ### power-output-socket:sev1011_t23 The question is `What power output does a single plug of type SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set. - *SEV 1011 T23 (Type J) outputs at most 3.7 kW* is shown if with socket:sev1011_t23:output=3.7 kW @@ -1821,7 +1930,8 @@ This tagrendering has labels ### plugs-amount-socket:as3112 The question is `How much plugs of type AS3112 (Type I) are available here?` -*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set + +*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set. This tagrendering is only visible in the popup if the following condition is met: socket:as3112~.+ & socket:as3112!=0 This tagrendering has labels @@ -1830,7 +1940,8 @@ This tagrendering has labels ### voltage-socket:as3112 The question is `What voltage do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set + +*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set. - *AS3112 (Type I) outputs 230 volt* is shown if with socket:as3112:voltage=230 @@ -1841,7 +1952,8 @@ This tagrendering has labels ### current-socket:as3112 The question is `What current do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set. - *AS3112 (Type I) outputs at most 10 A* is shown if with socket:as3112:current=10 @@ -1852,7 +1964,8 @@ This tagrendering has labels ### power-output-socket:as3112 The question is `What power output does a single plug of type AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set. - *AS3112 (Type I) outputs at most 2.3 kW* is shown if with socket:as3112:output=2.3 kW @@ -1863,7 +1976,8 @@ This tagrendering has labels ### plugs-amount-socket:nema_5_20 The question is `How much plugs of type NEMA 5-20 (Type B) are available here?` -*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set + +*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema_5_20~.+ & socket:nema_5_20!=0 This tagrendering has labels @@ -1872,7 +1986,8 @@ This tagrendering has labels ### voltage-socket:nema_5_20 The question is `What voltage do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set + +*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set. - *NEMA 5-20 (Type B) outputs 120 volt* is shown if with socket:nema_5_20:voltage=120 @@ -1883,7 +1998,8 @@ This tagrendering has labels ### current-socket:nema_5_20 The question is `What current do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set. - *NEMA 5-20 (Type B) outputs at most 20 A* is shown if with socket:nema_5_20:current=20 @@ -1894,7 +2010,8 @@ This tagrendering has labels ### power-output-socket:nema_5_20 The question is `What power output does a single plug of type NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set. - *NEMA 5-20 (Type B) outputs at most 2.4 kW* is shown if with socket:nema_5_20:output=2.4 kW @@ -1905,7 +2022,8 @@ This tagrendering has labels ### OH The question is `When is this charging station opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -1923,7 +2041,8 @@ The question is `Does one have to pay to use this charging station?` ### charge The question is `How much does one have to pay to use this charging station?` -*Using this charging station costs {charge}* is shown if `charge` is set + +*Using this charging station costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -1943,7 +2062,8 @@ This tagrendering is only visible in the popup if the following condition is met ### app-name The question is `What is the name of the app used for payment?` -*Payment can be done using the app {payment:app}* is shown if `payment:app` is set + +*Payment can be done using the app {payment:app}* is shown if `payment:app` is set. This tagrendering is only visible in the popup if the following condition is met: payment:app~.+ & payment:app!=no @@ -1963,14 +2083,16 @@ The question is `What kind of authentication is available at the charging statio ### Auth phone The question is `What's the phone number for authentication call or SMS?` -*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set + +*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set. This tagrendering is only visible in the popup if the following condition is met: authentication:phone_call=yes | authentication:short_message=yes ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited @@ -1979,7 +2101,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Network The question is `Is this charging station part of a network?` -*Part of the network {network}* is shown if `network` is set + +*Part of the network {network}* is shown if `network` is set. - *Not part of a bigger network, e.g. because the charging station is maintained by a local business* is shown if with no:network=yes - *Not part of a bigger network* is shown if with network=none. _This option cannot be chosen as answer_ @@ -1993,28 +2116,33 @@ The question is `Is this charging station part of a network?` ### Operator The question is `Who is the operator of this charging station?` -*This charging station is operated by {operator}* is shown if `operator` is set + +*This charging station is operated by {operator}* is shown if `operator` is set. - *Actually, {operator} is the network* is shown if with network= ### phone The question is `What number can one call if there is a problem with this charging station?` -*In case of problems, call {phone}* is shown if `phone` is set + +*In case of problems, call {phone}* is shown if `phone` is set. ### email The question is `What is the email address of the operator?` -*In case of problems, send an email to {email}* is shown if `email` is set + +*In case of problems, send an email to {email}* is shown if `email` is set. ### website The question is `What is the website where one can find more information about this charging station?` -*More info on {website}* is shown if `website` is set + +*More info on {website}* is shown if `website` is set. ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -2024,7 +2152,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -2038,7 +2167,8 @@ This tagrendering has labels ### ref The question is `What is the reference number of this charging station?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. This tagrendering is only visible in the popup if the following condition is met: network~.+ @@ -2062,26 +2192,31 @@ The question is `Does one have to pay a parking fee while charging?` ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### questions-technical _This tagrendering has no question and is thus read-only_ + *

Technical questions

The questions below are very technical. Feel free to ignore them
{questions(technical)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -2171,11 +2306,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -2185,7 +2322,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -2199,7 +2337,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -2234,7 +2373,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -2244,7 +2384,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -2306,7 +2447,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -2319,7 +2461,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2329,7 +2472,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2339,21 +2483,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -2369,6 +2516,7 @@ The question is `Is this vending machine still operational?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -2378,16 +2526,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/etymology.md b/Docs/Themes/etymology.md index 061899cd0e..f001f81fd5 100644 --- a/Docs/Themes/etymology.md +++ b/Docs/Themes/etymology.md @@ -228,16 +228,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -245,38 +248,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -284,6 +294,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -335,16 +346,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -352,38 +366,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -391,6 +412,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -442,16 +464,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -459,38 +484,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -498,6 +530,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -549,16 +582,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -566,38 +602,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -605,6 +648,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -656,16 +700,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -673,38 +720,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -712,6 +766,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -763,16 +818,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -780,38 +838,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -819,6 +884,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -870,16 +936,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -887,38 +956,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -926,6 +1002,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -977,16 +1054,19 @@ Elements must match **all** of the following expressions: ### etymology-images-from-wikipedia _This tagrendering has no question and is thus read-only_ + *{image_carousel(name:etymology:wikidata)}* ### wikipedia-etymology The question is `What is the Wikidata-item that this object is named after?` -*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set + +*

Wikipedia article of the name giver

{wikipedia(name:etymology:wikidata):max-height:20rem}* is shown if `name:etymology:wikidata` is set. ### zoeken op inventaris onroerend erfgoed _This tagrendering has no question and is thus read-only_ + *Search on inventaris onroerend erfgoed* This tagrendering is only visible in the popup if the following condition is met: _country=be @@ -994,38 +1074,45 @@ This tagrendering is only visible in the popup if the following condition is met ### simple etymology The question is `What is this object named after?` -*Named after {name:etymology}* is shown if `name:etymology` is set + +*Named after {name:etymology}* is shown if `name:etymology` is set. - *The origin of this name is unknown in all literature* is shown if with name:etymology=unknown ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### streetsign-image-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:streetsign;panoramax:streetsign)}* ### streetsign-upload _This tagrendering has no question and is thus read-only_ + *{image_upload(image:streetsign,Add image of a street name sign,)}* ### minimap _This tagrendering has no question and is thus read-only_ + *{minimap(18, id, _same_name_ids):height:10rem}* ### etymology_multi_apply _This tagrendering has no question and is thus read-only_ + *{multi_apply(_same_name_ids, name:etymology:wikidata;name:etymology, Auto-applying data on all segments with the same name, true)}* ### wikipedia _This tagrendering has no question and is thus read-only_ + *A Wikipedia article about this street exists:
{wikipedia():max-height:25rem}* This tagrendering is only visible in the popup if the following condition is met: wikidata~.+ @@ -1033,6 +1120,7 @@ This tagrendering is only visible in the popup if the following condition is met ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/facadegardens.md b/Docs/Themes/facadegardens.md index 1068e900f6..509331e766 100644 --- a/Docs/Themes/facadegardens.md +++ b/Docs/Themes/facadegardens.md @@ -111,12 +111,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### facadegardens-direction The question is `What is the orientation of the garden?` -*Orientation: {direction} (where 0=N and 90=O)* is shown if `direction` is set + +*Orientation: {direction} (where 0=N and 90=O)* is shown if `direction` is set. ### facadegardens-sunshine @@ -136,7 +138,8 @@ The question is `Is there a water barrel installed for the garden?` ### facadegardens-start_date The question is `When was the garden constructed? (a year is sufficient)` -*Construction date of the garden: {start_date}* is shown if `start_date` is set + +*Construction date of the garden: {start_date}* is shown if `start_date` is set. ### facadegardens-edible @@ -157,11 +160,13 @@ The question is `What kinds of plants grow here?` ### facadegardens-description The question is `Extra describing info about the garden (if needed and not yet described above)` -*More details: {description}* is shown if `description` is set + +*More details: {description}* is shown if `description` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -171,16 +176,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/fritures.md b/Docs/Themes/fritures.md index 666efbe7c3..edbd0bc693 100644 --- a/Docs/Themes/fritures.md +++ b/Docs/Themes/fritures.md @@ -56,7 +56,7 @@ Available languages: + [show-menu-image](#show-menu-image) + [add-menu-image](#add-menu-image) + [menu-website](#menu-website) - + [Reservation](#reservation) + + [reservation](#reservation) + [Takeaway](#takeaway) + [delivery](#delivery) + [drive-through](#drive-through) @@ -231,7 +231,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -300,17 +300,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -322,14 +325,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -339,7 +344,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -350,7 +356,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -368,6 +375,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -377,7 +385,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -400,7 +409,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -425,19 +435,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -473,7 +486,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -666,7 +680,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -677,6 +692,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -685,6 +701,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -709,6 +726,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -723,7 +741,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -743,7 +762,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -778,7 +798,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -848,7 +869,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -938,7 +960,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -974,7 +997,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1047,6 +1071,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1062,6 +1087,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1079,6 +1105,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1096,6 +1123,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1137,6 +1165,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1153,6 +1182,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1188,7 +1218,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1207,7 +1240,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1224,7 +1260,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1283,6 +1322,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1299,6 +1339,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1309,6 +1350,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1318,16 +1360,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/ghostsigns.md b/Docs/Themes/ghostsigns.md index 37b68125c3..376fdd0234 100644 --- a/Docs/Themes/ghostsigns.md +++ b/Docs/Themes/ghostsigns.md @@ -144,12 +144,14 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type The question is `Which type of advertising feature is this?` -*This is a {advertising}* is shown if `advertising` is set + +*This is a {advertising}* is shown if `advertising` is set. - *This is a billboard* is shown if with advertising=billboard - *This is a board* is shown if with advertising=board @@ -188,7 +190,8 @@ The question is `Is this object lit or does it emit light?` ### operator The question is `Who operates this feature?` -*Operated by {operator}* is shown if `operator` is set + +*Operated by {operator}* is shown if `operator` is set. ### message_type @@ -217,7 +220,8 @@ This tagrendering is only visible in the popup if the following condition is met ### ref The question is `Wich is the reference number?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. ### historic @@ -229,6 +233,7 @@ The question is `Is this sign for a business that no longer exists or no longer ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -238,16 +243,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -356,12 +364,14 @@ The question is `Is this artwork a historic advertisement?` ### images_no_blur Same as `images`, but uploaded request to disable blurring to the panoramax server _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload(,,,true)}* ### artwork-artwork_type The question is `What is the type of this artwork?` -*This is a {artwork_type}* is shown if `artwork_type` is set + +*This is a {artwork_type}* is shown if `artwork_type` is set. - *Architecture* is shown if with artwork_type=architecture - *Mural* is shown if with artwork_type=mural @@ -384,7 +394,8 @@ This tagrendering has labels ### artwork-artist-wikidata The question is `Who made this artwork?` -*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set + +*This artwork was made by {wikidata_label(artist:wikidata):font-weight:bold}
{wikipedia(artist:wikidata)}* is shown if `artist:wikidata` is set. This tagrendering has labels `artwork-question` @@ -392,7 +403,8 @@ This tagrendering has labels ### artwork-artist_name The question is `Which artist created this?` -*Created by {artist_name}* is shown if `artist_name` is set + +*Created by {artist_name}* is shown if `artist_name` is set. This tagrendering has labels `artwork-question` @@ -400,7 +412,8 @@ This tagrendering has labels ### artwork-website The question is `Is there a website with more information about this artwork?` -*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set + +*{link(More information on this website,&LBRACEwebsite&RBRACE,,,,)}* is shown if `website` is set. This tagrendering has labels `artwork-question` @@ -408,7 +421,8 @@ This tagrendering has labels ### wikipedia Shows a wikipedia box with the corresponding wikipedia article; the wikidata-item link can be changed by a contributor The question is `What is the corresponding Wikidata entity?` -*{wikipedia():max-height:25rem}* is shown if `wikidata` is set + +*{wikipedia():max-height:25rem}* is shown if `wikidata` is set. - *{wikipedia():max-height:25rem}* is shown if with wikipedia~.+. _This option cannot be chosen as answer_ - *No Wikipedia page has been linked yet* is shown if with wikidata=. _This option cannot be chosen as answer_ @@ -416,7 +430,8 @@ The question is `What is the corresponding Wikidata entity?` ### artwork_subject The question is `What does this artwork depict?` -*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*This artwork depicts {wikidata_label(subject:wikidata)}{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering has labels `artwork-question` @@ -431,7 +446,8 @@ The question is `Does this artwork serve as a memorial?` ### memorial-type The question is `What type of memorial is this?` -*This is a {memorial}* is shown if `memorial` is set + +*This is a {memorial}* is shown if `memorial` is set. - *This is a statue* is shown if with memorial=statue - *This is a plaque* is shown if with memorial=plaque @@ -456,7 +472,8 @@ This tagrendering has labels ### inscription The question is `What is the inscription on this memorial?` -*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set + +*The inscription on this memorial reads:

{inscription}

* is shown if `inscription` is set. - *This memorial does not have an inscription* is shown if with not:inscription=yes @@ -467,7 +484,8 @@ This tagrendering has labels ### memorial-wikidata The question is `What is the Wikipedia page about this memorial?` -*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set + +*

Wikipedia page about the memorial

{wikipedia(wikidata)}* is shown if `wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -477,7 +495,8 @@ This tagrendering has labels ### subject-wikidata The question is `What is the Wikipedia page about the person or event that is remembered here?` -*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set + +*

Wikipedia page about the remembered event or person

{wikipedia(subject:wikidata)}* is shown if `subject:wikidata` is set. This tagrendering is only visible in the popup if the following condition is met: historic=memorial This tagrendering has labels @@ -518,7 +537,8 @@ This tagrendering has labels ### bench-seats The question is `How many seats does this bench have?` -*This bench has {seats} seats* is shown if `seats` is set + +*This bench has {seats} seats* is shown if `seats` is set. - *This bench does not have separated seats* is shown if with seats:separated=no @@ -529,7 +549,8 @@ This tagrendering has labels ### bench-material The question is `What is the bench (seating) made from?` -*Material: {material}* is shown if `material` is set + +*Material: {material}* is shown if `material` is set. - *The seating is made from wood* is shown if with material=wood - *The seating is made from metal* is shown if with material=metal @@ -545,7 +566,8 @@ This tagrendering has labels ### bench-direction The question is `In which direction are you looking when sitting on the bench?` -*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set + +*When sitting on the bench, one looks towards {direction}°.* is shown if `direction` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bench & two_sided!=yes This tagrendering has labels @@ -554,7 +576,8 @@ This tagrendering has labels ### bench-colour The question is `Which colour does this bench have?` -*Colour: {colour}* is shown if `colour` is set + +*Colour: {colour}* is shown if `colour` is set. - *Colour: brown* is shown if with colour=brown - *Colour: green* is shown if with colour=green @@ -572,7 +595,8 @@ This tagrendering has labels ### bench-survey:date The question is `When was this bench last surveyed?` -*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This bench was last surveyed on {survey:date}* is shown if `survey:date` is set. - *Surveyed today!* is shown if with survey:date= @@ -583,7 +607,8 @@ This tagrendering has labels ### bench-inscription The question is `Does this bench have an inscription?` -*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set + +*This bench has the following inscription:

{inscription}

* is shown if `inscription` is set. - *This bench does not have an inscription* is shown if with not:inscription=yes - *This bench probably does not not have an inscription* is shown if with inscription=. _This option cannot be chosen as answer_ @@ -613,7 +638,8 @@ The question is `Does this artwork also double as wayside shrine?` ### shrine_name The question is `What's the name of this {title()}?` -*The name of this {title()} is {name}* is shown if `name` is set + +*The name of this {title()} is {name}* is shown if `name` is set. - *This shrine does not have a name* is shown if with noname=yes @@ -624,7 +650,8 @@ This tagrendering has labels ### religion The question is `To which religion is this shrine dedicated?` -*This shrine is {religion}* is shown if `religion` is set + +*This shrine is {religion}* is shown if `religion` is set. - *This is a Christian shrine* is shown if with religion=christian - *This is a Buddhist shrine* is shown if with religion=buddhist @@ -645,7 +672,8 @@ This tagrendering has labels ### denomination_christian The question is `What's the Christian denomination of this {title()}?` -*The religious denomination is {denomination}* is shown if `denomination` is set + +*The religious denomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Catholic* is shown if with denomination=catholic - *The religious subdenomination is Roman Catholic* is shown if with denomination=roman_catholic @@ -665,7 +693,8 @@ This tagrendering has labels ### denomination_muslim The question is `What's the Muslim denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Shia* is shown if with denomination=shia - *The religious subdenomination is Sunni* is shown if with denomination=sunni @@ -678,7 +707,8 @@ This tagrendering has labels ### denomination_jewish The question is `What's the Jewish denomination of this shrine?` -*The religious subdenomination is {denomination}* is shown if `denomination` is set + +*The religious subdenomination is {denomination}* is shown if `denomination` is set. - *The religious subdenomination is Conservative* is shown if with denomination=conservative - *The religious subdenomination is Orthodox* is shown if with denomination=orthodox @@ -692,7 +722,8 @@ This tagrendering has labels ### denomination_other The question is `What's the denomination of this shrine?` -*The denomination of this shrine is {denomination}* is shown if `denomination` is set + +*The denomination of this shrine is {denomination}* is shown if `denomination` is set. This tagrendering is only visible in the popup if the following condition is met: historic=wayside_shrine & religion!=christian & religion!=muslim & religion!=jewish & religion~.+ This tagrendering has labels @@ -701,6 +732,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -710,16 +742,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/glutenfree.md b/Docs/Themes/glutenfree.md index a8880e022a..37ecfe1a62 100644 --- a/Docs/Themes/glutenfree.md +++ b/Docs/Themes/glutenfree.md @@ -60,7 +60,7 @@ Available languages: + [show-menu-image](#show-menu-image) + [add-menu-image](#add-menu-image) + [menu-website](#menu-website) - + [Reservation](#reservation) + + [reservation](#reservation) + [Takeaway](#takeaway) + [delivery](#delivery) + [drive-through](#drive-through) @@ -173,6 +173,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -195,7 +197,7 @@ Available languages: + [organic](#organic) + [sugar_free](#sugar_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -349,7 +351,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -417,11 +419,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -439,7 +443,8 @@ This tagrendering has labels ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -451,14 +456,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -468,7 +475,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -479,7 +487,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -497,6 +506,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -506,7 +516,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -529,7 +540,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -554,19 +566,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -602,7 +617,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -783,7 +799,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -794,6 +811,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -802,6 +820,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -826,6 +845,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -840,7 +860,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -860,7 +881,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -895,7 +917,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -965,7 +988,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1055,7 +1079,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1091,7 +1116,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1164,6 +1190,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1179,6 +1206,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1196,6 +1224,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1213,6 +1242,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1254,6 +1284,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1270,6 +1301,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1305,7 +1337,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1324,7 +1359,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1341,7 +1379,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1400,6 +1441,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1416,6 +1458,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1426,6 +1469,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1435,16 +1479,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1604,11 +1651,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -1626,19 +1675,22 @@ This tagrendering has labels ### 1 The question is `What is the name of this ice cream parlor?` -*This ice cream parlor is named {name}* is shown if `name` is set + +*This ice cream parlor is named {name}* is shown if `name` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -1648,7 +1700,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -1659,7 +1712,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -1722,6 +1776,7 @@ The question is `Is this place accessible with a wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -1731,11 +1786,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1806,6 +1863,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -1879,6 +1937,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -1901,7 +1961,7 @@ Elements must match **all** of the following expressions: | [organic](#organic) | Does this shop offer organic products?
3 options | | _Multiple choice only_ | | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -1948,11 +2008,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### gluten_free @@ -1970,12 +2032,14 @@ This tagrendering has labels ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -2149,7 +2213,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -2166,14 +2231,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2183,7 +2250,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -2194,7 +2262,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2212,6 +2281,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -2221,7 +2291,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -2272,6 +2343,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -2314,7 +2406,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -2333,7 +2426,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -2342,7 +2436,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -2351,7 +2446,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -2360,7 +2456,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -2369,7 +2466,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -2378,7 +2476,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -2387,7 +2486,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -2426,7 +2526,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -2462,7 +2563,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -2506,7 +2608,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -2519,11 +2621,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -2532,6 +2636,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -2556,6 +2661,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -2570,7 +2676,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -2590,7 +2697,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -2625,7 +2733,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -2695,7 +2804,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -2785,7 +2895,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -2821,7 +2932,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -2894,6 +3006,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -2909,6 +3022,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2926,6 +3040,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2943,6 +3058,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -2984,6 +3100,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -3000,6 +3117,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -3035,7 +3153,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -3054,7 +3175,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -3071,7 +3195,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -3130,6 +3257,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -3146,6 +3274,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -3156,6 +3285,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -3165,16 +3295,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/grb.md b/Docs/Themes/grb.md index 586c20f362..d1e6d2b0b4 100644 --- a/Docs/Themes/grb.md +++ b/Docs/Themes/grb.md @@ -120,7 +120,8 @@ Elements must match **all** of the following expressions: ### building type The question is `What kind of building is this?` -*The building type is {building}* is shown if `building` is set + +*The building type is {building}* is shown if `building` is set. - *A normal house* is shown if with building=house - *A house detached from other building* is shown if with building=detached @@ -135,25 +136,29 @@ The question is `What kind of building is this?` ### grb-housenumber The question is `Wat is het huisnummer?` -*Het huisnummer is {addr:housenumber}* is shown if `addr:housenumber` is set + +*Het huisnummer is {addr:housenumber}* is shown if `addr:housenumber` is set. - *Geen huisnummer* is shown if with not:addr:housenumber=yes & addr:housenumber= ### grb-unit The question is `Wat is de wooneenheid-aanduiding?` -*De wooneenheid-aanduiding is {addr:unit} * is shown if `addr:unit` is set + +*De wooneenheid-aanduiding is {addr:unit} * is shown if `addr:unit` is set. - *Geen wooneenheid-nummer* is shown if with addr:unit= ### grb-street The question is `Wat is de straat?` -*De straat is {addr:street}* is shown if `addr:street` is set + +*De straat is {addr:street}* is shown if `addr:street` is set. ### grb-reference _This tagrendering has no question and is thus read-only_ + *Has been imported from GRB, reference number is {source:geometry:ref}* This tagrendering is only visible in the popup if the following condition is met: source:geometry:ref~.+ @@ -161,23 +166,27 @@ This tagrendering is only visible in the popup if the following condition is met ### grb-fixme The question is `Wat zegt de fixme?` -*De fixme is {fixme}* is shown if `fixme` is set + +*De fixme is {fixme}* is shown if `fixme` is set. - *Geen fixme* is shown if with fixme= ### grb-min-level The question is `Hoeveel verdiepingen ontbreken?` -*Dit gebouw begint maar op de {building:min_level} verdieping* is shown if `building:min_level` is set + +*Dit gebouw begint maar op de {building:min_level} verdieping* is shown if `building:min_level` is set. ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -187,6 +196,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -245,6 +255,7 @@ Elements must match **all** of the following expressions: ### Import-button _This tagrendering has no question and is thus read-only_ + *{import_way_button(osm_buildings_no_points,building=$building;man_made=$man_made; source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref; addr:street=$addr:street; addr:housenumber=$addr:housenumber; building:min_level=$_building:min_level, Upload this building to OpenStreetMap,,_is_part_of_building=true,1,_moveable=true)}* - *Did not yet calculate the metatags... Reopen this popup* is shown if with _grb_ref= @@ -255,11 +266,13 @@ _This tagrendering has no question and is thus read-only_ ### Building info _This tagrendering has no question and is thus read-only_ + *This is a {building} detected by {detection_method}* ### overlapping building address _This tagrendering has no question and is thus read-only_ + *The overlapping openstreetmap-building has no address information at all* - *The overlapping openstreetmap-building has address {_osm_obj:addr:street} {_osm_obj:addr:housenumber}* is shown if with _osm_obj:addr:street~.+ & _osm_obj:addr:housenumber~.+ @@ -270,6 +283,7 @@ _This tagrendering has no question and is thus read-only_ ### grb_address_diff _This tagrendering has no question and is thus read-only_ + *
The overlapping openstreetmap-building has a different address then this GRB-object: {addr:street} {addr:housenumber}
{tag_apply(addr:street=$addr:street; addr:housenumber=$addr:housenumber,Copy the GRB-address onto the OSM-object,,_osm_obj:id)}* This tagrendering is only visible in the popup if the following condition is met: (addr:street!= | addr:housenumber!=) & _osm_obj:id~.+ & addr:street~.+ & addr:housenumber~.+ @@ -277,6 +291,7 @@ This tagrendering is only visible in the popup if the following condition is met ### overlapping building id _This tagrendering has no question and is thus read-only_ + *The overlapping openstreetmap-building has id {_osm_obj:id}* This tagrendering is only visible in the popup if the following condition is met: _osm_obj:id~.+ @@ -284,6 +299,7 @@ This tagrendering is only visible in the popup if the following condition is met ### overlapping building type _This tagrendering has no question and is thus read-only_ + *The overlapping building is a {_osm_obj:building} and covers {_overlap_percentage}% of the GRB building.
The GRB-building covers {_reverse_overlap_percentage}% of the OSM building
The OSM-building is based on GRB-data from {_osm_obj:source:date}.* This tagrendering is only visible in the popup if the following condition is met: _osm_obj:id~.+ @@ -291,6 +307,7 @@ This tagrendering is only visible in the popup if the following condition is met ### overlapping building map _This tagrendering has no question and is thus read-only_ + *

GRB geometry:

{minimap(21, id):height:10rem;border-radius:1rem;overflow:hidden}

OSM geometry:

{minimap(21,_osm_obj:id):height:10rem;border-radius:1rem;overflow:hidden}* This tagrendering is only visible in the popup if the following condition is met: _osm_obj:id~.+ @@ -298,6 +315,7 @@ This tagrendering is only visible in the popup if the following condition is met ### apply-id _This tagrendering has no question and is thus read-only_ + *{tag_apply(source:geometry:date=$_grb_date; source:geometry:ref=$_grb_ref,Mark the OSM-building as imported,,_osm_obj:id)}* This tagrendering is only visible in the popup if the following condition is met: _imported!=yes & _overlaps_with~.+ @@ -305,6 +323,7 @@ This tagrendering is only visible in the popup if the following condition is met ### apply-building-type _This tagrendering has no question and is thus read-only_ + *{tag_apply(building=$building,Use the building type from GRB,,_osm_obj:id)}* This tagrendering is only visible in the popup if the following condition is met: _osm_obj:building=yes & _overlaps_with~.+ & building!=yes @@ -312,6 +331,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -321,6 +341,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -352,6 +373,7 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -254,6 +257,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -277,7 +282,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -324,22 +329,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -513,7 +522,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -530,14 +540,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -547,7 +559,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -558,7 +571,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -576,6 +590,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -585,7 +600,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -636,6 +652,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -678,7 +715,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -697,7 +735,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -706,7 +745,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -715,7 +755,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -724,7 +765,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -733,7 +775,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -742,7 +785,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -751,7 +795,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -790,7 +835,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -826,7 +872,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -883,7 +930,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -896,11 +943,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -909,6 +958,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -933,6 +983,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -947,7 +998,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -967,7 +1019,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -1002,7 +1055,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1072,7 +1126,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1162,7 +1217,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1198,7 +1254,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1271,6 +1328,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1286,6 +1344,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1303,6 +1362,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1320,6 +1380,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1361,6 +1422,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1377,6 +1439,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1412,7 +1475,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1431,7 +1497,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1448,7 +1517,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1507,6 +1579,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1523,6 +1596,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1533,6 +1607,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1542,16 +1617,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/kerbs_and_crossings.md b/Docs/Themes/kerbs_and_crossings.md index d69588f86a..3d8e3bb68b 100644 --- a/Docs/Themes/kerbs_and_crossings.md +++ b/Docs/Themes/kerbs_and_crossings.md @@ -125,6 +125,7 @@ Elements must match the expression ** *This crossing has no markings* is shown if with crossing:markings=no - *This crossing has zebra markings* is shown if with crossing:markings=zebra @@ -259,6 +261,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -268,11 +271,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/lactosefree.md b/Docs/Themes/lactosefree.md index 1563de2d6e..de45dffa47 100644 --- a/Docs/Themes/lactosefree.md +++ b/Docs/Themes/lactosefree.md @@ -57,7 +57,7 @@ Available languages: + [show-menu-image](#show-menu-image) + [add-menu-image](#add-menu-image) + [menu-website](#menu-website) - + [Reservation](#reservation) + + [reservation](#reservation) + [Takeaway](#takeaway) + [delivery](#delivery) + [drive-through](#drive-through) @@ -170,6 +170,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -192,7 +194,7 @@ Available languages: + [organic](#organic) + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -346,7 +348,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -414,11 +416,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -436,7 +440,8 @@ This tagrendering has labels ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -448,14 +453,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -465,7 +472,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -476,7 +484,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -494,6 +503,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -503,7 +513,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -526,7 +537,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -551,19 +563,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -599,7 +614,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -780,7 +796,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -791,6 +808,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -799,6 +817,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -823,6 +842,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -837,7 +857,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -857,7 +878,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -892,7 +914,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -962,7 +985,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1052,7 +1076,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1088,7 +1113,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1161,6 +1187,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1176,6 +1203,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1193,6 +1221,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1210,6 +1239,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1251,6 +1281,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1267,6 +1298,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1302,7 +1334,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1321,7 +1356,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1338,7 +1376,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1397,6 +1438,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1413,6 +1455,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1423,6 +1466,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1432,16 +1476,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1601,11 +1648,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -1623,19 +1672,22 @@ This tagrendering has labels ### 1 The question is `What is the name of this ice cream parlor?` -*This ice cream parlor is named {name}* is shown if `name` is set + +*This ice cream parlor is named {name}* is shown if `name` is set. ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -1645,7 +1697,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -1656,7 +1709,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -1719,6 +1773,7 @@ The question is `Is this place accessible with a wheelchair?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -1728,11 +1783,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1803,6 +1860,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -1876,6 +1934,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -1898,7 +1958,7 @@ Elements must match **all** of the following expressions: | [organic](#organic) | Does this shop offer organic products?
3 options | | _Multiple choice only_ | | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -1945,11 +2005,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lactose_free @@ -1967,12 +2029,14 @@ This tagrendering has labels ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -2146,7 +2210,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -2163,14 +2228,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2180,7 +2247,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -2191,7 +2259,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2209,6 +2278,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -2218,7 +2288,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -2269,6 +2340,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -2311,7 +2403,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -2330,7 +2423,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -2339,7 +2433,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -2348,7 +2443,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -2357,7 +2453,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -2366,7 +2463,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -2375,7 +2473,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -2384,7 +2483,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -2423,7 +2523,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -2459,7 +2560,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -2503,7 +2605,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -2516,11 +2618,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -2529,6 +2633,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -2553,6 +2658,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -2567,7 +2673,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -2587,7 +2694,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -2622,7 +2730,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -2692,7 +2801,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -2782,7 +2892,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -2818,7 +2929,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -2891,6 +3003,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -2906,6 +3019,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2923,6 +3037,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2940,6 +3055,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -2981,6 +3097,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -2997,6 +3114,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -3032,7 +3150,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -3051,7 +3172,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -3068,7 +3192,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -3127,6 +3254,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -3143,6 +3271,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -3153,6 +3282,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -3162,16 +3292,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/mapcomplete-changes.md b/Docs/Themes/mapcomplete-changes.md index 1330f61084..047386cb85 100644 --- a/Docs/Themes/mapcomplete-changes.md +++ b/Docs/Themes/mapcomplete-changes.md @@ -92,27 +92,32 @@ Elements must match the expression **editor~.+** ### show_changeset_id _This tagrendering has no question and is thus read-only_ + *Changeset {id}* ### contributor The question is `What contributor did make this change?` -*Change made by {user}* is shown if `user` is set + +*Change made by {user}* is shown if `user` is set. ### theme-id The question is `What theme was used to make this change?` -*Change with theme {theme}* is shown if `theme` is set + +*Change with theme {theme}* is shown if `theme` is set. ### locale The question is `What locale (language) was this change made in?` -*User locale is {locale}* is shown if `locale` is set + +*User locale is {locale}* is shown if `locale` is set. ### host The question is `What host (website) was this change made with?` -*Change with with {host}* is shown if `host` is set + +*Change with with {host}* is shown if `host` is set. - *waldbrand-app.de* is shown if with host=www.waldbrand-app.de. _This option cannot be chosen as answer_ - *Develop* is shown if with host~^(https:\/\/pietervdvn.github.io\/mc\/develop\/.*)$. _This option cannot be chosen as answer_ @@ -127,11 +132,13 @@ The question is `With what platform was the change made?` ### version The question is `What version of MapComplete was used to make this change?` -*Made with {editor}* is shown if `editor` is set + +*Made with {editor}* is shown if `editor` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -141,6 +148,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/onwheels.md b/Docs/Themes/onwheels.md index a2271e5f8a..8f109672da 100644 --- a/Docs/Themes/onwheels.md +++ b/Docs/Themes/onwheels.md @@ -108,11 +108,13 @@ Elements must match **all** of the following expressions: ### _stolen_entrances _This tagrendering has no question and is thus read-only_ + *{steal(_enclosing_building,walls_and_buildings.entrance_info; walls_and_buildings.biggest_width)}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -122,6 +124,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -157,16 +160,19 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -294,6 +297,8 @@ Elements must match the expression ** _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -366,22 +371,26 @@ Elements must match the expression **
*Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -555,7 +564,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -572,14 +582,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -589,7 +601,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -600,7 +613,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -618,6 +632,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -627,7 +642,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -678,6 +694,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -720,7 +757,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -739,7 +777,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -748,7 +787,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -757,7 +797,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -766,7 +807,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -775,7 +817,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -784,7 +827,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -793,7 +837,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -832,7 +877,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -868,7 +914,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -925,7 +972,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -938,11 +985,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -951,6 +1000,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -975,6 +1025,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -989,7 +1040,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -1009,7 +1061,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -1044,7 +1097,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1114,7 +1168,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1204,7 +1259,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1240,7 +1296,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1313,6 +1370,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1328,6 +1386,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1345,6 +1404,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1362,6 +1422,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1403,6 +1464,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1419,6 +1481,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1454,7 +1517,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1473,7 +1539,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1490,7 +1559,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1549,6 +1621,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1565,6 +1638,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1592,6 +1666,7 @@ The question is `Does {title()} have a private video booth?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1601,16 +1676,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1907,11 +1985,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -1921,7 +2001,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -1935,7 +2016,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -1970,7 +2052,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -1980,7 +2063,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -2042,7 +2126,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -2055,7 +2140,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2065,7 +2151,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2075,21 +2162,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -2112,6 +2202,7 @@ The question is `Does {title()} have a private video booth?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -2121,16 +2212,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -2207,17 +2301,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2227,7 +2324,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -2238,7 +2336,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2255,7 +2354,8 @@ The question is `What type of cinema is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -2269,6 +2369,7 @@ The question is `Does {title()} have a private video booth?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -2278,11 +2379,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/pets.md b/Docs/Themes/pets.md index 5ae802b25d..76ae89865c 100644 --- a/Docs/Themes/pets.md +++ b/Docs/Themes/pets.md @@ -66,7 +66,7 @@ Available languages: + [show-menu-image](#show-menu-image) + [add-menu-image](#add-menu-image) + [menu-website](#menu-website) - + [Reservation](#reservation) + + [reservation](#reservation) + [Takeaway](#takeaway) + [delivery](#delivery) + [drive-through](#drive-through) @@ -157,6 +157,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -180,7 +182,7 @@ Available languages: + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -247,6 +249,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -270,7 +274,7 @@ Available languages: + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -433,7 +437,7 @@ Elements must match **all** of the following expressions: | [show-menu-image](#show-menu-image) | _{image_carousel(image:menu)}_ | | _Multiple choice only_ | | [add-menu-image](#add-menu-image) | _{image_upload(image:menu,Add an image from the menu,)}_ | | _Multiple choice only_ | | [menu-website](#menu-website) | On what webpage is the menu published?
_{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}_ | | *[website:menu](https://wiki.osm.org/wiki/Key:website:menu)* ([url](../SpecialInputElements.md#url)) | -| [Reservation](#Reservation) | Is a reservation required for this place?
4 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [Takeaway](#Takeaway) | Does this place offer take-away?
3 options | | _Multiple choice only_ | | [delivery](#delivery) | Does deliver food to your home?
2 options | | _Multiple choice only_ | | [drive-through](#drive-through) | Does this fast-food restaurant have a drive-through?
2 options | | _Multiple choice only_ | @@ -502,17 +506,20 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### Name The question is `What is the name of this business?` -*The name of this business is {name}* is shown if `name` is set + +*The name of this business is {name}* is shown if `name` is set. ### Fastfood vs restaurant @@ -524,14 +531,16 @@ The question is `What type of business is this?` ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -541,7 +550,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -552,7 +562,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -570,6 +581,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -579,7 +591,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -602,7 +615,8 @@ The question is `Is this place accessible with a wheelchair?` ### Cuisine The question is `What kind of food is served here?` -*This place mostly serves {cuisine}* is shown if `cuisine` is set + +*This place mostly serves {cuisine}* is shown if `cuisine` is set. - *Pizzeria* is shown if with cuisine=pizza - *Friture* is shown if with cuisine=friture @@ -627,19 +641,22 @@ The question is `What kind of food is served here?` ### show-menu-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:menu)}* ### add-menu-image _This tagrendering has no question and is thus read-only_ + *{image_upload(image:menu,Add an image from the menu,)}* ### menu-website The question is `On what webpage is the menu published?` -*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set -### Reservation +*{link(Consult the menu,&LBRACEwebsite:menu&RBRACE,,,,)}* is shown if `website:menu` is set. + +### reservation The question is `Is a reservation required for this place?` @@ -675,7 +692,8 @@ This tagrendering is only visible in the popup if the following condition is met ### drive-through-opening_hours The question is `What are the opening hours of the drive-through?` -*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set + +*

Drive-through opening hours

{opening_hours_table(opening_hours:drive_through)}* is shown if `opening_hours:drive_through` is set. - *The opening hours of the drive-through are the same as the restaurant* is shown if with opening_hours:drive_through= @@ -868,7 +886,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -879,6 +898,7 @@ This tagrendering has labels ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -887,6 +907,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -911,6 +932,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -925,7 +947,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -945,7 +968,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -980,7 +1004,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1050,7 +1075,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1140,7 +1166,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1176,7 +1203,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1249,6 +1277,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1264,6 +1293,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1281,6 +1311,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1298,6 +1329,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1339,6 +1371,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1355,6 +1388,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1390,7 +1424,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1409,7 +1446,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1426,7 +1466,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1485,6 +1528,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1501,6 +1545,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1511,6 +1556,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1520,16 +1566,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1667,6 +1716,7 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -1740,6 +1790,8 @@ Elements must match the expression ** _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -1810,22 +1862,26 @@ Elements must match the expression **
*Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -1999,7 +2055,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -2016,14 +2073,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -2033,7 +2092,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -2044,7 +2104,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -2062,6 +2123,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -2071,7 +2133,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -2122,6 +2185,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -2164,7 +2248,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -2183,7 +2268,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -2192,7 +2278,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -2201,7 +2288,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -2210,7 +2298,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -2219,7 +2308,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -2228,7 +2318,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -2237,7 +2328,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -2276,7 +2368,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -2312,7 +2405,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -2369,7 +2463,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -2382,11 +2476,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -2395,6 +2491,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -2419,6 +2516,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -2433,7 +2531,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -2453,7 +2552,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -2488,7 +2588,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -2558,7 +2659,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -2648,7 +2750,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -2684,7 +2787,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -2757,6 +2861,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -2772,6 +2877,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2789,6 +2895,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -2806,6 +2913,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -2847,6 +2955,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -2863,6 +2972,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -2898,7 +3008,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -2917,7 +3030,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -2934,7 +3050,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -2993,6 +3112,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -3009,6 +3129,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -3019,6 +3140,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -3028,16 +3150,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -3285,6 +3410,7 @@ Elements must match **all** of the following expressions: | [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -3358,6 +3484,8 @@ Elements must match **all** of the following expressions: | [copyshop-binding](#copyshop-binding) | Does this shop offer a binding service?
2 options | | _Multiple choice only_ | | [optometrist_service](#optometrist_service) | Are medical services available here?
2 options | | _Multiple choice only_ | | [key_cutter](#key_cutter) | Does this shop offer key cutting?
3 options | | _Multiple choice only_ | +| [hairdresser-targetgroup](#hairdresser-targetgroup) | In what target groups does this hairdresser specialize?
3 options | | _Multiple choice only_ | +| [reservation](#reservation)
_(Original in [questions](./BuiltinQuestions.md#reservation))_ | Is a reservation required for this place?
4 options | | _Multiple choice only_ | | [sells_new_bikes](#sells_new_bikes) | Does this shop sell bikes?
2 options | | _Multiple choice only_ | | [bike_second_hand](#bike_second_hand) | Does this shop sell second-hand bikes?
3 options | | _Multiple choice only_ | | [repairs_bikes](#repairs_bikes) | Does this shop repair bikes?
4 options | | _Multiple choice only_ | @@ -3381,7 +3509,7 @@ Elements must match **all** of the following expressions: | [sugar_free](#sugar_free)
_(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -3428,22 +3556,26 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### shops-name The question is `What is the name of this shop?` -*This shop is called {name}* is shown if `name` is set + +*This shop is called {name}* is shown if `name` is set. ### shop_types The question is `What kind of shop is this?` -*This is a {shop}* is shown if `shop` is set + +*This is a {shop}* is shown if `shop` is set. - *Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -3617,7 +3749,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -3634,14 +3767,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -3651,7 +3786,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -3662,7 +3798,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -3680,6 +3817,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -3689,7 +3827,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -3740,6 +3879,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -3782,7 +3942,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -3801,7 +3962,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -3810,7 +3972,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -3819,7 +3982,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -3828,7 +3992,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -3837,7 +4002,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -3846,7 +4012,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -3855,7 +4022,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -3894,7 +4062,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -3930,7 +4099,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -3987,7 +4157,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -4000,11 +4170,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -4013,6 +4185,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -4037,6 +4210,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -4051,7 +4225,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -4071,7 +4246,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -4106,7 +4282,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -4176,7 +4353,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -4266,7 +4444,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -4302,7 +4481,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -4375,6 +4555,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -4390,6 +4571,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -4407,6 +4589,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -4424,6 +4607,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -4465,6 +4649,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -4481,6 +4666,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -4516,7 +4702,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -4535,7 +4724,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -4552,7 +4744,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -4611,6 +4806,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -4627,6 +4823,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -4637,6 +4834,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -4646,16 +4844,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -4917,6 +5118,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### waste-basket-waste-types @@ -4944,6 +5146,7 @@ The question is `Does this waste basket have a dispenser for dog excrement bags? ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -4953,16 +5156,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/postal_codes.md b/Docs/Themes/postal_codes.md index ebccf73498..0f0c024fe1 100644 --- a/Docs/Themes/postal_codes.md +++ b/Docs/Themes/postal_codes.md @@ -85,11 +85,13 @@ Elements must match **any** of the following expressions: ### postal_code _This tagrendering has no question and is thus read-only_ + *The postal code is {postal_code}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -99,6 +101,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -132,6 +135,7 @@ Elements must match **all** of the following expressions: ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -140,6 +144,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -172,6 +177,7 @@ Elements must match **any** of the following expressions: ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -181,6 +187,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/rainbow_crossings.md b/Docs/Themes/rainbow_crossings.md index dc7f495be0..f5df13f17d 100644 --- a/Docs/Themes/rainbow_crossings.md +++ b/Docs/Themes/rainbow_crossings.md @@ -78,6 +78,7 @@ Elements must match the expression ** *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -186,7 +189,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -197,7 +201,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -207,7 +212,8 @@ This tagrendering has labels ### capacity_persons The question is `How many people can stay here?` -*{capacity:persons} people can stay here* is shown if `capacity:persons` is set + +*{capacity:persons} people can stay here* is shown if `capacity:persons` is set. ### fee @@ -219,12 +225,14 @@ The question is `Is there a fee?` ### charge_person_day The question is `What is the charge per person per day?` -*Charge per person per day: {charge}* is shown if `charge` is set + +*Charge per person per day: {charge}* is shown if `charge` is set. ### charge_day The question is `What is the charge per day?` -*Charge per day: {charge}* is shown if `charge` is set + +*Charge per day: {charge}* is shown if `charge` is set. ### caravansites-toilets @@ -236,21 +244,25 @@ The question is `Does this place have toilets?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### mastodon Shows and asks for the mastodon handle The question is `What is the Mastodon-handle of {title()}?` -*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set + +*{fediverse_link(contact:mastodon)}* is shown if `contact:mastodon` is set. ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -352,21 +364,25 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### name The question is `What is the name of this {title()}?` -*{name}* is shown if `name` is set + +*{name}* is shown if `name` is set. ### presettypeselect _This tagrendering has no question and is thus read-only_ + *{preset_type_select()}* ### group_only @@ -381,14 +397,16 @@ This tagrendering is only visible in the popup if the following condition is met ### brand The question is `Is {title()} part of a bigger brand?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *Not part of a bigger brand* is shown if with nobrand=yes ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -398,7 +416,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -409,7 +428,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -428,6 +448,7 @@ The question is `Is this place accessible with a wheelchair?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### internet @@ -459,7 +480,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -480,6 +502,7 @@ The question is `Are dogs allowed in this business?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -489,16 +512,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -584,21 +610,25 @@ Elements must match the expression **nobrand=yes ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -630,7 +662,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -641,7 +674,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -660,6 +694,7 @@ The question is `Is this place accessible with a wheelchair?` ### toiletatamenitytoiletswheelchair _This tagrendering has no question and is thus read-only_ + *toilet_at_amenity.toilets-wheelchair* ### internet @@ -691,7 +726,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -712,6 +748,7 @@ The question is `Are dogs allowed in this business?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -721,16 +758,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/speelplekken.md b/Docs/Themes/speelplekken.md index e0d5f5a44f..7c40d04ecb 100644 --- a/Docs/Themes/speelplekken.md +++ b/Docs/Themes/speelplekken.md @@ -88,11 +88,13 @@ Elements must match the expression *** is shown if `_video:id` is set + +** is shown if `_video:id` is set. ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -102,6 +104,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -154,11 +157,13 @@ Elements must match **all** of the following expressions: ### has-video _This tagrendering has no question and is thus read-only_ -** is shown if `_video:id` is set + +** is shown if `_video:id` is set. ### walk-length _This tagrendering has no question and is thus read-only_ + *Deze wandeling is {_length:km}km lang* ### walk-type @@ -173,31 +178,37 @@ _This tagrendering has no question and is thus read-only_ ### walk-description The question is `Geef een korte beschrijving van de wandeling (max 255 tekens)` -*

Korte beschrijving:

{description}* is shown if `description` is set + +*

Korte beschrijving:

{description}* is shown if `description` is set. ### walk-operator The question is `Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?` -*Signalisatie geplaatst door {operator}* is shown if `operator` is set + +*Signalisatie geplaatst door {operator}* is shown if `operator` is set. ### walk-operator-email The question is `Naar wie kan men emailen bij problemen rond signalisatie?` -*Bij problemen met signalisatie kan men emailen naar
{operator:email}* is shown if `operator:email` is set + +*Bij problemen met signalisatie kan men emailen naar {operator:email}* is shown if `operator:email` is set. ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### reviews Shows the reviews module (including the possibility to leave a review) _This tagrendering has no question and is thus read-only_ + *{create_review()}{list_reviews()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/sports.md b/Docs/Themes/sports.md index 7e927a6651..3b6fcfad68 100644 --- a/Docs/Themes/sports.md +++ b/Docs/Themes/sports.md @@ -62,6 +62,8 @@ Available languages: + [copyshop-binding](#copyshop-binding) + [optometrist_service](#optometrist_service) + [key_cutter](#key_cutter) + + [hairdresser-targetgroup](#hairdresser-targetgroup) + + [reservation](#reservation) + [sells_new_bikes](#sells_new_bikes) + [bike_second_hand](#bike_second_hand) + [repairs_bikes](#repairs_bikes) @@ -85,7 +87,7 @@ Available languages: + [sugar_free](#sugar_free) + [gluten_free](#gluten_free) + [lactose_free](#lactose_free) - + [dog-access](#dog-access) + + [shop-dog-access](#shop-dog-access) + [description](#description) + [toilets-group](#toilets-group) + [grouptitle](#grouptitle) @@ -171,6 +173,7 @@ Elements must match the expression ** [level](https://wiki.openstreetmap.org/wiki/Key:level) | [float](../SpecialInputElements.md#float) | [0](https://wiki.openstreetmap.org/wiki/Tag:level%3D0) [1](https://wiki.openstreetmap.org/wiki/Tag:level%3D1) [-1](https://wiki.openstreetmap.org/wiki/Tag:level%3D-1) | | [service:binding](https://wiki.openstreetmap.org/wiki/Key:service:binding) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:binding%3Dno) | | [healthcare](https://wiki.openstreetmap.org/wiki/Key:healthcare) | Multiple choice | [optometrist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Doptometrist) [audiologist](https://wiki.openstreetmap.org/wiki/Tag:healthcare%3Daudiologist) | +| [reservation](https://wiki.openstreetmap.org/wiki/Key:reservation) | Multiple choice | [required](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drequired) [recommended](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Drecommended) [yes](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:reservation%3Dno) | | [service:bicycle:retail](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:retail) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:retail%3Dno) | | [service:bicycle:second_hand](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:second_hand) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Dno) [only](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:second_hand%3Donly) | | [service:bicycle:repair](https://wiki.openstreetmap.org/wiki/Key:service:bicycle:repair) | Multiple choice | [yes](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dyes) [no](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dno) [only_sold](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Donly_sold) [brand](https://wiki.openstreetmap.org/wiki/Tag:service:bicycle:repair%3Dbrand) | @@ -244,6 +247,8 @@ Elements must match the expression ** _(Original in [questions](./BuiltinQuestions.md#sugar_free))_ | Does this shop have a sugar free offering?
4 options | diets | _Multiple choice only_ | | [gluten_free](#gluten_free)
_(Original in [questions](./BuiltinQuestions.md#gluten_free))_ | Does this shop have a gluten free offering?
4 options | diets | _Multiple choice only_ | | [lactose_free](#lactose_free)
_(Original in [questions](./BuiltinQuestions.md#lactose_free))_ | Does have a lactose-free offering?
4 options | diets | _Multiple choice only_ | -| [dog-access](#dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | +| [shop-dog-access](#shop-dog-access)
_(Original in [questions](./BuiltinQuestions.md#dog-access))_ | Are dogs allowed in this business?
5 options | | _Multiple choice only_ | | [description](#description)
_(Original in [questions](./BuiltinQuestions.md#description))_ | Is there still some relevant info that the previous questions did not cover? Feel free to add it here.
_{description}_ | | *[description](https://wiki.osm.org/wiki/Key:description)* ([text](../SpecialInputElements.md#text)) | | [toilets-group](#toilets-group)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#toilets-group))_ | _{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}_ | all | _Multiple choice only_ | | [grouptitle](#grouptitle)
_(Original in [toilet_at_amenity_lib](./toilet_at_amenity_lib.md#grouptitle))_ | _Toilet information_
1 options | all, hidden | _Multiple choice only_ | @@ -314,22 +319,26 @@ Elements must match the expression **
*Bicycle rental shop* is shown if with shop=bicycle_rental - *Farm Supply Shop* is shown if with shop=agrarian @@ -503,7 +512,8 @@ This tagrendering has labels ### brand The question is `What is the brand of this shop?` -*Part of {brand}* is shown if `brand` is set + +*Part of {brand}* is shown if `brand` is set. - *This shop does not have a specific brand, it is not part of a bigger chain* is shown if with not:brand=yes @@ -520,14 +530,16 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -537,7 +549,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -548,7 +561,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -566,6 +580,7 @@ The question is `Which methods of payment are accepted here?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -575,7 +590,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -626,6 +642,27 @@ The question is `Does this shop offer key cutting?` This tagrendering is only visible in the popup if the following condition is met: craft=key_cutting | shop=shoe_repair | shop=diy | shop=doityourself | shop=home_improvement | shop=hardware | shop=locksmith | shop=repair | service:key_cutting~.+ +### hairdresser-targetgroup + +The question is `In what target groups does this hairdresser specialize?` + + - *Specializes in cutting men's hair.* is shown if with male=yes. Unselecting this answer will add male=no + - *Specializes in cutting women's hair.* is shown if with female=yes. Unselecting this answer will add female=no + - *Specializes in cutting kids hair.* is shown if with children=yes. Unselecting this answer will add children=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + +### reservation + +The question is `Is a reservation required for this place?` + + - *A reservation is required at this place* is shown if with reservation=required + - *A reservation is not required, but still recommended to make sure you get a table* is shown if with reservation=recommended + - *Reservation is possible at this place* is shown if with reservation=yes + - *Reservation is not possible at this place* is shown if with reservation=no + +This tagrendering is only visible in the popup if the following condition is met: shop=hairdresser + ### sells_new_bikes The question is `Does this shop sell bikes?` @@ -668,7 +705,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -687,7 +725,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*city_bike.*)$ This tagrendering has labels @@ -696,7 +735,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*ebike.*)$ This tagrendering has labels @@ -705,7 +745,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -714,7 +755,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bmx.*)$ This tagrendering has labels @@ -723,7 +765,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*mtb.*)$ This tagrendering has labels @@ -732,7 +775,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -741,7 +785,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: (service:bicycle:rental=yes | bicycle_rental~.+) & rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -780,7 +825,8 @@ This tagrendering is only visible in the popup if the following condition is met ### bike_cleaning-service_bicycle_cleaning_charge The question is `How much does it cost to use the cleaning service?` -*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set + +*Using the cleaning service costs {service:bicycle:cleaning:charge}* is shown if `service:bicycle:cleaning:charge` is set. - *The cleaning service is free to use* is shown if with service:bicycle:cleaning:fee=no - *Free to use* is shown if with service:bicycle:cleaning:fee=yes & service:bicycle:cleaning:charge=. _This option cannot be chosen as answer_ @@ -816,7 +862,8 @@ This tagrendering has labels ### internet-ssid The question is `What is the network name for the wireless internet access?` -*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set + +*The network name is {internet_access:ssid}* is shown if `internet_access:ssid` is set. - *Telekom* is shown if with internet_access:ssid=Telekom @@ -873,7 +920,7 @@ This tagrendering is only visible in the popup if the following condition is met This tagrendering has labels `diets` -### dog-access +### shop-dog-access The question is `Are dogs allowed in this business?` @@ -886,11 +933,13 @@ The question is `Are dogs allowed in this business?` ### description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{description}* is shown if `description` is set + +*{description}* is shown if `description` is set. ### toilets-group _This tagrendering has no question and is thus read-only_ + *{group(grouptitle,toilet-questions,wheelchair;wheelchair-title;adult-changing-table)}* This tagrendering has labels @@ -899,6 +948,7 @@ This tagrendering has labels ### grouptitle _This tagrendering has no question and is thus read-only_ + *Toilet information* - *Does not have toilets* is shown if with toilets=no @@ -923,6 +973,7 @@ This tagrendering has labels ### toilets_repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {toilets:repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:repeat_on~.+ @@ -937,7 +988,8 @@ This tagrendering has labels ### toilets_single_level The question is `On what level is this feature located?` -*Located on the {toilets:level}th floor* is shown if `toilets:level` is set + +*Located on the {toilets:level}th floor* is shown if `toilets:level` is set. - *Located underground* is shown if with toilets:location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with toilets:level=0 @@ -957,7 +1009,8 @@ This tagrendering has labels ### toilets_toilet-access The question is `Are these toilets publicly accessible?` -*Access is {toilets:access}* is shown if `toilets:access` is set + +*Access is {toilets:access}* is shown if `toilets:access` is set. - *Public access* is shown if with toilets:access=yes - *Only access to customers* is shown if with toilets:access=customers @@ -992,7 +1045,8 @@ This tagrendering has labels ### toilets_toilet-charge The question is `How much does one have to pay for these toilets?` -*The fee is {toilets:charge}* is shown if `toilets:charge` is set + +*The fee is {toilets:charge}* is shown if `toilets:charge` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes & toilets:fee=yes This tagrendering has labels @@ -1062,7 +1116,8 @@ This tagrendering has labels ### toilets_description The question is `Is there still some relevant info that the previous questions did not cover? Feel free to add it here.` -*{toilets:description}* is shown if `toilets:description` is set + +*{toilets:description}* is shown if `toilets:description` is set. This tagrendering is only visible in the popup if the following condition is met: toilets=yes This tagrendering has labels @@ -1152,7 +1207,8 @@ This tagrendering has labels ### menstrual_products_location The question is `Where are the free menstrual products located?` -*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set + +*The menstrual products are located in {toilets:menstrual_products:location}* is shown if `toilets:menstrual_products:location` is set. - *The free, menstrual products are located in the toilet for women* is shown if with toilets:menstrual_products:location=female_toilet - *The free, menstrual products are located in the toilet for men* is shown if with toilets:menstrual_products:location=male_toilet @@ -1188,7 +1244,8 @@ This tagrendering has labels ### toilet-changing_table:location The question is `Where is the changing table located?` -*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set + +*A changing table is located at {changing_table:location}* is shown if `changing_table:location` is set. - *A changing table is in the toilet for women* is shown if with changing_table:location=female_toilet - *A changing table is in the toilet for men* is shown if with changing_table:location=male_toilet @@ -1261,6 +1318,7 @@ This tagrendering has labels ### wheelchair-group _This tagrendering has no question and is thus read-only_ + *{group(wheelchair-title,wheelchair;adult-changing-table,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1276,6 +1334,7 @@ This tagrendering has labels ### wheelchair-picture-carousel _This tagrendering has no question and is thus read-only_ + *{image_carousel(toilets:wheelchair:panoramax;toilets:wheelchair:image;toilets:wheelchair:mapillary)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1293,6 +1352,7 @@ This tagrendering has labels ### wheelchair-picture _This tagrendering has no question and is thus read-only_ + *{image_upload(toilets:wheelchair:panoramax,Add a picture of the wheelchair accessible toilet,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes & (toilets:wheelchair=yes | wheelchair=yes) @@ -1310,6 +1370,7 @@ This tagrendering has labels ### wheelchair-title _This tagrendering has no question and is thus read-only_ + *Wheelchair accessible toilet* - *Wheelchair accessibility features* is shown if with wheelchair=designated | toilets:wheelchair=designated @@ -1351,6 +1412,7 @@ This tagrendering has labels ### questions-wheelchair _This tagrendering has no question and is thus read-only_ + *{questions(wheelchair,,)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1367,6 +1429,7 @@ This tagrendering has labels ### adult_changing_table_title _This tagrendering has no question and is thus read-only_ + *Adult changing table* This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & toilets=yes @@ -1402,7 +1465,10 @@ This tagrendering has labels ### changing_table_adult_height The question is `What is the height of the adult changing table?` -*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set + +*The changing table is {canonical(changing_table:adult:height)} high* is shown if `changing_table:adult:height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. - *The changing table is adjustable in height* is shown if with changing_table:adult:height=adjustable @@ -1421,7 +1487,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-min_height The question is `What is the lowest height the adult changing table can be moved to?` -*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set + +*The lowest height of the adult changing table is {canonical(changing_table:adult:min_height)}* is shown if `changing_table:adult:min_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1438,7 +1507,10 @@ This tagrendering has labels ### changing_table_adult_adult-changing-table-max_height The question is `What is the highest height the adult changing table can be moved to?` -*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set + +*The highest height of the adult changing table is {canonical(changing_table:adult:max_height)}* is shown if `changing_table:adult:max_height` is set. + +The allowed input is of type pfloat and is in range 0.4 until 2 (both inclusive). A warning will appear if the value is outside of 0.8 and 1.7. This tagrendering is only visible in the popup if the following condition is met: changing_table:adult=yes & changing_table:adult:height=adjustable & toilets=yes This tagrendering has labels @@ -1497,6 +1569,7 @@ This tagrendering has labels ### questions-adult-changing-table _This tagrendering has no question and is thus read-only_ + *{questions(adult-changing-table,,yes)}* This tagrendering is only visible in the popup if the following condition is met: toilets=yes @@ -1513,6 +1586,7 @@ This tagrendering has labels ### toilet-question-box _This tagrendering has no question and is thus read-only_ + *{questions(toilet-questions,,)}* This tagrendering has labels @@ -1523,6 +1597,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,wheelchair;adult-changing-table;toilet-questions;hidden)}* This tagrendering has labels @@ -1532,16 +1607,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/stations.md b/Docs/Themes/stations.md index c85cd97090..73ce27ec25 100644 --- a/Docs/Themes/stations.md +++ b/Docs/Themes/stations.md @@ -145,6 +145,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### type @@ -159,6 +160,7 @@ The question is `What kind of departures board is this?` ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -168,7 +170,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -182,6 +185,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -191,11 +195,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/street_lighting.md b/Docs/Themes/street_lighting.md index 375ae25d73..2a803f0882 100644 --- a/Docs/Themes/street_lighting.md +++ b/Docs/Themes/street_lighting.md @@ -88,6 +88,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### lit @@ -102,6 +103,7 @@ The question is `Is this street lit?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -111,11 +113,13 @@ This tagrendering has labels ### split_button _This tagrendering has no question and is thus read-only_ + *{split_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/street_lighting_assen.md b/Docs/Themes/street_lighting_assen.md index fbd63aad7d..153bec5d1c 100644 --- a/Docs/Themes/street_lighting_assen.md +++ b/Docs/Themes/street_lighting_assen.md @@ -60,11 +60,13 @@ Elements must match the expression **Lichtmastnummer~.+** ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -74,6 +76,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/toerisme_vlaanderen.md b/Docs/Themes/toerisme_vlaanderen.md index 49d8f30b45..5faa650764 100644 --- a/Docs/Themes/toerisme_vlaanderen.md +++ b/Docs/Themes/toerisme_vlaanderen.md @@ -433,6 +433,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### Type @@ -448,7 +449,8 @@ The question is `Which vehicles are allowed to charge here?` ### access The question is `Who is allowed to use this charging station?` -*Access is {access}* is shown if `access` is set + +*Access is {access}* is shown if `access` is set. - *Anyone can use this charging station (payment might be needed)* is shown if with access=yes - *Anyone can use this charging station (payment might be needed)* is shown if with access=public. _This option cannot be chosen as answer_ @@ -460,7 +462,8 @@ The question is `Who is allowed to use this charging station?` ### capacity The question is `How much vehicles can be charged here at the same time?` -*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set + +*{capacity} vehicles can be charged here at the same time* is shown if `capacity` is set. ### Available_charging_stations (generated) @@ -512,7 +515,8 @@ The question is `Which charging connections are available here?` ### plugs-amount-socket:schuko The question is `How much plugs of type Schuko wall plug without ground pin (CEE7/4 type F) are available here?` -*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set + +*There are {socket:schuko} plugs of type Schuko wall plug without ground pin (CEE7/4 type F) available here* is shown if `socket:schuko` is set. This tagrendering is only visible in the popup if the following condition is met: socket:schuko~.+ & socket:schuko!=0 This tagrendering has labels @@ -521,7 +525,8 @@ This tagrendering has labels ### voltage-socket:schuko The question is `What voltage do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs {canonical(socket:schuko:voltage)}* is shown if `socket:schuko:voltage` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs 230 volt* is shown if with socket:schuko:voltage=230 @@ -532,7 +537,8 @@ This tagrendering has labels ### current-socket:schuko The question is `What current do the plugs with Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:current)}* is shown if `socket:schuko:current` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 16 A* is shown if with socket:schuko:current=16 @@ -543,7 +549,8 @@ This tagrendering has labels ### power-output-socket:schuko The question is `What power output does a single plug of type Schuko wall plug without ground pin (CEE7/4 type F) offer?` -*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set + +*Schuko wall plug without ground pin (CEE7/4 type F) outputs at most {canonical(socket:schuko:output)}* is shown if `socket:schuko:output` is set. - *Schuko wall plug without ground pin (CEE7/4 type F) outputs at most 3.6 kW* is shown if with socket:schuko:output=3.6 kW @@ -554,7 +561,8 @@ This tagrendering has labels ### plugs-amount-socket:typee The question is `How much plugs of type European wall plug with ground pin (CEE7/4 type E) are available here?` -*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set + +*There are {socket:typee} plugs of type European wall plug with ground pin (CEE7/4 type E) available here* is shown if `socket:typee` is set. This tagrendering is only visible in the popup if the following condition is met: socket:typee~.+ & socket:typee!=0 This tagrendering has labels @@ -563,7 +571,8 @@ This tagrendering has labels ### voltage-socket:typee The question is `What voltage do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs {canonical(socket:typee:voltage)}* is shown if `socket:typee:voltage` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs 230 volt* is shown if with socket:typee:voltage=230 @@ -574,7 +583,8 @@ This tagrendering has labels ### current-socket:typee The question is `What current do the plugs with European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:current)}* is shown if `socket:typee:current` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 16 A* is shown if with socket:typee:current=16 @@ -585,7 +595,8 @@ This tagrendering has labels ### power-output-socket:typee The question is `What power output does a single plug of type European wall plug with ground pin (CEE7/4 type E) offer?` -*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set + +*European wall plug with ground pin (CEE7/4 type E) outputs at most {canonical(socket:typee:output)}* is shown if `socket:typee:output` is set. - *European wall plug with ground pin (CEE7/4 type E) outputs at most 3 kW* is shown if with socket:typee:output=3 kW - *European wall plug with ground pin (CEE7/4 type E) outputs at most 22 kW* is shown if with socket:typee:output=22 kW @@ -597,7 +608,8 @@ This tagrendering has labels ### plugs-amount-socket:chademo The question is `How much plugs of type Chademo are available here?` -*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set + +*There are {socket:chademo} plugs of type Chademo available here* is shown if `socket:chademo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:chademo~.+ & socket:chademo!=0 This tagrendering has labels @@ -606,7 +618,8 @@ This tagrendering has labels ### voltage-socket:chademo The question is `What voltage do the plugs with Chademo offer?` -*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set + +*Chademo outputs {canonical(socket:chademo:voltage)}* is shown if `socket:chademo:voltage` is set. - *Chademo outputs 500 volt* is shown if with socket:chademo:voltage=500 @@ -617,7 +630,8 @@ This tagrendering has labels ### current-socket:chademo The question is `What current do the plugs with Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set + +*Chademo outputs at most {canonical(socket:chademo:current)}* is shown if `socket:chademo:current` is set. - *Chademo outputs at most 120 A* is shown if with socket:chademo:current=120 @@ -628,7 +642,8 @@ This tagrendering has labels ### power-output-socket:chademo The question is `What power output does a single plug of type Chademo offer?` -*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set + +*Chademo outputs at most {canonical(socket:chademo:output)}* is shown if `socket:chademo:output` is set. - *Chademo outputs at most 50 kW* is shown if with socket:chademo:output=50 kW @@ -639,7 +654,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_cable The question is `How much plugs of type Type 1 with cable (J1772) are available here?` -*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set + +*There are {socket:type1_cable} plugs of type Type 1 with cable (J1772) available here* is shown if `socket:type1_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_cable~.+ & socket:type1_cable!=0 This tagrendering has labels @@ -648,7 +664,8 @@ This tagrendering has labels ### voltage-socket:type1_cable The question is `What voltage do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set + +*Type 1 with cable (J1772) outputs {canonical(socket:type1_cable:voltage)}* is shown if `socket:type1_cable:voltage` is set. - *Type 1 with cable (J1772) outputs 200 volt* is shown if with socket:type1_cable:voltage=200 - *Type 1 with cable (J1772) outputs 240 volt* is shown if with socket:type1_cable:voltage=240 @@ -660,7 +677,8 @@ This tagrendering has labels ### current-socket:type1_cable The question is `What current do the plugs with Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:current)}* is shown if `socket:type1_cable:current` is set. - *Type 1 with cable (J1772) outputs at most 32 A* is shown if with socket:type1_cable:current=32 @@ -671,7 +689,8 @@ This tagrendering has labels ### power-output-socket:type1_cable The question is `What power output does a single plug of type Type 1 with cable (J1772) offer?` -*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set + +*Type 1 with cable (J1772) outputs at most {canonical(socket:type1_cable:output)}* is shown if `socket:type1_cable:output` is set. - *Type 1 with cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1_cable:output=3.7 kW - *Type 1 with cable (J1772) outputs at most 7 kW* is shown if with socket:type1_cable:output=7 kW @@ -683,7 +702,8 @@ This tagrendering has labels ### plugs-amount-socket:type1 The question is `How much plugs of type Type 1 without cable (J1772) are available here?` -*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set + +*There are {socket:type1} plugs of type Type 1 without cable (J1772) available here* is shown if `socket:type1` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1~.+ & socket:type1!=0 This tagrendering has labels @@ -692,7 +712,8 @@ This tagrendering has labels ### voltage-socket:type1 The question is `What voltage do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set + +*Type 1 without cable (J1772) outputs {canonical(socket:type1:voltage)}* is shown if `socket:type1:voltage` is set. - *Type 1 without cable (J1772) outputs 200 volt* is shown if with socket:type1:voltage=200 - *Type 1 without cable (J1772) outputs 240 volt* is shown if with socket:type1:voltage=240 @@ -704,7 +725,8 @@ This tagrendering has labels ### current-socket:type1 The question is `What current do the plugs with Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:current)}* is shown if `socket:type1:current` is set. - *Type 1 without cable (J1772) outputs at most 32 A* is shown if with socket:type1:current=32 @@ -715,7 +737,8 @@ This tagrendering has labels ### power-output-socket:type1 The question is `What power output does a single plug of type Type 1 without cable (J1772) offer?` -*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set + +*Type 1 without cable (J1772) outputs at most {canonical(socket:type1:output)}* is shown if `socket:type1:output` is set. - *Type 1 without cable (J1772) outputs at most 3.7 kW* is shown if with socket:type1:output=3.7 kW - *Type 1 without cable (J1772) outputs at most 6.6 kW* is shown if with socket:type1:output=6.6 kW @@ -729,7 +752,8 @@ This tagrendering has labels ### plugs-amount-socket:type1_combo The question is `How much plugs of type Type 1 CCS (aka Type 1 Combo) are available here?` -*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set + +*There are {socket:type1_combo} plugs of type Type 1 CCS (aka Type 1 Combo) available here* is shown if `socket:type1_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type1_combo~.+ & socket:type1_combo!=0 This tagrendering has labels @@ -738,7 +762,8 @@ This tagrendering has labels ### voltage-socket:type1_combo The question is `What voltage do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set + +*Type 1 CCS (aka Type 1 Combo) outputs {canonical(socket:type1_combo:voltage)}* is shown if `socket:type1_combo:voltage` is set. - *Type 1 CCS (aka Type 1 Combo) outputs 400 volt* is shown if with socket:type1_combo:voltage=400 - *Type 1 CCS (aka Type 1 Combo) outputs 1000 volt* is shown if with socket:type1_combo:voltage=1000 @@ -750,7 +775,8 @@ This tagrendering has labels ### current-socket:type1_combo The question is `What current do the plugs with Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:current)}* is shown if `socket:type1_combo:current` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 A* is shown if with socket:type1_combo:current=50 - *Type 1 CCS (aka Type 1 Combo) outputs at most 125 A* is shown if with socket:type1_combo:current=125 @@ -762,7 +788,8 @@ This tagrendering has labels ### power-output-socket:type1_combo The question is `What power output does a single plug of type Type 1 CCS (aka Type 1 Combo) offer?` -*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set + +*Type 1 CCS (aka Type 1 Combo) outputs at most {canonical(socket:type1_combo:output)}* is shown if `socket:type1_combo:output` is set. - *Type 1 CCS (aka Type 1 Combo) outputs at most 50 kW* is shown if with socket:type1_combo:output=50 kW - *Type 1 CCS (aka Type 1 Combo) outputs at most 62.5 kW* is shown if with socket:type1_combo:output=62.5 kW @@ -776,7 +803,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger The question is `How much plugs of type Tesla Supercharger are available here?` -*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set + +*There are {socket:tesla_supercharger} plugs of type Tesla Supercharger available here* is shown if `socket:tesla_supercharger` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger~.+ & socket:tesla_supercharger!=0 This tagrendering has labels @@ -785,7 +813,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger The question is `What voltage do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set + +*Tesla Supercharger outputs {canonical(socket:tesla_supercharger:voltage)}* is shown if `socket:tesla_supercharger:voltage` is set. - *Tesla Supercharger outputs 480 volt* is shown if with socket:tesla_supercharger:voltage=480 @@ -796,7 +825,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger The question is `What current do the plugs with Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:current)}* is shown if `socket:tesla_supercharger:current` is set. - *Tesla Supercharger outputs at most 125 A* is shown if with socket:tesla_supercharger:current=125 - *Tesla Supercharger outputs at most 350 A* is shown if with socket:tesla_supercharger:current=350 @@ -808,7 +838,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger The question is `What power output does a single plug of type Tesla Supercharger offer?` -*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set + +*Tesla Supercharger outputs at most {canonical(socket:tesla_supercharger:output)}* is shown if `socket:tesla_supercharger:output` is set. - *Tesla Supercharger outputs at most 120 kW* is shown if with socket:tesla_supercharger:output=120 kW - *Tesla Supercharger outputs at most 150 kW* is shown if with socket:tesla_supercharger:output=150 kW @@ -821,7 +852,8 @@ This tagrendering has labels ### plugs-amount-socket:type2 The question is `How much plugs of type Type 2 (mennekes) are available here?` -*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set + +*There are {socket:type2} plugs of type Type 2 (mennekes) available here* is shown if `socket:type2` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2~.+ & socket:type2!=0 This tagrendering has labels @@ -830,7 +862,8 @@ This tagrendering has labels ### voltage-socket:type2 The question is `What voltage do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set + +*Type 2 (mennekes) outputs {canonical(socket:type2:voltage)}* is shown if `socket:type2:voltage` is set. - *Type 2 (mennekes) outputs 230 volt* is shown if with socket:type2:voltage=230 - *Type 2 (mennekes) outputs 400 volt* is shown if with socket:type2:voltage=400 @@ -842,7 +875,8 @@ This tagrendering has labels ### current-socket:type2 The question is `What current do the plugs with Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:current)}* is shown if `socket:type2:current` is set. - *Type 2 (mennekes) outputs at most 16 A* is shown if with socket:type2:current=16 - *Type 2 (mennekes) outputs at most 32 A* is shown if with socket:type2:current=32 @@ -854,7 +888,8 @@ This tagrendering has labels ### power-output-socket:type2 The question is `What power output does a single plug of type Type 2 (mennekes) offer?` -*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set + +*Type 2 (mennekes) outputs at most {canonical(socket:type2:output)}* is shown if `socket:type2:output` is set. - *Type 2 (mennekes) outputs at most 11 kW* is shown if with socket:type2:output=11 kW - *Type 2 (mennekes) outputs at most 22 kW* is shown if with socket:type2:output=22 kW @@ -866,7 +901,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_combo The question is `How much plugs of type Type 2 CCS (mennekes) are available here?` -*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set + +*There are {socket:type2_combo} plugs of type Type 2 CCS (mennekes) available here* is shown if `socket:type2_combo` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_combo~.+ & socket:type2_combo!=0 This tagrendering has labels @@ -875,7 +911,8 @@ This tagrendering has labels ### voltage-socket:type2_combo The question is `What voltage do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set + +*Type 2 CCS (mennekes) outputs {canonical(socket:type2_combo:voltage)}* is shown if `socket:type2_combo:voltage` is set. - *Type 2 CCS (mennekes) outputs 500 volt* is shown if with socket:type2_combo:voltage=500 - *Type 2 CCS (mennekes) outputs 920 volt* is shown if with socket:type2_combo:voltage=920 @@ -887,7 +924,8 @@ This tagrendering has labels ### current-socket:type2_combo The question is `What current do the plugs with Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:current)}* is shown if `socket:type2_combo:current` is set. - *Type 2 CCS (mennekes) outputs at most 125 A* is shown if with socket:type2_combo:current=125 - *Type 2 CCS (mennekes) outputs at most 350 A* is shown if with socket:type2_combo:current=350 @@ -899,7 +937,8 @@ This tagrendering has labels ### power-output-socket:type2_combo The question is `What power output does a single plug of type Type 2 CCS (mennekes) offer?` -*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set + +*Type 2 CCS (mennekes) outputs at most {canonical(socket:type2_combo:output)}* is shown if `socket:type2_combo:output` is set. - *Type 2 CCS (mennekes) outputs at most 50 kW* is shown if with socket:type2_combo:output=50 kW @@ -910,7 +949,8 @@ This tagrendering has labels ### plugs-amount-socket:type2_cable The question is `How much plugs of type Type 2 with cable (mennekes) are available here?` -*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set + +*There are {socket:type2_cable} plugs of type Type 2 with cable (mennekes) available here* is shown if `socket:type2_cable` is set. This tagrendering is only visible in the popup if the following condition is met: socket:type2_cable~.+ & socket:type2_cable!=0 This tagrendering has labels @@ -919,7 +959,8 @@ This tagrendering has labels ### voltage-socket:type2_cable The question is `What voltage do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set + +*Type 2 with cable (mennekes) outputs {canonical(socket:type2_cable:voltage)}* is shown if `socket:type2_cable:voltage` is set. - *Type 2 with cable (mennekes) outputs 230 volt* is shown if with socket:type2_cable:voltage=230 - *Type 2 with cable (mennekes) outputs 400 volt* is shown if with socket:type2_cable:voltage=400 @@ -931,7 +972,8 @@ This tagrendering has labels ### current-socket:type2_cable The question is `What current do the plugs with Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:current)}* is shown if `socket:type2_cable:current` is set. - *Type 2 with cable (mennekes) outputs at most 16 A* is shown if with socket:type2_cable:current=16 - *Type 2 with cable (mennekes) outputs at most 32 A* is shown if with socket:type2_cable:current=32 @@ -943,7 +985,8 @@ This tagrendering has labels ### power-output-socket:type2_cable The question is `What power output does a single plug of type Type 2 with cable (mennekes) offer?` -*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set + +*Type 2 with cable (mennekes) outputs at most {canonical(socket:type2_cable:output)}* is shown if `socket:type2_cable:output` is set. - *Type 2 with cable (mennekes) outputs at most 11 kW* is shown if with socket:type2_cable:output=11 kW - *Type 2 with cable (mennekes) outputs at most 22 kW* is shown if with socket:type2_cable:output=22 kW @@ -955,7 +998,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_supercharger_ccs The question is `How much plugs of type Tesla Supercharger CCS (a branded type2_css) are available here?` -*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set + +*There are {socket:tesla_supercharger_ccs} plugs of type Tesla Supercharger CCS (a branded type2_css) available here* is shown if `socket:tesla_supercharger_ccs` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_supercharger_ccs~.+ & socket:tesla_supercharger_ccs!=0 This tagrendering has labels @@ -964,7 +1008,8 @@ This tagrendering has labels ### voltage-socket:tesla_supercharger_ccs The question is `What voltage do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs {canonical(socket:tesla_supercharger_ccs:voltage)}* is shown if `socket:tesla_supercharger_ccs:voltage` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs 500 volt* is shown if with socket:tesla_supercharger_ccs:voltage=500 - *Tesla Supercharger CCS (a branded type2_css) outputs 920 volt* is shown if with socket:tesla_supercharger_ccs:voltage=920 @@ -976,7 +1021,8 @@ This tagrendering has labels ### current-socket:tesla_supercharger_ccs The question is `What current do the plugs with Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:current)}* is shown if `socket:tesla_supercharger_ccs:current` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 125 A* is shown if with socket:tesla_supercharger_ccs:current=125 - *Tesla Supercharger CCS (a branded type2_css) outputs at most 350 A* is shown if with socket:tesla_supercharger_ccs:current=350 @@ -988,7 +1034,8 @@ This tagrendering has labels ### power-output-socket:tesla_supercharger_ccs The question is `What power output does a single plug of type Tesla Supercharger CCS (a branded type2_css) offer?` -*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set + +*Tesla Supercharger CCS (a branded type2_css) outputs at most {canonical(socket:tesla_supercharger_ccs:output)}* is shown if `socket:tesla_supercharger_ccs:output` is set. - *Tesla Supercharger CCS (a branded type2_css) outputs at most 50 kW* is shown if with socket:tesla_supercharger_ccs:output=50 kW @@ -999,7 +1046,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination_us The question is `How much plugs of type Tesla Supercharger (destination) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla Supercharger (destination) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -1008,7 +1056,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination_us The question is `What voltage do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla Supercharger (destination) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla Supercharger (destination) outputs 480 volt* is shown if with socket:tesla_destination:voltage=480 @@ -1019,7 +1068,8 @@ This tagrendering has labels ### current-socket:tesla_destination_us The question is `What current do the plugs with Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla Supercharger (destination) outputs at most 125 A* is shown if with socket:tesla_destination:current=125 - *Tesla Supercharger (destination) outputs at most 350 A* is shown if with socket:tesla_destination:current=350 @@ -1031,7 +1081,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination_us The question is `What power output does a single plug of type Tesla Supercharger (destination) offer?` -*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla Supercharger (destination) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla Supercharger (destination) outputs at most 120 kW* is shown if with socket:tesla_destination:output=120 kW - *Tesla Supercharger (destination) outputs at most 150 kW* is shown if with socket:tesla_destination:output=150 kW @@ -1044,7 +1095,8 @@ This tagrendering has labels ### plugs-amount-socket:tesla_destination The question is `How much plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) are available here?` -*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set + +*There are {socket:tesla_destination} plugs of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) available here* is shown if `socket:tesla_destination` is set. This tagrendering is only visible in the popup if the following condition is met: socket:tesla_destination~.+ & socket:tesla_destination!=0 This tagrendering has labels @@ -1053,7 +1105,8 @@ This tagrendering has labels ### voltage-socket:tesla_destination The question is `What voltage do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs {canonical(socket:tesla_destination:voltage)}* is shown if `socket:tesla_destination:voltage` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 230 volt* is shown if with socket:tesla_destination:voltage=230 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs 400 volt* is shown if with socket:tesla_destination:voltage=400 @@ -1065,7 +1118,8 @@ This tagrendering has labels ### current-socket:tesla_destination The question is `What current do the plugs with Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:current)}* is shown if `socket:tesla_destination:current` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 16 A* is shown if with socket:tesla_destination:current=16 - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 32 A* is shown if with socket:tesla_destination:current=32 @@ -1077,7 +1131,8 @@ This tagrendering has labels ### power-output-socket:tesla_destination The question is `What power output does a single plug of type Tesla supercharger (destination) (A Type 2 with cable branded as tesla) offer?` -*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set + +*Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most {canonical(socket:tesla_destination:output)}* is shown if `socket:tesla_destination:output` is set. - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 11 kW* is shown if with socket:tesla_destination:output=11 kW - *Tesla supercharger (destination) (A Type 2 with cable branded as tesla) outputs at most 22 kW* is shown if with socket:tesla_destination:output=22 kW @@ -1089,7 +1144,8 @@ This tagrendering has labels ### plugs-amount-socket:USB-A The question is `How much plugs of type USB to charge phones and small electronics are available here?` -*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set + +*There are {socket:USB-A} plugs of type USB to charge phones and small electronics available here* is shown if `socket:USB-A` is set. This tagrendering is only visible in the popup if the following condition is met: socket:USB-A~.+ & socket:USB-A!=0 This tagrendering has labels @@ -1098,7 +1154,8 @@ This tagrendering has labels ### voltage-socket:USB-A The question is `What voltage do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set + +*USB to charge phones and small electronics outputs {canonical(socket:USB-A:voltage)}* is shown if `socket:USB-A:voltage` is set. - *USB to charge phones and small electronics outputs 5 volt* is shown if with socket:USB-A:voltage=5 @@ -1109,7 +1166,8 @@ This tagrendering has labels ### current-socket:USB-A The question is `What current do the plugs with USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:current)}* is shown if `socket:USB-A:current` is set. - *USB to charge phones and small electronics outputs at most 1 A* is shown if with socket:USB-A:current=1 - *USB to charge phones and small electronics outputs at most 2 A* is shown if with socket:USB-A:current=2 @@ -1121,7 +1179,8 @@ This tagrendering has labels ### power-output-socket:USB-A The question is `What power output does a single plug of type USB to charge phones and small electronics offer?` -*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set + +*USB to charge phones and small electronics outputs at most {canonical(socket:USB-A:output)}* is shown if `socket:USB-A:output` is set. - *USB to charge phones and small electronics outputs at most 5W* is shown if with socket:USB-A:output=5W - *USB to charge phones and small electronics outputs at most 10W* is shown if with socket:USB-A:output=10W @@ -1133,7 +1192,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_3pin The question is `How much plugs of type Bosch Active Connect with 3 pins and cable are available here?` -*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set + +*There are {socket:bosch_3pin} plugs of type Bosch Active Connect with 3 pins and cable available here* is shown if `socket:bosch_3pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1142,7 +1202,8 @@ This tagrendering has labels ### voltage-socket:bosch_3pin The question is `What voltage do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set + +*Bosch Active Connect with 3 pins and cable outputs {canonical(socket:bosch_3pin:voltage)}* is shown if `socket:bosch_3pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1151,7 +1212,8 @@ This tagrendering has labels ### current-socket:bosch_3pin The question is `What current do the plugs with Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:current)}* is shown if `socket:bosch_3pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1160,7 +1222,8 @@ This tagrendering has labels ### power-output-socket:bosch_3pin The question is `What power output does a single plug of type Bosch Active Connect with 3 pins and cable offer?` -*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set + +*Bosch Active Connect with 3 pins and cable outputs at most {canonical(socket:bosch_3pin:output)}* is shown if `socket:bosch_3pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_3pin~.+ & socket:bosch_3pin!=0 This tagrendering has labels @@ -1169,7 +1232,8 @@ This tagrendering has labels ### plugs-amount-socket:bosch_5pin The question is `How much plugs of type Bosch Active Connect with 5 pins and cable are available here?` -*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set + +*There are {socket:bosch_5pin} plugs of type Bosch Active Connect with 5 pins and cable available here* is shown if `socket:bosch_5pin` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1178,7 +1242,8 @@ This tagrendering has labels ### voltage-socket:bosch_5pin The question is `What voltage do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set + +*Bosch Active Connect with 5 pins and cable outputs {canonical(socket:bosch_5pin:voltage)}* is shown if `socket:bosch_5pin:voltage` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1187,7 +1252,8 @@ This tagrendering has labels ### current-socket:bosch_5pin The question is `What current do the plugs with Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:current)}* is shown if `socket:bosch_5pin:current` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1196,7 +1262,8 @@ This tagrendering has labels ### power-output-socket:bosch_5pin The question is `What power output does a single plug of type Bosch Active Connect with 5 pins and cable offer?` -*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set + +*Bosch Active Connect with 5 pins and cable outputs at most {canonical(socket:bosch_5pin:output)}* is shown if `socket:bosch_5pin:output` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bosch_5pin~.+ & socket:bosch_5pin!=0 This tagrendering has labels @@ -1205,7 +1272,8 @@ This tagrendering has labels ### plugs-amount-socket:bs1363 The question is `How much plugs of type BS1363 (Type G) are available here?` -*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set + +*There are {socket:bs1363} plugs of type BS1363 (Type G) available here* is shown if `socket:bs1363` is set. This tagrendering is only visible in the popup if the following condition is met: socket:bs1363~.+ & socket:bs1363!=0 This tagrendering has labels @@ -1214,7 +1282,8 @@ This tagrendering has labels ### voltage-socket:bs1363 The question is `What voltage do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set + +*BS1363 (Type G) outputs {canonical(socket:bs1363:voltage)}* is shown if `socket:bs1363:voltage` is set. - *BS1363 (Type G) outputs 230 volt* is shown if with socket:bs1363:voltage=230 @@ -1225,7 +1294,8 @@ This tagrendering has labels ### current-socket:bs1363 The question is `What current do the plugs with BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:current)}* is shown if `socket:bs1363:current` is set. - *BS1363 (Type G) outputs at most 13 A* is shown if with socket:bs1363:current=13 @@ -1236,7 +1306,8 @@ This tagrendering has labels ### power-output-socket:bs1363 The question is `What power output does a single plug of type BS1363 (Type G) offer?` -*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set + +*BS1363 (Type G) outputs at most {canonical(socket:bs1363:output)}* is shown if `socket:bs1363:output` is set. - *BS1363 (Type G) outputs at most 3kW* is shown if with socket:bs1363:output=3kW @@ -1247,7 +1318,8 @@ This tagrendering has labels ### plugs-amount-socket:nema5_15 The question is `How much plugs of type NEMA 5-15 (Type B) are available here?` -*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set + +*There are {socket:nema5_15} plugs of type NEMA 5-15 (Type B) available here* is shown if `socket:nema5_15` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema5_15~.+ & socket:nema5_15!=0 This tagrendering has labels @@ -1256,7 +1328,8 @@ This tagrendering has labels ### voltage-socket:nema5_15 The question is `What voltage do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set + +*NEMA 5-15 (Type B) outputs {canonical(socket:nema5_15:voltage)}* is shown if `socket:nema5_15:voltage` is set. - *NEMA 5-15 (Type B) outputs 120 volt* is shown if with socket:nema5_15:voltage=120 @@ -1267,7 +1340,8 @@ This tagrendering has labels ### current-socket:nema5_15 The question is `What current do the plugs with NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:current)}* is shown if `socket:nema5_15:current` is set. - *NEMA 5-15 (Type B) outputs at most 15 A* is shown if with socket:nema5_15:current=15 @@ -1278,7 +1352,8 @@ This tagrendering has labels ### power-output-socket:nema5_15 The question is `What power output does a single plug of type NEMA 5-15 (Type B) offer?` -*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set + +*NEMA 5-15 (Type B) outputs at most {canonical(socket:nema5_15:output)}* is shown if `socket:nema5_15:output` is set. - *NEMA 5-15 (Type B) outputs at most 1.8 kW* is shown if with socket:nema5_15:output=1.8 kW @@ -1289,7 +1364,8 @@ This tagrendering has labels ### plugs-amount-socket:sev1011_t23 The question is `How much plugs of type SEV 1011 T23 (Type J) are available here?` -*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set + +*There are {socket:sev1011_t23} plugs of type SEV 1011 T23 (Type J) available here* is shown if `socket:sev1011_t23` is set. This tagrendering is only visible in the popup if the following condition is met: socket:sev1011_t23~.+ & socket:sev1011_t23!=0 This tagrendering has labels @@ -1298,7 +1374,8 @@ This tagrendering has labels ### voltage-socket:sev1011_t23 The question is `What voltage do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set + +*SEV 1011 T23 (Type J) outputs {canonical(socket:sev1011_t23:voltage)}* is shown if `socket:sev1011_t23:voltage` is set. - *SEV 1011 T23 (Type J) outputs 230 volt* is shown if with socket:sev1011_t23:voltage=230 @@ -1309,7 +1386,8 @@ This tagrendering has labels ### current-socket:sev1011_t23 The question is `What current do the plugs with SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:current)}* is shown if `socket:sev1011_t23:current` is set. - *SEV 1011 T23 (Type J) outputs at most 16 A* is shown if with socket:sev1011_t23:current=16 @@ -1320,7 +1398,8 @@ This tagrendering has labels ### power-output-socket:sev1011_t23 The question is `What power output does a single plug of type SEV 1011 T23 (Type J) offer?` -*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set + +*SEV 1011 T23 (Type J) outputs at most {canonical(socket:sev1011_t23:output)}* is shown if `socket:sev1011_t23:output` is set. - *SEV 1011 T23 (Type J) outputs at most 3.7 kW* is shown if with socket:sev1011_t23:output=3.7 kW @@ -1331,7 +1410,8 @@ This tagrendering has labels ### plugs-amount-socket:as3112 The question is `How much plugs of type AS3112 (Type I) are available here?` -*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set + +*There are {socket:as3112} plugs of type AS3112 (Type I) available here* is shown if `socket:as3112` is set. This tagrendering is only visible in the popup if the following condition is met: socket:as3112~.+ & socket:as3112!=0 This tagrendering has labels @@ -1340,7 +1420,8 @@ This tagrendering has labels ### voltage-socket:as3112 The question is `What voltage do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set + +*AS3112 (Type I) outputs {canonical(socket:as3112:voltage)}* is shown if `socket:as3112:voltage` is set. - *AS3112 (Type I) outputs 230 volt* is shown if with socket:as3112:voltage=230 @@ -1351,7 +1432,8 @@ This tagrendering has labels ### current-socket:as3112 The question is `What current do the plugs with AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:current)}* is shown if `socket:as3112:current` is set. - *AS3112 (Type I) outputs at most 10 A* is shown if with socket:as3112:current=10 @@ -1362,7 +1444,8 @@ This tagrendering has labels ### power-output-socket:as3112 The question is `What power output does a single plug of type AS3112 (Type I) offer?` -*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set + +*AS3112 (Type I) outputs at most {canonical(socket:as3112:output)}* is shown if `socket:as3112:output` is set. - *AS3112 (Type I) outputs at most 2.3 kW* is shown if with socket:as3112:output=2.3 kW @@ -1373,7 +1456,8 @@ This tagrendering has labels ### plugs-amount-socket:nema_5_20 The question is `How much plugs of type NEMA 5-20 (Type B) are available here?` -*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set + +*There are {socket:nema_5_20} plugs of type NEMA 5-20 (Type B) available here* is shown if `socket:nema_5_20` is set. This tagrendering is only visible in the popup if the following condition is met: socket:nema_5_20~.+ & socket:nema_5_20!=0 This tagrendering has labels @@ -1382,7 +1466,8 @@ This tagrendering has labels ### voltage-socket:nema_5_20 The question is `What voltage do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set + +*NEMA 5-20 (Type B) outputs {canonical(socket:nema_5_20:voltage)}* is shown if `socket:nema_5_20:voltage` is set. - *NEMA 5-20 (Type B) outputs 120 volt* is shown if with socket:nema_5_20:voltage=120 @@ -1393,7 +1478,8 @@ This tagrendering has labels ### current-socket:nema_5_20 The question is `What current do the plugs with NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:current)}* is shown if `socket:nema_5_20:current` is set. - *NEMA 5-20 (Type B) outputs at most 20 A* is shown if with socket:nema_5_20:current=20 @@ -1404,7 +1490,8 @@ This tagrendering has labels ### power-output-socket:nema_5_20 The question is `What power output does a single plug of type NEMA 5-20 (Type B) offer?` -*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set + +*NEMA 5-20 (Type B) outputs at most {canonical(socket:nema_5_20:output)}* is shown if `socket:nema_5_20:output` is set. - *NEMA 5-20 (Type B) outputs at most 2.4 kW* is shown if with socket:nema_5_20:output=2.4 kW @@ -1415,7 +1502,8 @@ This tagrendering has labels ### OH The question is `When is this charging station opened?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -1433,7 +1521,8 @@ The question is `Does one have to pay to use this charging station?` ### charge The question is `How much does one have to pay to use this charging station?` -*Using this charging station costs {charge}* is shown if `charge` is set + +*Using this charging station costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes @@ -1453,7 +1542,8 @@ This tagrendering is only visible in the popup if the following condition is met ### app-name The question is `What is the name of the app used for payment?` -*Payment can be done using the app {payment:app}* is shown if `payment:app` is set + +*Payment can be done using the app {payment:app}* is shown if `payment:app` is set. This tagrendering is only visible in the popup if the following condition is met: payment:app~.+ & payment:app!=no @@ -1473,14 +1563,16 @@ The question is `What kind of authentication is available at the charging statio ### Auth phone The question is `What's the phone number for authentication call or SMS?` -*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set + +*Authenticate by calling or SMS'ing to {authentication:phone_call:number}* is shown if `authentication:phone_call:number` is set. This tagrendering is only visible in the popup if the following condition is met: authentication:phone_call=yes | authentication:short_message=yes ### maxstay The question is `What is the maximum amount of time one is allowed to stay here?` -*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set + +*One can stay at most {canonical(maxstay)}* is shown if `maxstay` is set. - *There is no limit to the amount of time one can stay here* is shown if with maxstay=unlimited @@ -1489,7 +1581,8 @@ This tagrendering is only visible in the popup if the following condition is met ### Network The question is `Is this charging station part of a network?` -*Part of the network {network}* is shown if `network` is set + +*Part of the network {network}* is shown if `network` is set. - *Not part of a bigger network, e.g. because the charging station is maintained by a local business* is shown if with no:network=yes - *Not part of a bigger network* is shown if with network=none. _This option cannot be chosen as answer_ @@ -1503,28 +1596,33 @@ The question is `Is this charging station part of a network?` ### Operator The question is `Who is the operator of this charging station?` -*This charging station is operated by {operator}* is shown if `operator` is set + +*This charging station is operated by {operator}* is shown if `operator` is set. - *Actually, {operator} is the network* is shown if with network= ### phone The question is `What number can one call if there is a problem with this charging station?` -*In case of problems, call {phone}* is shown if `phone` is set + +*In case of problems, call {phone}* is shown if `phone` is set. ### email The question is `What is the email address of the operator?` -*In case of problems, send an email to {email}* is shown if `email` is set + +*In case of problems, send an email to {email}* is shown if `email` is set. ### website The question is `What is the website where one can find more information about this charging station?` -*More info on {website}* is shown if `website` is set + +*More info on {website}* is shown if `website` is set. ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -1534,7 +1632,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -1548,7 +1647,8 @@ This tagrendering has labels ### ref The question is `What is the reference number of this charging station?` -*Reference number is {ref}* is shown if `ref` is set + +*Reference number is {ref}* is shown if `ref` is set. This tagrendering is only visible in the popup if the following condition is met: network~.+ @@ -1572,26 +1672,31 @@ The question is `Does one have to pay a parking fee while charging?` ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### questions-technical _This tagrendering has no question and is thus read-only_ + *

Technical questions

The questions below are very technical. Feel free to ignore them
{questions(technical)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -1684,6 +1789,7 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### bicycle_rental_type @@ -1702,7 +1808,8 @@ This tagrendering is only visible in the popup if the following condition is met ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -1712,7 +1819,8 @@ This tagrendering has labels ### email The question is `What is the email address of {title()}?` -*{email}* is shown if `email` is set + +*{email}* is shown if `email` is set. - *{contact:email}* is shown if with contact:email~.+. _This option cannot be chosen as answer_ - *{operator:email}* is shown if with operator:email~.+. _This option cannot be chosen as answer_ @@ -1723,7 +1831,8 @@ This tagrendering has labels ### phone The question is `What is the phone number of {title()}?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -1733,7 +1842,8 @@ This tagrendering has labels ### opening_hours The question is `What are the opening hours of {title()}?` -*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

Opening hours

{opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -1762,7 +1872,8 @@ The question is `Which methods of payment are accepted here?` ### bicycle-types The question is `What kind of bicycles and accessories are rented here?` -*{rental} is rented here* is shown if `rental` is set + +*{rental} is rented here* is shown if `rental` is set. - *Normal city bikes can be rented here* is shown if with rental=city_bike - *Electrical bikes can be rented here* is shown if with rental=ebike @@ -1780,7 +1891,8 @@ This tagrendering has labels ### rental-capacity-city_bike The question is `How many city bikes can be rented here?` -*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set + +*{capacity:city_bike} city bikes can be rented here* is shown if `capacity:city_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*city_bike.*)$ This tagrendering has labels @@ -1789,7 +1901,8 @@ This tagrendering has labels ### rental-capacity-ebike The question is `How many electrical bikes can be rented here?` -*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set + +*{capacity:ebike} electrical bikes can be rented here* is shown if `capacity:ebike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*ebike.*)$ This tagrendering has labels @@ -1798,7 +1911,8 @@ This tagrendering has labels ### rental-capacity-kid_bike The question is `How many bikes for children can be rented here?` -*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set + +*{capacity:kid_bike} bikes for children can be rented here* is shown if `capacity:kid_bike` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*kid_bike.*)$ This tagrendering has labels @@ -1807,7 +1921,8 @@ This tagrendering has labels ### rental-capacity-bmx The question is `How many BMX bikes can be rented here?` -*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set + +*{capacity:bmx} BMX bikes can be rented here* is shown if `capacity:bmx` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bmx.*)$ This tagrendering has labels @@ -1816,7 +1931,8 @@ This tagrendering has labels ### rental-capacity-mtb The question is `How many mountainbikes can be rented here?` -*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set + +*{capacity:mtb} mountainbikes can be rented here* is shown if `capacity:mtb` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*mtb.*)$ This tagrendering has labels @@ -1825,7 +1941,8 @@ This tagrendering has labels ### rental-capacity-bicycle_pannier The question is `How many bicycle panniers can be rented here?` -*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set + +*{capacity:bicycle_pannier} bicycle panniers can be rented here* is shown if `capacity:bicycle_pannier` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*bicycle_pannier.*)$ This tagrendering has labels @@ -1834,7 +1951,8 @@ This tagrendering has labels ### rental-capacity-tandem_bicycle The question is `How many tandem can be rented here?` -*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set + +*{capacity:tandem_bicycle} tandem can be rented here* is shown if `capacity:tandem_bicycle` is set. This tagrendering is only visible in the popup if the following condition is met: rental~^(.*tandem_bicycle.*)$ This tagrendering has labels @@ -1843,6 +1961,7 @@ This tagrendering has labels ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -1852,16 +1971,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/transit.md b/Docs/Themes/transit.md index fad8b694f6..3d29eaaaa8 100644 --- a/Docs/Themes/transit.md +++ b/Docs/Themes/transit.md @@ -83,11 +83,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -97,11 +99,13 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/uk_addresses.md b/Docs/Themes/uk_addresses.md index bd39206022..2bd33f3c80 100644 --- a/Docs/Themes/uk_addresses.md +++ b/Docs/Themes/uk_addresses.md @@ -128,11 +128,13 @@ Elements must match **all** of the following expressions: ### uk_addresses_explanation _This tagrendering has no question and is thus read-only_ + *We think there should be an address here. Please click below to add it.* ### uk_addresses_embedding_outline _This tagrendering has no question and is thus read-only_ + *Warning: This point lies within a building or area for which we already have an address. You should only add this address if it is different.
The number and street name we have for the existing address is {_embedding_object:addr:housenumber} {_embedding_object:addr:street}* - *Warning: The property boundary containing this point already contains at least one recorded address. You should only add this address if it is different.* is shown if with _embedding_object:id=true @@ -143,11 +145,13 @@ This tagrendering is only visible in the popup if the following condition is met ### uk_addresses_import_button _This tagrendering has no question and is thus read-only_ + *{import_button(address,urpn_count=$urpn_count;ref:GB:uprn=$ref:GB:uprn$,Add this address,./assets/themes/uk_addresses/housenumber_add.svg,,,,,)}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -157,6 +161,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -233,11 +238,13 @@ Elements must match **any** of the following expressions: ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### preview _This tagrendering has no question and is thus read-only_ + *
The envelope below shows the address that we have recorded. You can change this by answering any remaining questions above, or by clicking the pencil icons below. We do not need you to provide a recipient's name or any of the parts shown in [blue].
{addr:unit} {addr:housename}
{addr:housenumber} {addr:street}
{addr:parentstreet}
[Suburb]
[Town]
[Postal code]
* - *
The envelope below shows the address that we have recorded. You can change this by answering any remaining questions above, or by clicking the pencil icons below. We do not need you to provide a recipient's name or any of the parts shown in [blue].
{addr:unit} {addr:housename}
{addr:housenumber} {addr:substreet}
{addr:street}
{addr:parentstreet}
[Suburb]
[Town]
[Postal code]
* is shown if with addr:substreet~.+ @@ -245,7 +252,8 @@ _This tagrendering has no question and is thus read-only_ ### uk_addresses_unit The question is `What is the sub-unit for this address? ` -*
Sub-unit (e.g. 1, Flat 2, Unit C)
{addr:unit}
* is shown if `addr:unit` is set + +*
Sub-unit (e.g. 1, Flat 2, Unit C)
{addr:unit}
* is shown if `addr:unit` is set. - *
Sub-unit (e.g. 1, Flat 2, Unit C)
There is no sub-unit within this address
* is shown if with not:addr:unit=yes. _This option cannot be chosen as answer_ - *There is no sub-unit within this address* is shown if with not:addr:unit=yes @@ -256,7 +264,8 @@ This tagrendering is only visible in the popup if the following condition is met ### uk_addresses_housename The question is `What is the house or building name for this address?` -*
House or building name
{addr:housename}
* is shown if `addr:housename` is set + +*
House or building name
{addr:housename}
* is shown if `addr:housename` is set. - *
House or building name
This building has no housename
* is shown if with nohousename=yes & addr:housename=. _This option cannot be chosen as answer_ - *This building has no housename* is shown if with nohousename=yes & addr:housename= @@ -265,7 +274,8 @@ The question is `What is the house or building name for this address?` ### uk_addresses_housenumber The question is `What is the house or building number for this address?` -*
Number (e.g. 1, 1A, 2)
{addr:housenumber}
* is shown if `addr:housenumber` is set + +*
Number (e.g. 1, 1A, 2)
{addr:housenumber}
* is shown if `addr:housenumber` is set. - *
Number (e.g. 1, 1A, 2)
This building has no house number
* is shown if with nohousenumber=yes. _This option cannot be chosen as answer_ - *This building has no house number* is shown if with nohousenumber=yes @@ -273,7 +283,8 @@ The question is `What is the house or building number for this address?` ### uk_addresses_placename The question is `What is the place or locality for this address?` -*
Place (e.g. Castle Mews, West Business Park)
{addr:substreet}
* is shown if `addr:substreet` is set + +*
Place (e.g. Castle Mews, West Business Park)
{addr:substreet}
* is shown if `addr:substreet` is set. - *
Place (e.g. Castle Mews, West Business Park)
No extra place name is given or needed
* is shown if with not:addr:substreet=yes. _This option cannot be chosen as answer_ - *No extra place name is given or needed* is shown if with not:addr:substreet=yes @@ -282,7 +293,8 @@ The question is `What is the place or locality for this address?` ### uk_addresses_placename_with_parent The question is `What is the place or locality for this address?` -*
Place (e.g. Castle Mews, West Business Park)
{addr:substreet}
* is shown if `addr:substreet` is set + +*
Place (e.g. Castle Mews, West Business Park)
{addr:substreet}
* is shown if `addr:substreet` is set. - *
Place (e.g. Castle Mews, West Business Park)
No extra place name is given or needed
* is shown if with not:addr:substreet=yes. _This option cannot be chosen as answer_ - *No extra place name is given or needed* is shown if with not:addr:substreet=yes @@ -293,7 +305,8 @@ This tagrendering is only visible in the popup if the following condition is met ### uk_addresses_street The question is `What is the street name for this address?` -*
Street name
{addr:street}
* is shown if `addr:street` is set + +*
Street name
{addr:street}
* is shown if `addr:street` is set. - *
Street name
{_closest_street:0:name}
* is shown if with addr:street=. _This option cannot be chosen as answer_ - *
Street name
{_closest_street:1:name}
* is shown if with addr:street=. _This option cannot be chosen as answer_ @@ -305,7 +318,8 @@ The question is `What is the street name for this address?` ### uk_addresses_parentstreet The question is `What is the parent street name for this address?` -*
Parent street name
{addr:parentstreet}
* is shown if `addr:parentstreet` is set + +*
Parent street name
{addr:parentstreet}
* is shown if `addr:parentstreet` is set. - *
Parent street name
No parent street name is needed within this address
* is shown if with not:addr:parentstreet=yes. _This option cannot be chosen as answer_ - *No parent street name is needed within this address* is shown if with not:addr:parentstreet=yes @@ -322,23 +336,27 @@ This tagrendering is only visible in the popup if the following condition is met ### fixme The question is `Please explain what the address is so that someone else can look at it` -*This address is complicated. We have recorded the following description: {fixme:addr}* is shown if `fixme:addr` is set + +*This address is complicated. We have recorded the following description: {fixme:addr}* is shown if `fixme:addr` is set. - *Complicated address? Please click the pencil and write some text to describe the situation. You can also add a photo below if that helps* is shown if with fixme:addr=. _This option cannot be chosen as answer_ ### address-sign-image _This tagrendering has no question and is thus read-only_ + *{image_carousel(image:address)}
{image_upload(image:address, Too complex? Add a photo of the address)}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/velopark.md b/Docs/Themes/velopark.md index 3ca04ed42e..315695cf43 100644 --- a/Docs/Themes/velopark.md +++ b/Docs/Themes/velopark.md @@ -155,13 +155,15 @@ Elements must match the expression **mr_taskId~.+** ### velopark-ref The question is `What is the URL of the data path within Velopark?` -*This bicycle parking is on OpenStreetMap and is linked to Velopark:{link(&LBRACEref:velopark&RBRACE,&LBRACEref:velopark&RBRACE,,,,)}* is shown if `ref:velopark` is set + +*This bicycle parking is on OpenStreetMap and is linked to Velopark:{link(&LBRACEref:velopark&RBRACE,&LBRACEref:velopark&RBRACE,,,,)}* is shown if `ref:velopark` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bicycle_parking ### comparison_tool _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website(ref:velopark,no,https://data.velopark.be,,no)}* This tagrendering is only visible in the popup if the following condition is met: mr_taskId= & ref:velopark~^(https:\/\/data.velopark.be\/data\/.*)$ @@ -169,26 +171,31 @@ This tagrendering is only visible in the popup if the following condition is met ### login _This tagrendering has no question and is thus read-only_ + *{login_button(,)}* ### is_linked _This tagrendering has no question and is thus read-only_ -*{link(Matched with bicycle parking &LBRACE_osm_parkings_with_this_velopark_ref&RBRACE,#&LBRACE_osm_parkings_with_this_velopark_ref&RBRACE,,,,)}* is shown if `_osm_parkings_with_this_velopark_ref` is set + +*{link(Matched with bicycle parking &LBRACE_osm_parkings_with_this_velopark_ref&RBRACE,#&LBRACE_osm_parkings_with_this_velopark_ref&RBRACE,,,,)}* is shown if `_osm_parkings_with_this_velopark_ref` is set. ### velopark-link _This tagrendering has no question and is thus read-only_ + *This is data from Velopark. {link(See on velopark &LPARENSwebpage&RPARENS,https://www.velopark.be/static/data/&LBRACEmr_velopark_id&RBRACE,,,,)}* ### show-data-velopark _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website(ref:velopark,no,https://data.velopark.be,readonly,no)}* ### closest_parkings _This tagrendering has no question and is thus read-only_ + *

Nearby parkings

There are {_nearby_bicycle_parkings:count} bicycle parkings within {_distance_cutoff}m known in OpenStreetMap.* - *

No nearby parkings

There are no bicycle parkings in OpenStreetMap known within {_distance_cutoff}m* is shown if with _nearby_bicycle_parkings:count=0 @@ -196,6 +203,7 @@ _This tagrendering has no question and is thus read-only_ ### list_nearby_bike_parkings _This tagrendering has no question and is thus read-only_ + *Choose below which bicycle parking you want to link.{multi(_nearby_bicycle_parkings:props,&LBRACEid&RBRACE &LPARENS&LBRACE_distance&RBRACEm&COMMA &LBRACE_velopark:id&RBRACE&COMMA place for &LBRACEcapacity&RBRACE&COMMA covered: &LBRACEcovered&RBRACE&RPARENS &LBRACEminimap&LPARENS20&COMMAid&COMMA_mr_id&RPARENS&RBRACE &LBRACEtag_apply&LPARENSref:velopark=$_ref&COMMALink this object.&COMMAlink&COMMAid&COMMA_mr_id&RPARENS&RBRACE,p-2 m-1 my-4 border-2 border-dashed border-black)}* This tagrendering is only visible in the popup if the following condition is met: _nearby_bicycle_parkings:count>0 & mr_taskStatus=Created @@ -203,6 +211,7 @@ This tagrendering is only visible in the popup if the following condition is met ### title_create_new _This tagrendering has no question and is thus read-only_ + *

Add a parking to OpenStreetMap

Use this if the bicycle parking is missing in OpenStreetMap (there is no blue or green pin)* This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -210,6 +219,7 @@ This tagrendering is only visible in the popup if the following condition is met ### import_point _This tagrendering has no question and is thus read-only_ + *{import_button(bike_parking_with_velopark_ref bike_parking,amenity=bicycle_parking;ref:velopark=$ref:velopark,Create a new bicycle parking in OSM. This parking will have the link&COMMA you'll be able to copy the attributes in the next step,,,,,mr_taskId,yes)}* This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -217,6 +227,7 @@ This tagrendering is only visible in the popup if the following condition is met ### title_manually_copy _This tagrendering has no question and is thus read-only_ + *

Manually link

Does the bicycle parking exist in OpenStreetMap but is it further then 25m away? Then:
  1. Copy the following URL: {ref:velopark}
  2. Select the correct bicycle parking on the map
  3. Paste the URL into the question What is the URL of the data path in Velopark?
  4. Mark this item as handled with the button below:
  5. * This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -224,6 +235,7 @@ This tagrendering is only visible in the popup if the following condition is met ### close_mr _This tagrendering has no question and is thus read-only_ + *{maproulette_set_status(Mark this item as linked manually. Use this if you did apply the reference via copy-paste or via another editor,,,1,,)}* This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -231,6 +243,7 @@ This tagrendering is only visible in the popup if the following condition is met ### title_error _This tagrendering has no question and is thus read-only_ + *

    Closing without importing or linking

    * This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -238,6 +251,7 @@ This tagrendering is only visible in the popup if the following condition is met ### close_mr_incorrect _This tagrendering has no question and is thus read-only_ + *{maproulette_set_status(Mark this item as incorrect or too hard to solve &LPARENSduplicate&COMMA does not exist anymore&COMMA contradictory data&COMMA not placeable from aerial imagery&RPARENS,invalid,,6,,Is this point incorrect or is it difficult to solve? Please provide some feedback below)}* This tagrendering is only visible in the popup if the following condition is met: mr_taskStatus=Created @@ -245,21 +259,25 @@ This tagrendering is only visible in the popup if the following condition is met ### title_debug _This tagrendering has no question and is thus read-only_ + *

    Extra information

    * ### velopark-data-link _This tagrendering has no question and is thus read-only_ + *{link(Inspect raw data on velopark.be,&LBRACEref:velopark&RBRACE,,,,)}* ### nearby_images _This tagrendering has no question and is thus read-only_ + *{nearby_images(,readonly)}* ### no_save_needed _This tagrendering has no question and is thus read-only_ + *Changes are automatically saved. You can simply close this popup with the cross at the upper-right* This tagrendering is only visible in the popup if the following condition is met: id~^(node\/*)$ | id~^(way\/*)$ | id~^(relation\/*)$ @@ -267,6 +285,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -276,6 +295,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -369,13 +389,15 @@ Elements must match **all** of the following expressions: ### velopark-ref The question is `What is the URL of the data path within Velopark?` -*This bicycle parking is on OpenStreetMap and is linked to Velopark:{link(&LBRACEref:velopark&RBRACE,&LBRACEref:velopark&RBRACE,,,,)}* is shown if `ref:velopark` is set + +*This bicycle parking is on OpenStreetMap and is linked to Velopark:{link(&LBRACEref:velopark&RBRACE,&LBRACEref:velopark&RBRACE,,,,)}* is shown if `ref:velopark` is set. This tagrendering is only visible in the popup if the following condition is met: amenity=bicycle_parking ### comparison_tool _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website(ref:velopark,no,https://data.velopark.be,,no)}* This tagrendering is only visible in the popup if the following condition is met: mr_taskId= & ref:velopark~^(https:\/\/data.velopark.be\/data\/.*)$ @@ -383,22 +405,26 @@ This tagrendering is only visible in the popup if the following condition is met ### questions-intro _This tagrendering has no question and is thus read-only_ + *The question(s) below inquiry about attributes that are not yet known in OpenStreetMap* ### questions Show the questions block at this location _This tagrendering has no question and is thus read-only_ + *{questions()}* ### osm-block-title _This tagrendering has no question and is thus read-only_ + *

    Attributes from OpenStreetMap

    Editing below will make changes directly in OpenStreetMap* ### Bicycle parking type The question is `What is the type of this bicycle parking?` -*This is a bicycle parking of the type: {bicycle_parking}* is shown if `bicycle_parking` is set + +*This is a bicycle parking of the type: {bicycle_parking}* is shown if `bicycle_parking` is set. - *Stands* is shown if with bicycle_parking=stands - *Rack with side loops* is shown if with bicycle_parking=safe_loops @@ -436,12 +462,14 @@ The question is `Is this parking covered?` ### Capacity The question is `How many bicycles fit in this bicycle parking?` -*Place for {capacity} bikes* is shown if `capacity` is set + +*Place for {capacity} bikes* is shown if `capacity` is set. ### Access The question is `Who can use this bicycle parking?` -*{access}* is shown if `access` is set + +*{access}* is shown if `access` is set. - *Publicly accessible* is shown if with access=yes - *Access is primarily for visitors to a business* is shown if with access=customers @@ -458,14 +486,16 @@ The question is `Are these bicycle parkings free to use?` ### charge The question is `How much does it cost to park your bike here?` -*Parking your bike costs {charge}* is shown if `charge` is set + +*Parking your bike costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: fee=yes ### opening_hours_24_7_default The question is `What are the opening hours of {title()}?` -*

    Opening hours

    {opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

    Opening hours

    {opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -473,12 +503,14 @@ The question is `What are the opening hours of {title()}?` ### operator The question is `Who maintains this bicycle parking?` -*This bicycle parking is maintained by {operator}* is shown if `operator` is set + +*This bicycle parking is maintained by {operator}* is shown if `operator` is set. ### operator_phone The question is `What is the phone number of the operator of this bicycle parking?` -*{operator:phone}* is shown if `operator:phone` is set + +*{operator:phone}* is shown if `operator:phone` is set. - *{phone}* is shown if with phone~.+. _This option cannot be chosen as answer_ - *{contact:phone}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -486,7 +518,8 @@ The question is `What is the phone number of the operator of this bicycle parkin ### operator_website The question is `What is the website number of the operator of this bicycle parking?` -*{operator:website}* is shown if `operator:website` is set + +*{operator:website}* is shown if `operator:website` is set. - *{website}* is shown if with website~.+. _This option cannot be chosen as answer_ - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -494,7 +527,8 @@ The question is `What is the website number of the operator of this bicycle park ### operator_email The question is `What is the email address of the operator of this bicycle parking?` -*{operator:email}* is shown if `operator:email` is set + +*{operator:email}* is shown if `operator:email` is set. ### Cargo bike spaces? @@ -507,7 +541,8 @@ The question is `Does this bicycle parking have spots for cargo bikes?` ### Cargo bike capacity? The question is `How many cargo bicycles fit in this bicycle parking?` -*This parking fits {capacity:cargo_bike} cargo bikes* is shown if `capacity:cargo_bike` is set + +*This parking fits {capacity:cargo_bike} cargo bikes* is shown if `capacity:cargo_bike` is set. - *There are no dedicated spaces for cargo bikes here or parking cargo bikes here is not allowed* is shown if with cargo_bike=no @@ -516,26 +551,31 @@ This tagrendering is only visible in the popup if the following condition is met ### maxstay The question is `What is the maximum allowed parking duration?` -*A bike can be parked here for at most {canonical(maxstay)}* is shown if `maxstay` is set + +*A bike can be parked here for at most {canonical(maxstay)}* is shown if `maxstay` is set. ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -544,6 +584,7 @@ This tagrendering has labels ### no_save_needed _This tagrendering has no question and is thus read-only_ + *Changes are automatically saved. You can simply close this popup with the cross at the upper-right* This tagrendering is only visible in the popup if the following condition is met: id~^(node\/*)$ | id~^(way\/*)$ | id~^(relation\/*)$ diff --git a/Docs/Themes/vending_machine.md b/Docs/Themes/vending_machine.md index bed84b7a79..d1d9314798 100644 --- a/Docs/Themes/vending_machine.md +++ b/Docs/Themes/vending_machine.md @@ -137,11 +137,13 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### repeated _This tagrendering has no question and is thus read-only_ + *Multiple, identical objects can be found on floors {repeat_on}.* This tagrendering is only visible in the popup if the following condition is met: repeat_on~.+ @@ -151,7 +153,8 @@ This tagrendering has labels ### single_level The question is `On what level is this feature located?` -*Located on the {level}th floor* is shown if `level` is set + +*Located on the {level}th floor* is shown if `level` is set. - *Located underground* is shown if with location=underground. _This option cannot be chosen as answer_ - *Located on the ground floor* is shown if with level=0 @@ -165,7 +168,8 @@ This tagrendering has labels ### vending The question is `What does this vending machine sell?` -*This vending machine sells {vending}* is shown if `vending` is set + +*This vending machine sells {vending}* is shown if `vending` is set. - *Drinks are sold* is shown if with vending=drinks - *Sweets are sold* is shown if with vending=sweets @@ -200,7 +204,8 @@ The question is `What does this vending machine sell?` ### bicycle_tube_vending_machine-brand The question is `Which brand of tubes are sold here?` -*{brand} tubes are sold here* is shown if `brand` is set + +*{brand} tubes are sold here* is shown if `brand` is set. - *Continental tubes are sold here* is shown if with brand=Continental - *Schwalbe tubes are sold here* is shown if with brand=Schwalbe @@ -210,7 +215,8 @@ This tagrendering is only visible in the popup if the following condition is met ### opening_hours_24_7 The question is `What are the opening hours of {title()}?` -*

    Opening hours

    {opening_hours_table(opening_hours)}* is shown if `opening_hours` is set + +*

    Opening hours

    {opening_hours_table(opening_hours)}* is shown if `opening_hours` is set. - *24/7 opened (including holidays)* is shown if with opening_hours=24/7 - *Marked as closed for an unspecified time* is shown if with opening_hours=closed. _This option cannot be chosen as answer_ @@ -272,7 +278,8 @@ This tagrendering is only visible in the popup if the following condition is met ### operator The question is `Who operates this vending machine?` -*This vending machine is operated by {operator}* is shown if `operator` is set + +*This vending machine is operated by {operator}* is shown if `operator` is set. ### indoor @@ -285,7 +292,8 @@ The question is `Is this vending machine indoors?` ### phone The question is `What is the phone number of the operator of this vending machine?` -*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set + +*{link(&LBRACEphone&RBRACE,tel:&LBRACEphone&RBRACE,,,,)}* is shown if `phone` is set. - *{link(&LBRACEcontact:phone&RBRACE,tel:&LBRACEcontact:phone&RBRACE,,,,)}* is shown if with contact:phone~.+. _This option cannot be chosen as answer_ @@ -295,7 +303,8 @@ This tagrendering has labels ### website The question is `What is the website of {title()}?` -*{website}* is shown if `website` is set + +*{website}* is shown if `website` is set. - *{contact:website}* is shown if with contact:website~.+. _This option cannot be chosen as answer_ @@ -305,21 +314,24 @@ This tagrendering has labels ### charge_bicycle_tube The question is `How much does a a bicycle tube cost?` -*a bicycle tube costs {charge}* is shown if `charge` is set + +*a bicycle tube costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_tube.*)$ ### charge_bicycle_light The question is `How much does a bicycle light cost?` -*bicycle light costs {charge}* is shown if `charge` is set + +*bicycle light costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*bicycle_light.*)$ ### charge_condom The question is `How much does a a condom cost?` -*a condom costs {charge}* is shown if `charge` is set + +*a condom costs {charge}* is shown if `charge` is set. This tagrendering is only visible in the popup if the following condition is met: vending~^(.*condom.*)$ @@ -335,6 +347,7 @@ The question is `Is this vending machine still operational?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -344,16 +357,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/walkingnodes.md b/Docs/Themes/walkingnodes.md index d231de5c3c..5ec24cf5ab 100644 --- a/Docs/Themes/walkingnodes.md +++ b/Docs/Themes/walkingnodes.md @@ -101,18 +101,21 @@ Elements must match **all** of the following expressions: ### node2node-survey:date The question is `When was this node to node link last surveyed?` -*This node to node link was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This node to node link was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### export_as_gpx Shows a button to export this feature as GPX. Especially useful for route relations _This tagrendering has no question and is thus read-only_ + *{export_as_gpx()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -122,6 +125,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -171,30 +175,35 @@ Elements must match **any** of the following expressions: ### node-rwn_ref The question is `What is the reference number of this walking node?` -*This walking node has reference number {rwn_ref}* is shown if `rwn_ref` is set + +*This walking node has reference number {rwn_ref}* is shown if `rwn_ref` is set. This tagrendering is only visible in the popup if the following condition is met: rwn_ref~.+ ### survey_date The question is `When was this walking node last surveyed?` -*This walking node was last surveyed on {survey:date}* is shown if `survey:date` is set + +*This walking node was last surveyed on {survey:date}* is shown if `survey:date` is set. - *This object was last surveyed today* is shown if with survey:date= ### node-expected_rwn_route_relations The question is `How many other walking nodes does this node link to?` -*This node links to {expected_rwn_route_relations} other walking nodes.* is shown if `expected_rwn_route_relations` is set + +*This node links to {expected_rwn_route_relations} other walking nodes.* is shown if `expected_rwn_route_relations` is set. ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -204,6 +213,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -259,32 +269,37 @@ Elements must match **all** of the following expressions: ### images This block shows the known images which are linked with the `image`-keys, but also via `mapillary` and `wikidata` and shows the button to upload new images _This tagrendering has no question and is thus read-only_ + *{image_carousel()}{image_upload()}* ### name The question is `What is the name noted on this guidepost?` -*Name noted on the guidepost: {name}* is shown if `name` is set + +*Name noted on the guidepost: {name}* is shown if `name` is set. - *There is no name noted on this guidepost* is shown if with noname=yes ### ref The question is `What is the reference number of this guidepost?` -*Reference number of the guidepost: {ref}* is shown if `ref` is set + +*Reference number of the guidepost: {ref}* is shown if `ref` is set. - *There is no reference number noted on this guidepost* is shown if with noref=yes ### ele The question is `What is the elevation noted on this guidepost?` -*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set + +*Elevation noted on the guidepost: {ele} m* is shown if `ele` is set. - *There is no elevation noted on this guidepost* is shown if with noele=yes ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -294,16 +309,19 @@ This tagrendering has labels ### move-button _This tagrendering has no question and is thus read-only_ + *{move_button()}* ### delete-button _This tagrendering has no question and is thus read-only_ + *{delete_button()}* ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/waste_assen.md b/Docs/Themes/waste_assen.md index b31936c0c1..06c1306f10 100644 --- a/Docs/Themes/waste_assen.md +++ b/Docs/Themes/waste_assen.md @@ -71,11 +71,13 @@ Elements must match the expression **OBJECTID~.+** ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -85,6 +87,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels @@ -121,11 +124,13 @@ Elements must match the expression **OBJECTID~.+** ### all_tags Shows a table with all the tags of the feature _This tagrendering has no question and is thus read-only_ + *{all_tags()}* ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -135,6 +140,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/width.md b/Docs/Themes/width.md index a871a678d9..4fc176d176 100644 --- a/Docs/Themes/width.md +++ b/Docs/Themes/width.md @@ -79,11 +79,13 @@ Elements must match the expression **width:carriageway~.+** ### carriageway_width The question is `Hoe breed is deze straat?` -*Deze straat is {width:carriageway}m breed* is shown if `width:carriageway` is set + +*Deze straat is {width:carriageway}m breed* is shown if `width:carriageway` is set. ### too_little_width _This tagrendering has no question and is thus read-only_ + *Deze straat heeft {_width:difference}m te weinig. De ruimte die nodig zou zijn is:* - *Deze straat is breed genoeg:* is shown if with _width:difference~^(-.*)$ | _width:difference=0 @@ -91,6 +93,7 @@ _This tagrendering has no question and is thus read-only_ ### needed_for_cars _This tagrendering has no question and is thus read-only_ + *{_width:needed:cars}m voor het autoverkeer* - *{_width:needed:cars}m voor het éénrichtings-autoverkeer* is shown if with oneway=yes @@ -99,11 +102,13 @@ _This tagrendering has no question and is thus read-only_ ### needed_for_parking _This tagrendering has no question and is thus read-only_ + *{_width:needed:parking}m voor het geparkeerde wagens* ### needed_for_cyclists _This tagrendering has no question and is thus read-only_ + *{_width:needed:cyclists}m voor fietsers* - *Fietsers hebben hier een vrijliggend fietspad en worden dus niet meegerekend* is shown if with bicycle=use_sidepath @@ -112,6 +117,7 @@ _This tagrendering has no question and is thus read-only_ ### needed_for_pedestrians _This tagrendering has no question and is thus read-only_ + *{_width:needed:pedestrians}m voor voetgangers* - *{_width:needed:pedestrians}m voor voetgangers: er zijn hier geen voetpaden* is shown if with sidewalk=none | sidewalk=no @@ -120,6 +126,7 @@ _This tagrendering has no question and is thus read-only_ ### total_width_needed _This tagrendering has no question and is thus read-only_ + *{_width:needed:total}m nodig in het totaal* ### has_sidewalks @@ -136,6 +143,7 @@ This tagrendering is only visible in the popup if the following condition is met ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -145,6 +153,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/Themes/winter_service.md b/Docs/Themes/winter_service.md index 0d4f9e82f7..3a1f071a59 100644 --- a/Docs/Themes/winter_service.md +++ b/Docs/Themes/winter_service.md @@ -77,6 +77,7 @@ The question is `Is this road serviced (e.g. cleared of snow) in winter?` ### leftover-questions _This tagrendering has no question and is thus read-only_ + *{questions( ,hidden)}* This tagrendering has labels @@ -86,6 +87,7 @@ This tagrendering has labels ### lod _This tagrendering has no question and is thus read-only_ + *{linked_data_from_website()}* This tagrendering has labels diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md index f850334b4c..74ae143e15 100644 --- a/Docs/URL_Parameters.md +++ b/Docs/URL_Parameters.md @@ -419,7 +419,7 @@ The default value is _false_ The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' -This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L455) +This documentation is defined in the source code at [generateDocs.ts](ervdvn/git2/MapComplete/scripts/generateDocs.ts#L463) The default value is _map_ diff --git a/Docs/builtin_units.md b/Docs/builtin_units.md index f2641f2622..d1af260a65 100644 --- a/Docs/builtin_units.md +++ b/Docs/builtin_units.md @@ -99,6 +99,10 @@ Units #### MW +Validator is *float* + +1MW = 1000000MW + Alternative denominations: - megawatts @@ -106,6 +110,10 @@ Alternative denominations: #### kW +Validator is *float* + +1kW = 1000MW + Alternative denominations: - kilowatts @@ -113,6 +121,8 @@ Alternative denominations: #### W +Validator is *float* + Alternative denominations: - watts @@ -120,6 +130,10 @@ Alternative denominations: #### GW +Validator is *float* + +1GW = 1000000000MW + Alternative denominations: - gigawatts @@ -129,6 +143,8 @@ Alternative denominations: #### V +Validator is *float* + Alternative denominations: - v @@ -140,6 +156,8 @@ Alternative denominations: #### A +Validator is *float* + Alternative denominations: - a @@ -151,6 +169,8 @@ Alternative denominations: #### m +Validator is *float* + *Default denomination* Alternative denominations: @@ -160,6 +180,10 @@ Alternative denominations: #### cm +Validator is *float* + +1cm = 0.01m + Alternative denominations: - centimeter @@ -168,6 +192,10 @@ Alternative denominations: #### mm +Validator is *float* + +1mm = 0.001m + Alternative denominations: - millimeter @@ -175,6 +203,10 @@ Alternative denominations: #### ft +Validator is *float* + +1ft = 0.3048m + Alternative denominations: - feet @@ -184,6 +216,8 @@ Alternative denominations: #### kmh +Validator is *float* + Alternative denominations: - km/u @@ -192,6 +226,8 @@ Alternative denominations: #### mph +Validator is *float* + Default denomination in the following countries: - gb @@ -207,6 +243,8 @@ Alternative denominations: #### minutes +Validator is *float* + Alternative denominations: - m @@ -217,6 +255,8 @@ Alternative denominations: #### hours +Validator is *float* + Alternative denominations: - h @@ -228,6 +268,8 @@ Alternative denominations: #### days +Validator is *float* + Alternative denominations: - dys @@ -236,9 +278,15 @@ Alternative denominations: #### weeks +Validator is *float* + #### months +Validator is *float* + #### years +Validator is *float* + This document is autogenerated from [assets/layers/unit/unit.json](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/assets/layers/unit/unit.json), [src/Models/ThemeConfig/Json/UnitConfigJson.ts](https://source.mapcomplete.org/MapComplete/MapComplete/src/branch/develop/src/Models/ThemeConfig/Json/UnitConfigJson.ts) From 32cb8f489fc8f3e82d2627abcd4b40db77b8c9dc Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 20 May 2025 00:32:53 +0200 Subject: [PATCH 17/39] Studio: add space in button --- src/UI/Studio/EditItemButton.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UI/Studio/EditItemButton.svelte b/src/UI/Studio/EditItemButton.svelte index 0628977a0c..444646d3fc 100644 --- a/src/UI/Studio/EditItemButton.svelte +++ b/src/UI/Studio/EditItemButton.svelte @@ -31,7 +31,7 @@ {info.id} {#if info.owner && info.owner !== $selfId} {#if $displayName} - (made by {$displayName} + (made by {$displayName}   {info.owner} ) {:else} From fb8ead2a2c03ae0fd2aa1c6935d13be728c258d7 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 20 May 2025 00:34:39 +0200 Subject: [PATCH 18/39] Themes(toilets): add an allowed range to some freeform inputs, allow to specify 'units' in the freeform, add the possibility to convert units --- .../adult_changing_table.json | 76 +++++++++++-------- assets/layers/entrance/entrance.json | 48 +++++++----- assets/layers/toilet/toilet.json | 30 ++++---- assets/layers/unit/unit.json | 18 +++-- langs/en.json | 6 ++ scripts/generateDocs.ts | 10 ++- src/Models/Denomination.ts | 29 ++++--- .../ThemeConfig/Conversion/PrepareLayer.ts | 2 + .../QuestionableTagRenderingConfigJson.ts | 10 +++ src/Models/ThemeConfig/Json/UnitConfigJson.ts | 8 +- src/Models/ThemeConfig/TagRenderingConfig.ts | 44 +++++++++-- src/Models/Unit.ts | 19 ++++- src/UI/InputElement/ValidatedInput.svelte | 61 +++++++++++++-- .../InputElement/Validators/FloatValidator.ts | 7 +- .../Popup/TagRendering/FreeformInput.svelte | 2 + .../TagRendering/TagRenderingQuestion.svelte | 3 +- 16 files changed, 270 insertions(+), 103 deletions(-) diff --git a/assets/layers/adult_changing_table/adult_changing_table.json b/assets/layers/adult_changing_table/adult_changing_table.json index f32be1606e..03781d6206 100644 --- a/assets/layers/adult_changing_table/adult_changing_table.json +++ b/assets/layers/adult_changing_table/adult_changing_table.json @@ -79,7 +79,20 @@ ], "freeform": { "key": "height", - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "denominations": [ + "m", + "cm" + ] + }, + "range": { + "warnBelow": 0.8, + "warnAbove": 1.7, + "min": 0.4, + "max": 2 + } }, "render": { "en": "The changing table is {canonical(height)} high", @@ -104,7 +117,20 @@ }, "freeform": { "key": "min_height", - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "denominations": [ + "m", + "cm" + ] + }, + "range": { + "warnBelow": 0.8, + "warnAbove": 1.7, + "min": 0.4, + "max": 2 + } }, "render": { "en": "The lowest height of the adult changing table is {canonical(min_height)}", @@ -134,7 +160,20 @@ }, "freeform": { "key": "max_height", - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "denominations": [ + "m", + "cm" + ] + }, + "range": { + "warnBelow": 0.8, + "warnAbove": 1.7, + "min": 0.4, + "max": 2 + } }, "render": { "en": "The highest height of the adult changing table is {canonical(max_height)}", @@ -226,34 +265,5 @@ "en": "Adult changing table", "nl": "Verzorgingstafel voor volwassenen", "it": "Fasciatoio per adulti" - }, - "units": [ - { - "adult:height": { - "quantity": "distance", - "denominations": [ - "m", - "cm" - ] - } - }, - { - "adult:min_height": { - "quantity": "distance", - "denominations": [ - "m", - "cm" - ] - } - }, - { - "adult:max_height": { - "quantity": "distance", - "denominations": [ - "m", - "cm" - ] - } - } - ] + } } diff --git a/assets/layers/entrance/entrance.json b/assets/layers/entrance/entrance.json index 3f95503155..296dc45c58 100644 --- a/assets/layers/entrance/entrance.json +++ b/assets/layers/entrance/entrance.json @@ -588,7 +588,20 @@ }, "freeform": { "key": "width", - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "canonical": "m", + "denominations": [ + "cm" + ] + }, + "range": { + "warnBelow": 0.8, + "warnAbove": 1.7, + "min": 0.4, + "max": 2 + } } }, { @@ -629,7 +642,18 @@ "es": "Altura del bordillo de la puerta", "it": "Altezza del gradino della porta" }, - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "canonical": "m", + "denominations": [ + "cm" + ] + }, + "range": { + "warnAbove": 0.25, + "max": 0.5 + } }, "mappings": [ { @@ -720,23 +744,5 @@ "allowMove": { "enableImproveAccuracy": true, "enableRelocation": false - }, - "units": [ - { - "kerb:height": { - "quantity": "distance", - "canonical": "m", - "denominations": [ - "cm" - ] - }, - "width": { - "quantity": "distance", - "canonical": "m", - "denominations": [ - "cm" - ] - } - } - ] + } } diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json index 91c6087704..f9be205a91 100644 --- a/assets/layers/toilet/toilet.json +++ b/assets/layers/toilet/toilet.json @@ -1534,7 +1534,7 @@ }, "render": { "en": "The door to the wheelchair-accessible toilet is {canonical(door:width)} wide", - "nl": "De deur naar de rolstoeltoegankelijke toilet is {canonical(door:width)} wide", + "nl": "De deur naar de rolstoeltoegankelijke toilet is {canonical(door:width)}", "fr": "La porte des toilettes accessibles aux fauteuils roulants a une large de {canonical(door:width)}", "de": "Die Tür zur rollstuhlgerechten Toilette ist {canonical(door:width)} breit", "da": "Døren til det kørestolsvenlige toilet er {canonical(door:width)} bred", @@ -1545,7 +1545,20 @@ }, "freeform": { "key": "door:width", - "type": "pfloat" + "type": "pfloat", + "unit": { + "quantity": "distance", + "denominations": [ + "m", + "cm" + ] + }, + "range": { + "warnBelow": 0.6, + "min": 0.4, + "warnAbove": 2, + "max": 4 + } } }, { @@ -1734,16 +1747,5 @@ "allowMove": { "enableRelocation": false, "enableImproveAccuracy": true - }, - "units": [ - { - "door:width": { - "quantity": "distance", - "denominations": [ - "m", - "cm" - ] - } - } - ] + } } diff --git a/assets/layers/unit/unit.json b/assets/layers/unit/unit.json index 194af9e280..9aad86f5a9 100644 --- a/assets/layers/unit/unit.json +++ b/assets/layers/unit/unit.json @@ -36,7 +36,8 @@ "da": "{quantity} Megawatt", "cs": "{quantity} megawatty", "es": "{quantity} megavatios" - } + }, + "factorToCanonical": 1000000 }, { "canonicalDenomination": "kW", @@ -60,7 +61,8 @@ "da": "{quantity} Kilowatt", "cs": "{quantity} kilowatty", "es": "{quantity} kilovatios" - } + }, + "factorToCanonical": 1000 }, { "canonicalDenomination": "W", @@ -106,7 +108,8 @@ "cs": "{quantity} gigawatty", "zh_Hant": "{quantity} 千兆瓦", "es": "{quantity} gigavatios" - } + }, + "factorToCanonical": 1000000000 } ], "eraseInvalidValues": true @@ -231,7 +234,8 @@ "hu": "egy centiméter", "es": "un centímetro", "it": "one centimeter" - } + }, + "factorToCanonical": 0.01 }, { "canonicalDenomination": "mm", @@ -259,7 +263,8 @@ "hu": "egy milliméter", "es": "un milímetro", "it": "one millimeter" - } + }, + "factorToCanonical": 0.001 }, { "canonicalDenomination": "ft", @@ -283,7 +288,8 @@ "nb_NO": "{quantity} fot", "pa_PK": "{quantity} ؜ فوٹ", "hu": "{quantity} láb" - } + }, + "factorToCanonical": 0.3048 } ] }, diff --git a/langs/en.json b/langs/en.json index aee22b63c0..36e88bed16 100644 --- a/langs/en.json +++ b/langs/en.json @@ -858,6 +858,12 @@ "description": "a number", "feedback": "This is not a number" }, + "generic": { + "suspiciouslyHigh": "This value is suspiciously high. Are you sure it is correct?", + "suspiciouslyLow": "This value is suspiciously low. Are you sure it is correct?", + "tooHigh": "This value is too high - the highest allowed value is {max}", + "tooLow": "This value is too low - the lowest allowed value is {min}" + }, "id": { "description": "an identifier", "invalidCharacter": "An id can only contain letters, digits and underscores", diff --git a/scripts/generateDocs.ts b/scripts/generateDocs.ts index 6a09cb28ac..f85da064c7 100644 --- a/scripts/generateDocs.ts +++ b/scripts/generateDocs.ts @@ -280,11 +280,19 @@ export class GenerateDocs extends Script { "Units ", "## " + layer.id, ] - for (const unit of layer.units) { els.push("### " + unit.quantity) + const defaultUnit = unit.getDefaultDenomination(() => undefined) for (const denomination of unit.denominations) { els.push("#### " + denomination.canonical) + if (denomination.validator) { + els.push(`Validator is *${denomination.validator.name}*`) + } + + if (denomination.factorToCanonical) { + els.push(`1${denomination.canonical} = ${denomination.factorToCanonical}${defaultUnit.canonical}`) + } + if (denomination.useIfNoUnitGiven === true) { els.push("*Default denomination*") } else if ( diff --git a/src/Models/Denomination.ts b/src/Models/Denomination.ts index 94b9abfe54..6de24f3f7d 100644 --- a/src/Models/Denomination.ts +++ b/src/Models/Denomination.ts @@ -16,7 +16,12 @@ export class Denomination { public readonly alternativeDenominations: string[] public readonly human: TypedTranslation<{ quantity: string }> public readonly humanSingular?: Translation - private readonly _validator: Validator + public readonly validator: Validator + /** + * IF a conversion to the canonical value is possible, this is the factor. + * E.g. for "cm", the factor is 0.01, as "1cm = 0.01m" + */ + public readonly factorToCanonical?: number private constructor( canonical: string, @@ -27,7 +32,8 @@ export class Denomination { alternativeDenominations: string[], _human: TypedTranslation<{ quantity: string }>, _humanSingular: Translation, - validator: Validator + validator: Validator, + factorToCanonical: number ) { this.canonical = canonical this._canonicalSingular = _canonicalSingular @@ -37,7 +43,8 @@ export class Denomination { this.alternativeDenominations = alternativeDenominations this.human = _human this.humanSingular = _humanSingular - this._validator = validator + this.validator = validator + this.factorToCanonical = factorToCanonical } public static fromJson(json: DenominationConfigJson, validator: Validator, context: string) { @@ -73,7 +80,8 @@ export class Denomination { json.alternativeDenomination?.map((v) => v.trim()) ?? [], humanTexts, Translations.T(json.humanSingular, context + "humanSingular"), - validator + validator, + json.factorToCanonical ) } @@ -87,7 +95,8 @@ export class Denomination { this.alternativeDenominations, this.human, this.humanSingular, - this._validator + this.validator, + this.factorToCanonical ) } @@ -101,7 +110,8 @@ export class Denomination { [this.canonical, ...this.alternativeDenominations], this.human, this.humanSingular, - this._validator + this.validator, + this.factorToCanonical ) } @@ -217,10 +227,10 @@ export class Denomination { return null } - if (!this._validator.isValid(value.trim())) { + if (!this.validator.isValid(value.trim())) { return null } - return this._validator.reformat(value.trim()) + return this.validator.reformat(value.trim()) } withValidator(validator: Validator) { @@ -233,7 +243,8 @@ export class Denomination { this.alternativeDenominations, this.human, this.humanSingular, - validator + validator, + this.factorToCanonical ) } } diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts index b33b76e1de..0fe8b64417 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts @@ -962,6 +962,7 @@ class MoveUnitConfigs extends DesugaringStep { json.units.push({ [qtr.freeform.key]: unitConfig }) + // Note: we do not delete the config - this way, if the tagRendering is imported in another layer, the unit comes along } return json } @@ -1052,6 +1053,7 @@ export class PrepareLayer extends Fuse { ), new AddFiltersFromTagRenderings(), new ExpandFilter(state), + new MoveUnitConfigs(), new PruneFilters() ) } diff --git a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts index c27b0fed1a..50bbedff0c 100644 --- a/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts +++ b/src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson.ts @@ -312,6 +312,16 @@ export interface QuestionableTagRenderingConfigJson extends TagRenderingConfigJs canonical?: string inverted?: boolean + }, + /** + * question: In what range should the value be? + * For example, a door width under 65cm is suspicious, under 40cm it is a mistake. + */ + range?: { + min?: number, + warnBelow?: number, + warnAbove?: number + max?: number } } diff --git a/src/Models/ThemeConfig/Json/UnitConfigJson.ts b/src/Models/ThemeConfig/Json/UnitConfigJson.ts index 8ac5d25c32..82af97da71 100644 --- a/src/Models/ThemeConfig/Json/UnitConfigJson.ts +++ b/src/Models/ThemeConfig/Json/UnitConfigJson.ts @@ -85,7 +85,8 @@ export default interface UnitConfigJson { * When a default input method should be used, this can be specified by setting the canonical denomination here, e.g. * `defaultInput: "cm"`. This must be a denomination which appears in the applicableUnits */ - defaultInput?: string + defaultInput?: string, + } export interface DenominationConfigJson { @@ -154,4 +155,9 @@ export interface DenominationConfigJson { * E.g.: `50 mph` instad of `50mph` */ addSpace?: boolean + + /** + * If the canonical unit (e.g. 1m) is multiplied with the factorToCanonical (0.01) you will get the current unit (1cm) + */ + factorToCanonical?: number } diff --git a/src/Models/ThemeConfig/TagRenderingConfig.ts b/src/Models/ThemeConfig/TagRenderingConfig.ts index dbdcac8f0c..56ab043a44 100644 --- a/src/Models/ThemeConfig/TagRenderingConfig.ts +++ b/src/Models/ThemeConfig/TagRenderingConfig.ts @@ -5,10 +5,7 @@ import { TagUtils } from "../../Logic/Tags/TagUtils" import { And } from "../../Logic/Tags/And" import { Utils } from "../../Utils" import { Tag } from "../../Logic/Tags/Tag" -import { - MappingConfigJson, - QuestionableTagRenderingConfigJson, -} from "./Json/QuestionableTagRenderingConfigJson" +import { MappingConfigJson, QuestionableTagRenderingConfigJson } from "./Json/QuestionableTagRenderingConfigJson" import Validators, { ValidatorType } from "../../UI/InputElement/Validators" import { TagRenderingConfigJson } from "./Json/TagRenderingConfigJson" import { RegexTag } from "../../Logic/Tags/RegexTag" @@ -20,6 +17,7 @@ import MarkdownUtils from "../../Utils/MarkdownUtils" import { UploadableTag } from "../../Logic/Tags/TagTypes" import LayerConfig from "./LayerConfig" import ComparingTag from "../../Logic/Tags/ComparingTag" +import { Unit } from "../Unit" export interface Mapping { readonly if: UploadableTag @@ -41,6 +39,12 @@ export interface Mapping { readonly priorityIf?: TagsFilter } +export interface ValueRange { + min?: number, + max?: number, + warnBelow?: number, + warnAbove?: number +} /*** * The parsed version of TagRenderingConfigJSON * Identical data, but with some methods and validation @@ -79,6 +83,7 @@ export default class TagRenderingConfig { readonly default?: string readonly postfixDistinguished?: string readonly args?: any + readonly range: ValueRange } public readonly multiAnswer: boolean @@ -233,6 +238,7 @@ export default class TagRenderingConfig { default: json.freeform.default, postfixDistinguished: json.freeform.postfixDistinguished?.trim(), args: json.freeform.helperArgs, + range: json.freeform.range } if (json.freeform["extraTags"] !== undefined) { throw `Freeform.extraTags is defined. This should probably be 'freeform.addExtraTag' (at ${context})` @@ -787,7 +793,8 @@ export default class TagRenderingConfig { freeformValue: string | undefined, singleSelectedMapping: number, multiSelectedMapping: boolean[] | undefined, - currentProperties: Record + currentProperties: Record, + unit?: Unit ): UploadableTag[] { if (typeof freeformValue === "string") { freeformValue = freeformValue?.trim() @@ -795,7 +802,14 @@ export default class TagRenderingConfig { const validator = Validators.get(this.freeform?.type) if (validator && freeformValue) { - freeformValue = validator.reformat(freeformValue, () => currentProperties["_country"]) + // We try to reformat; but a unit might annoy us here + if (unit) { + const [valueNoUnit, denom] = unit.findDenomination(freeformValue, () => currentProperties["_country"]) + const formatted = validator.reformat(valueNoUnit, () => currentProperties["_country"]) + freeformValue = formatted + denom.canonical + } else { + freeformValue = validator.reformat(freeformValue, () => currentProperties["_country"]) + } } if (freeformValue === "") { freeformValue = undefined @@ -918,9 +932,23 @@ export default class TagRenderingConfig { GenerateDocumentation(lang: string = "en"): string { let freeform: string = undefined if (this.render) { - freeform = "*" + this.render.textFor(lang) + "*" + freeform = "\n*" + this.render.textFor(lang) + "*" if (this.freeform?.key) { - freeform += " is shown if `" + this.freeform.key + "` is set" + freeform += " is shown if `" + this.freeform.key + "` is set." + } + if (this.question && this.freeform.range) { + freeform += "\n\nThe allowed input is of type " + (this.freeform.type ?? "string") + if (this.freeform.range) { + const r = this.freeform.range + freeform += ` and is in range ${r.min ?? "-infinty"} until ${r.max ?? "infinity"} (both inclusive).` + if (r.warnAbove && r.warnBelow) { + freeform += ` A warning will appear if the value is outside of ${r.warnBelow} and ${r.warnAbove}.` + } else if (r.warnBelow) { + freeform += ` A warning will appear below ${r.warnBelow}.` + } else if (r.warnAbove) { + freeform += ` A warning will appear above ${r.warnAbove}.` + } + } } } diff --git a/src/Models/Unit.ts b/src/Models/Unit.ts index 4bdb7117be..311e661336 100644 --- a/src/Models/Unit.ts +++ b/src/Models/Unit.ts @@ -5,6 +5,7 @@ import unit from "../../assets/layers/unit/unit.json" import TagRenderingConfig from "./ThemeConfig/TagRenderingConfig" import Validators, { ValidatorType } from "../UI/InputElement/Validators" import { Validator } from "../UI/InputElement/Validator" +import FloatValidator from "../UI/InputElement/Validators/FloatValidator" export class Unit { private static allUnits = this.initUnits() @@ -334,10 +335,11 @@ export class Unit { return [undefined, undefined] } - asHumanLongValue(value: string, country: () => string): BaseUIElement | string { + asHumanLongValue(value: string | number, country: () => string): BaseUIElement | string { if (value === undefined) { return undefined } + value = "" + value const [stripped, denom] = this.findDenomination(value, country) const human = denom?.human if (this.inverted) { @@ -393,4 +395,19 @@ export class Unit { } return this.denominations[0] } + + /** + * Gets the value in the canonical denomination; + * e.g. "1cm -> 0.01" as it is 0.01meter + * @param v + */ + public valueInCanonical(value: string, country: () => string): number { + const denom = this.findDenomination(value, country) + if (!denom) { + return undefined + } + const [v, d] = denom + const vf = new FloatValidator().reformat(v) + return Number(vf) * (d.factorToCanonical ?? 1) + } } diff --git a/src/UI/InputElement/ValidatedInput.svelte b/src/UI/InputElement/ValidatedInput.svelte index 9bf029daaa..4fc47f7524 100644 --- a/src/UI/InputElement/ValidatedInput.svelte +++ b/src/UI/InputElement/ValidatedInput.svelte @@ -4,12 +4,17 @@ import Validators from "./Validators" import { ExclamationIcon } from "@rgossiaux/svelte-heroicons/solid" import { Translation } from "../i18n/Translation" + import { createEventDispatcher, onDestroy } from "svelte" import { Validator } from "./Validator" import { Unit } from "../../Models/Unit" import UnitInput from "../Popup/UnitInput.svelte" import { Utils } from "../../Utils" import { twMerge } from "tailwind-merge" + import type { ValueRange } from "../../Models/ThemeConfig/TagRenderingConfig" + import Translations from "../i18n/Translations" + import FloatValidator from "./Validators/FloatValidator" + import BaseUIElement from "../BaseUIElement" export let type: ValidatorType export let feedback: UIEventSource | undefined = undefined @@ -18,6 +23,7 @@ export let placeholder: string | Translation | undefined = undefined export let autofocus: boolean = false export let unit: Unit = undefined + export let range: ValueRange = undefined /** * Valid state, exported to the calling component */ @@ -42,7 +48,7 @@ function initValueAndDenom() { if (unit && value.data) { - const [v, denom] = unit?.findDenomination(value.data, getCountry) + const [v, denom] = unit.findDenomination(value.data, getCountry) if (denom) { unvalidatedText.setData(v) selectedUnit.setData(denom.canonical) @@ -62,7 +68,6 @@ } } initValueAndDenom() - $: { // The type changed -> reset some values validator = Validators.get(type ?? "string") @@ -77,6 +82,41 @@ initValueAndDenom() } + const t = Translations.t.validation.generic + + /** + * Side effect: sets the feedback, returns true/false if valid + * @param canonicalValue + */ + function validateRange(canonicalValue: number): boolean { + if (!range) { + return true + } + if (canonicalValue < range.warnBelow) { + feedback.set(t.suspiciouslyLow) + } + if (canonicalValue > range.warnAbove) { + feedback.set(t.suspiciouslyHigh) + } + if (canonicalValue > range.max) { + let max: number | string | BaseUIElement = range.max + if (unit) { + max = unit.asHumanLongValue(max) + } + feedback.set(t.tooHigh.Subs({ max })) + return false + } + if (canonicalValue < range.min) { + let min: number | string | BaseUIElement = range.min + if (unit) { + min = unit.asHumanLongValue(min) + } + feedback.set(t.tooLow.Subs({ min })) + return false + } + return true + } + function setValues() { // Update the value stores const v = unvalidatedText.data @@ -92,13 +132,22 @@ } if (selectedUnit.data) { - value.setData(unit.toOsm(v, selectedUnit.data)) + const canonicalValue = unit.valueInCanonical(v + selectedUnit.data) + if (validateRange(canonicalValue)) { + value.setData(unit.toOsm(v, selectedUnit.data)) + } else { + value.set(undefined) + } } else { - value.setData(v) + if (validateRange(v)) { + value.setData(v) + } else { + value.set(undefined) + } } } - onDestroy(unvalidatedText.addCallbackAndRun((_) => setValues())) + onDestroy(unvalidatedText.addCallbackAndRun(() => setValues())) if (unit === undefined) { onDestroy( value.addCallbackAndRunD((fromUpstream) => { @@ -110,7 +159,7 @@ } else { // Handled by the UnitInput } - onDestroy(selectedUnit.addCallback((_) => setValues())) + onDestroy(selectedUnit.addCallback(() => setValues())) if (validator === undefined) { throw ( "Not a valid type (no validator found) for type '" + diff --git a/src/UI/InputElement/Validators/FloatValidator.ts b/src/UI/InputElement/Validators/FloatValidator.ts index 2fb5bfcb4b..81f000ff78 100644 --- a/src/UI/InputElement/Validators/FloatValidator.ts +++ b/src/UI/InputElement/Validators/FloatValidator.ts @@ -17,7 +17,6 @@ export default class FloatValidator extends Validator { * new FloatValidator().isValid("0,2") // => true */ isValid(str: string) { - console.log("Is valid?", str, FloatValidator.formattingHasComma) if (!FloatValidator.formattingHasComma) { str = str.replace(",", ".") } @@ -28,7 +27,11 @@ export default class FloatValidator extends Validator { if (!FloatValidator.formattingHasComma) { str = str.replace(",", ".") } - return "" + Number(str) + let formatted = "" + Number(str) + if (str.startsWith("0") && str.length > 1 && str.indexOf(".") < 0) { + formatted = "0" + formatted + } + return formatted } getFeedback(s: string): Translation { diff --git a/src/UI/Popup/TagRendering/FreeformInput.svelte b/src/UI/Popup/TagRendering/FreeformInput.svelte index e806ceb85e..23e7bacac0 100644 --- a/src/UI/Popup/TagRendering/FreeformInput.svelte +++ b/src/UI/Popup/TagRendering/FreeformInput.svelte @@ -53,6 +53,7 @@ type={config.freeform.type} {placeholder} {value} + range={config.freeform.range} /> {:else if InputHelpers.hideInputField.indexOf(config.freeform.type) < 0} @@ -66,6 +67,7 @@ {placeholder} {value} {unvalidatedText} + range={config.freeform.range} /> {/if} diff --git a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte index f565f9fdda..f34f190fae 100644 --- a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte +++ b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte @@ -221,7 +221,8 @@ $freeformInput, selectedMapping, checkedMappings, - tags.data + tags.data, + unit ) if (featureSwitchIsDebugging?.data) { console.log( From 54adaf4debc70aaba9e5ecc78e1d58b28ad7697e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 20 May 2025 00:40:33 +0200 Subject: [PATCH 19/39] UX: fix #2425 --- src/UI/Popup/NothingKnown.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/UI/Popup/NothingKnown.svelte b/src/UI/Popup/NothingKnown.svelte index 8759018c54..c974df9408 100644 --- a/src/UI/Popup/NothingKnown.svelte +++ b/src/UI/Popup/NothingKnown.svelte @@ -15,7 +15,7 @@ let hasKnownQuestion = tags.mapD((t) => knowableRenderings.some((tr) => tr.IsKnown(t))) -{#if !$hasKnownQuestion} +{#if !$hasKnownQuestion && knowableRenderings?.length > 0} {text} From 3e356b1c8db37c1865e8484de429b6b2855d832a Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 20 May 2025 01:48:46 +0200 Subject: [PATCH 20/39] UX: add link to reviews page, fix #2423 --- assets/layers/questions/questions.json | 2 +- langs/ca.json | 1 - langs/cs.json | 1 - langs/da.json | 1 - langs/de.json | 1 - langs/en.json | 2 +- langs/es.json | 1 - langs/fr.json | 1 - langs/hu.json | 1 - langs/id.json | 1 - langs/it.json | 1 - langs/ja.json | 1 - langs/layers/nl.json | 4 ++-- langs/nb_NO.json | 1 - langs/nl.json | 1 - langs/pl.json | 1 - langs/pt.json | 1 - langs/pt_BR.json | 1 - langs/ru.json | 1 - langs/zh_Hant.json | 1 - src/UI/Reviews/AllReviews.svelte | 26 +++++++++++++++----------- 21 files changed, 19 insertions(+), 32 deletions(-) diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index 0d8733b395..e28c0cfe2f 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -3474,7 +3474,7 @@ "if": "toilets=no", "then": { "en": "Has no toilets", - "nl": "Heeft geenad toiletten", + "nl": "Heeft geen toiletten", "it": "Non ha servizi igienici" } }, diff --git a/langs/ca.json b/langs/ca.json index 77cc6585e7..388c3c734c 100644 --- a/langs/ca.json +++ b/langs/ca.json @@ -566,7 +566,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Ressenya afiliada)", - "attribution": "Les ressenyes funcionen gràcies a Mangrove Reviews i estan disponibles sota CC-BY 4.0.", "i_am_affiliated": "Tinc alguna filiació amb aquest objecte", "i_am_affiliated_explanation": "Marqueu si sou propietari, creador, empleat,…", "no_reviews_yet": "No hi ha revisions encara. Sigues el primer a escriure'n una i ajuda al negoci i a les dades lliures!", diff --git a/langs/cs.json b/langs/cs.json index 3c7ca88303..3e84879592 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -750,7 +750,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Recenze od zaměstnance)", - "attribution": "Od Mangrove Reviews", "averageRating": "Průměrné hodnocení {n} hvězdiček", "i_am_affiliated": "Jsem spojen s tímto objektem", "i_am_affiliated_explanation": "Zkontrolujte, zda jste vlastníkem, tvůrcem, zaměstnancem, …", diff --git a/langs/da.json b/langs/da.json index c9bfbf1619..09b556dc91 100644 --- a/langs/da.json +++ b/langs/da.json @@ -440,7 +440,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Tilknyttet anmeldelse)", - "attribution": "Anmeldelserne er baseret på Mangrove Reviews og er tilgængelige under CC-BY 4.0.", "i_am_affiliated": "Jeg er tilknyttet dette objekt
    Tjek, om du er ejer, skaber, ansat, ...", "no_reviews_yet": "Der er ingen anmeldelser endnu. Vær den første til at skrive en og hjælpe åbne data og forretningen!", "saved": "Anmeldelse gemt. Tak for at bidrage!", diff --git a/langs/de.json b/langs/de.json index 9c5b8ea042..627f94c3b0 100644 --- a/langs/de.json +++ b/langs/de.json @@ -750,7 +750,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Partner-Rezension)", - "attribution": "Von Mangrove Reviews", "averageRating": "Mittlere Bewertung von {n} Sternen", "i_am_affiliated": "Ich bin mit diesem Objekt vertraut", "i_am_affiliated_explanation": "Auswählen, wenn Sie Eigentümer, Ersteller, Angestellter, … sind.", diff --git a/langs/en.json b/langs/en.json index 36e88bed16..3258dd2ea7 100644 --- a/langs/en.json +++ b/langs/en.json @@ -782,7 +782,7 @@ }, "reviews": { "affiliated_reviewer_warning": "(Affiliated review)", - "attribution": "By Mangrove Reviews", + "attribution": "By Mangrove.reviews", "averageRating": "Average rating of {n} stars", "i_am_affiliated": "I am affiliated with this object", "i_am_affiliated_explanation": "Check if you are an owner, creator, employee, …", diff --git a/langs/es.json b/langs/es.json index 1e7803697d..ce828b61b1 100644 --- a/langs/es.json +++ b/langs/es.json @@ -718,7 +718,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Reseña afiliada)", - "attribution": "Por Mangrove Reviews", "averageRating": "Calificación promedio de {n} estrellas", "i_am_affiliated": "Estoy afiliado con este objeto", "i_am_affiliated_explanation": "Verifica si eres propietario, creador, empleado,…", diff --git a/langs/fr.json b/langs/fr.json index 552caffe4b..08d0de24ab 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -463,7 +463,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Avis affilié)", - "attribution": "Les avis sont fournis par Mangrove Reviews et sont disponibles sous licence CC-BY 4.0.", "i_am_affiliated": "Je suis affilié à cet objet
    Cochez si vous en êtes le propriétaire, créateur, employé, …", "no_reviews_yet": "Il n'y a pas encore d'avis. Soyez le premier à en écrire un et aidez le lieu et les données ouvertes !", "reviews_bug": "Certains de vos avis sont manquants ? Certains ne sont pas visible à cause d'un bug.", diff --git a/langs/hu.json b/langs/hu.json index 06bcc35556..7e565c21ea 100644 --- a/langs/hu.json +++ b/langs/hu.json @@ -721,7 +721,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Kapcsolódó személy értékelése)", - "attribution": "A Mangrove Reviews által", "averageRating": "Átlagos értékelés: {n} csillag", "i_am_affiliated": "Kapcsolatban állok ezzel a létesítménnyel", "i_am_affiliated_explanation": "Annak ellenőrzése, hogy tulajdonos, létrehozó, alkalmazott stb. vagy-e.", diff --git a/langs/id.json b/langs/id.json index fbd25faf76..dc283996d1 100644 --- a/langs/id.json +++ b/langs/id.json @@ -141,7 +141,6 @@ "noteLayerDoEnable": "Aktifkan lapisan yang menunjukkan catatan" }, "reviews": { - "attribution": "Ulasan didukung oleh Mangrove Reviews dan tersedia di bawah CC-BY 4.0.", "saved": " Ulasan disimpan. Terima kasih sudah berbagi! ", "saving_review": "Menyimpan…", "title": "{count} ulasan", diff --git a/langs/it.json b/langs/it.json index 89492b0289..c7d2a1475e 100644 --- a/langs/it.json +++ b/langs/it.json @@ -773,7 +773,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Recensione di un affiliato)", - "attribution": "Le recensioni sono fornite da Mangrove Reviews e sono disponibili con licenza CC-BY 4.0.", "averageRating": "Valutazione media di {n} stelle", "i_am_affiliated": "Sono associato con questo oggetto
    Spunta se sei il proprietario, creatore, dipendente, etc.", "i_am_affiliated_explanation": "Spunta se sei il proprietario, creatore, dipendente, ecc.", diff --git a/langs/ja.json b/langs/ja.json index ca647b647a..050e90734e 100644 --- a/langs/ja.json +++ b/langs/ja.json @@ -110,7 +110,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(関係者のレビュー)", - "attribution": "レビューは、Mangrove Reviews and are available under CC-BY 4.0で公開されます。", "i_am_affiliated": "わたしは、この対象物の関係者です
    所有者、作成者、従業員などの有無を確認します", "no_reviews_yet": "まだレビューはありません。最初に書き込みを行い、データとビジネスのオープン化を支援しましょう!", "saved": "レビューが保存されました。共有ありがとう!", diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 30a611002f..a92e944667 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -7996,7 +7996,7 @@ "then": "Heeft toiletten" }, "1": { - "then": "Heeft geenad toiletten" + "then": "Heeft geen toiletten" }, "2": { "then": "De toiletten zijn als alleenstaand punt op de kaart aangeduid" @@ -10252,7 +10252,7 @@ }, "wheelchair-door-width": { "question": "Hoe breed is de deur van de rolstoeltoegankelijke toilet?", - "render": "De deur naar de rolstoeltoegankelijke toilet is {canonical(door:width)} wide" + "render": "De deur naar de rolstoeltoegankelijke toilet is {canonical(door:width)}" }, "wheelchair-picture": { "render": { diff --git a/langs/nb_NO.json b/langs/nb_NO.json index 9331ea01ba..8cb22af6ce 100644 --- a/langs/nb_NO.json +++ b/langs/nb_NO.json @@ -349,7 +349,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Tilknyttet vurdering)", - "attribution": "Vurderinger er muliggjort av Mangrove Reviews og er tilgjengelige som CC-BY 4.0.", "i_am_affiliated": "Jeg har en tilknytning til dette objektet
    Sjekk om du er eier, skaper, ansatt, …", "no_reviews_yet": "Ingen vurderinger enda. Vær først til å skrive en og hjelp åpen data og bevegelsen.", "saved": "Vurdering lagret. Takk for at du deler din mening.", diff --git a/langs/nl.json b/langs/nl.json index 57e0b6fa86..d4308e6fc0 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -725,7 +725,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Recensie door betrokkene)", - "attribution": "Via Mangrove Reviews", "averageRating": "Gemiddelde score van {n} sterren", "i_am_affiliated": "Ik ben persoonlijk betrokken", "i_am_affiliated_explanation": "Vink aan als je een eigenaar, maker, werknemer … bent.", diff --git a/langs/pl.json b/langs/pl.json index b5742ab6aa..9fce4706e3 100644 --- a/langs/pl.json +++ b/langs/pl.json @@ -501,7 +501,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Recenzja powiązana)", - "attribution": "Recenzje są obsługiwane przez Recenzje Mangrove i są dostępne na licencji CC-BY 4.0.", "i_am_affiliated": "Jestem powiązany z tym obiektem", "i_am_affiliated_explanation": "Zaznacz, jeśli jesteś właścicielem, twórcą, pracownikiem,…", "no_reviews_yet": "Nie ma jeszcze recenzji. Bądź pierwszym, który je napisze i pomóż otworzyć dane i biznes!", diff --git a/langs/pt.json b/langs/pt.json index 447cc49ccd..616869f3d2 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -637,7 +637,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(avaliação de afiliado)", - "attribution": "As avaliações são fornecidas por Mangrove Reviews e estão disponíveis sob a licença CC-BY 4.0.", "averageRating": "Classificação média de {n} estrelas", "i_am_affiliated": "Estou associado a este objeto", "i_am_affiliated_explanation": "Marque caso seja proprietário, criador, empregado…", diff --git a/langs/pt_BR.json b/langs/pt_BR.json index 4486821316..214d692c72 100644 --- a/langs/pt_BR.json +++ b/langs/pt_BR.json @@ -127,7 +127,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Revisão de afiliados)", - "attribution": "As resenhas são fornecidas por Mangrove Reviews e estão disponíveis em CC-BY 4.0.", "i_am_affiliated": "Eu sou afiliado a este objeto

    Verifique se você é proprietário, criador, funcionário, …
    ", "no_reviews_yet": "Não há comentários ainda. Seja o primeiro a escrever um e ajude a abrir os dados e os negócios!", "saved": "Comentário salvo. Obrigado por compartilhar!", diff --git a/langs/ru.json b/langs/ru.json index 2376aa766c..c84b230171 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -185,7 +185,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(Отзыв лица, связанного с заведением)", - "attribution": "Отзывы созданы на основе Mangrove Reviews и доступны под лицензией CC-BY 4.0.", "i_am_affiliated": "Я связан с этим объектом
    Отметьте если вы создатель, владелец, работник, …", "no_reviews_yet": "Пока нет отзывов. Оставьте первый отзыв и помогите открытым данным и бизнесу!", "saved": " Отзыв сохранен. Спасибо, что поделились! ", diff --git a/langs/zh_Hant.json b/langs/zh_Hant.json index a9028dfb0c..92c7de0384 100644 --- a/langs/zh_Hant.json +++ b/langs/zh_Hant.json @@ -750,7 +750,6 @@ }, "reviews": { "affiliated_reviewer_warning": "(關係者審核)", - "attribution": "透過 Mangrove Reviews", "averageRating": "平均評分 {n} 顆星", "i_am_affiliated": "我是這物件的相關關係者", "i_am_affiliated_explanation": "檢查你是否是店主、創造者或是員工…", diff --git a/src/UI/Reviews/AllReviews.svelte b/src/UI/Reviews/AllReviews.svelte index 8194dd5191..8480c8fa87 100644 --- a/src/UI/Reviews/AllReviews.svelte +++ b/src/UI/Reviews/AllReviews.svelte @@ -3,34 +3,33 @@ import SingleReview from "./SingleReview.svelte" import { Utils } from "../../Utils" import StarsBar from "./StarsBar.svelte" + import type { Review } from "mangrove-reviews-typescript" import Translations from "../i18n/Translations" import Tr from "../Base/Tr.svelte" import ReviewPrivacyShield from "./ReviewPrivacyShield.svelte" import ThemeViewState from "../../Models/ThemeViewState" - + import type { Store } from "../../Logic/UIEventSource" /** * An element showing all reviews */ export let reviews: FeatureReviews export let state: ThemeViewState - let average = reviews.average - let _reviews = [] - reviews.reviews.addCallbackAndRunD((r) => { - _reviews = Utils.NoNull(r) - }) + let allReviews: Store<(Review & { + madeByLoggedInUser: Store + })[]> = reviews.reviews.map((r) => Utils.NoNull(r)) let test = state.featureSwitches.featureSwitchIsTesting let debug = state.featureSwitches.featureSwitchIsDebugging - let subject = reviews.subjectUri + let subject: Store = reviews.subjectUri
    - {#if _reviews.length > 1} + {#if $allReviews.length > 1} {/if} - {#if _reviews.length > 0} - {#each _reviews as review} + {#if $allReviews.length > 0} + {#each $allReviews as review} {/each} {:else} @@ -39,7 +38,12 @@
    {/if}
    - + + +
    {#if $debug || $test} {$subject} From 4d6b68537a7d75a83e3c86022d58dada761b7722 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 20 May 2025 02:10:19 +0200 Subject: [PATCH 21/39] Fix tests --- test/Models/ThemeConfig/Conversion/PrepareLayer.spec.ts | 8 ++++---- test/Models/ThemeConfig/Conversion/PrepareTheme.spec.ts | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/test/Models/ThemeConfig/Conversion/PrepareLayer.spec.ts b/test/Models/ThemeConfig/Conversion/PrepareLayer.spec.ts index d5cb97e435..d3e564b556 100644 --- a/test/Models/ThemeConfig/Conversion/PrepareLayer.spec.ts +++ b/test/Models/ThemeConfig/Conversion/PrepareLayer.spec.ts @@ -1,10 +1,9 @@ import { LayerConfigJson } from "../../../../src/Models/ThemeConfig/Json/LayerConfigJson" import LineRenderingConfigJson from "../../../../src/Models/ThemeConfig/Json/LineRenderingConfigJson" +import { PrepareLayer, RewriteSpecial } from "../../../../src/Models/ThemeConfig/Conversion/PrepareLayer" import { - PrepareLayer, - RewriteSpecial, -} from "../../../../src/Models/ThemeConfig/Conversion/PrepareLayer" -import { QuestionableTagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" + QuestionableTagRenderingConfigJson +} from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" import RewritableConfigJson from "../../../../src/Models/ThemeConfig/Json/RewritableConfigJson" import { describe, expect, it } from "vitest" @@ -104,6 +103,7 @@ describe("PrepareLayer", () => { }, ], titleIcons: [{ render: "icons.defaults", id: "iconsdefaults" }], + units: [] } expect(result).toEqual(expected) diff --git a/test/Models/ThemeConfig/Conversion/PrepareTheme.spec.ts b/test/Models/ThemeConfig/Conversion/PrepareTheme.spec.ts index 9164124bb1..212b6b8136 100644 --- a/test/Models/ThemeConfig/Conversion/PrepareTheme.spec.ts +++ b/test/Models/ThemeConfig/Conversion/PrepareTheme.spec.ts @@ -10,7 +10,9 @@ import { Tag } from "../../../../src/Logic/Tags/Tag" import { DesugaringContext } from "../../../../src/Models/ThemeConfig/Conversion/Conversion" import { And } from "../../../../src/Logic/Tags/And" import { describe, expect, it } from "vitest" -import { QuestionableTagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" +import { + QuestionableTagRenderingConfigJson +} from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" import Constants from "../../../../src/Models/Constants" import { ConversionContext } from "../../../../src/Models/ThemeConfig/Conversion/ConversionContext" import { MinimalTagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/TagRenderingConfigJson" @@ -153,6 +155,7 @@ describe("PrepareTheme", () => { }, ], lineRendering: [{ width: 1 }], + units: [] } const sharedLayers = constructSharedLayers() sharedLayers.set("layer-example", testLayer) @@ -210,6 +213,7 @@ describe("PrepareTheme", () => { ], lineRendering: [{ width: 1 }], titleIcons: [], + units: [] }) }) }) From c0e02a3540d5008d5168da964d7cd2537b53f733 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 21 May 2025 12:52:00 +0200 Subject: [PATCH 22/39] Themes(food): add 'spanish' as option --- assets/layers/food/food.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 95f9e53d0d..f2bcd8a807 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -649,6 +649,13 @@ "cs": "Podávají se zde jídla z mořských plodů", "it": "Qui vengono serviti piatti di pesce" } + }, + { + "if": "cuisine=spanish", + "icon": "\uD83C\uDDEA\uD83C\uDDF8", + "then": { + "en": "Spanish dishes are served here" + } } ], "id": "Cuisine", From f092f2fdd93fd65173470f4764c22c66a77d189f Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 22 May 2025 00:37:25 +0200 Subject: [PATCH 23/39] Themes(windpumps): add windpump layer --- assets/layers/questions/questions.json | 12 +++ assets/layers/windpump/license_info.json | 40 +++++++++ assets/layers/windpump/tjasker.jpg | Bin 0 -> 30644 bytes assets/layers/windpump/tjasker.jpg.license | 2 + assets/layers/windpump/windpump.json | 76 ++++++++++++++++++ assets/layers/windpump/windpump.svg | 4 + assets/layers/windpump/windpump.svg.license | 2 + assets/layers/windpump/windpump_1.jpg | Bin 0 -> 48829 bytes assets/layers/windpump/windpump_1.jpg.license | 2 + assets/layers/windpump/windpump_2.jpg | Bin 0 -> 802968 bytes assets/layers/windpump/windpump_2.jpg.license | 2 + .../openwindpowermap/openwindpowermap.json | 12 ++- 12 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 assets/layers/windpump/license_info.json create mode 100644 assets/layers/windpump/tjasker.jpg create mode 100644 assets/layers/windpump/tjasker.jpg.license create mode 100644 assets/layers/windpump/windpump.json create mode 100644 assets/layers/windpump/windpump.svg create mode 100644 assets/layers/windpump/windpump.svg.license create mode 100644 assets/layers/windpump/windpump_1.jpg create mode 100644 assets/layers/windpump/windpump_1.jpg.license create mode 100644 assets/layers/windpump/windpump_2.jpg create mode 100644 assets/layers/windpump/windpump_2.jpg.license diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index e28c0cfe2f..4c5f2e3a0e 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -3563,6 +3563,18 @@ } } ] + }, + { + "id": "ref", + "question": { + "en": "What is the reference number?" + }, + "render": { + "en": "The reference number is {ref}" + }, + "freeform": { + "key": "ref" + } } ], "allowMove": false, diff --git a/assets/layers/windpump/license_info.json b/assets/layers/windpump/license_info.json new file mode 100644 index 0000000000..038eb72106 --- /dev/null +++ b/assets/layers/windpump/license_info.json @@ -0,0 +1,40 @@ +[ + { + "path": "tjasker.jpg", + "license": "CC-BY-SA 3.0 Unported", + "authors": [ + "TUFOWKTM" + ], + "sources": [ + "https://commons.wikimedia.org/wiki/File:Tjasker_Sanpoel_04.JPG" + ] + }, + { + "path": "windpump.svg", + "license": "CC0-1.0", + "authors": [ + "quincylvania" + ], + "sources": [ + "https://github.com/rapideditor/temaki/blob/main/icons/windpump.svg" + ] + }, + { + "path": "windpump_1.jpg", + "license": "CC-BY-SA 4.0", + "authors": [ + "Ben Franske" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Windpump.jpg" + ] + }, + { + "path": "windpump_2.jpg", + "license": "CC0-1.0", + "authors": [ + "Pieter Vander Vennet" + ], + "sources": [] + } +] \ No newline at end of file diff --git a/assets/layers/windpump/tjasker.jpg b/assets/layers/windpump/tjasker.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f8453d32ee18b7a84c25d2d12a73e377c924d73 GIT binary patch literal 30644 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

    0M!uhc3G8yz+@QY@y4S~6~Y=yx{7y7sQjgYyOp9 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�{O6=PVdIg!EL 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 PvstVeq~erNA7}sBMrb-( literal 0 HcmV?d00001 diff --git a/assets/layers/windpump/tjasker.jpg.license b/assets/layers/windpump/tjasker.jpg.license new file mode 100644 index 0000000000..07cec83508 --- /dev/null +++ b/assets/layers/windpump/tjasker.jpg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: TUFOWKTM +SPDX-License-Identifier: CC-BY-SA 3.0 Unported \ No newline at end of file diff --git a/assets/layers/windpump/windpump.json b/assets/layers/windpump/windpump.json new file mode 100644 index 0000000000..21358614d0 --- /dev/null +++ b/assets/layers/windpump/windpump.json @@ -0,0 +1,76 @@ +{ + "id": "windpump", + "presets": [ + { + "tags": [ + "man_made=windpump" + ], + "title": "a windpump", + "description": { + "en": "A wind pump is a kind of windmill that is used for pumping natural gas or water." + }, + "exampleImages": [ + "./assets/layers/windpump/windpump_1.jpg", + "./assets/layers/windpump/windpump_2.jpg", + "./assets/layers/windpump/tjasker.jpg" + + ] + } + ], + "name": { + "en": "Windpumps", + "nl": "Pompen op windenergie" + }, + "title": { + "mappings": [ + { + "if": "name~*", + "then": { + "en": "Windpump {ref}" + } + } + ], + "render": { + "en": "Windpump {ref}" + } + }, + "tagRenderings": [ + "images", + { + "id": "operator", + "question": { + "en": "Who operates this windpump?" + }, + "render": { + "en": "Operated by {operator}" + }, + "freeform": { + "key": "operator" + } + }, + "ref", + "wikipedia" + ], + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "anchor": "bottom", + "marker": [ + { + "icon": "circle", + "color": "white" + }, + { + "icon": "./assets/layers/windpump/windpump.svg" + } + ] + } + ], + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + } +} diff --git a/assets/layers/windpump/windpump.svg b/assets/layers/windpump/windpump.svg new file mode 100644 index 0000000000..6823907afa --- /dev/null +++ b/assets/layers/windpump/windpump.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/assets/layers/windpump/windpump.svg.license b/assets/layers/windpump/windpump.svg.license new file mode 100644 index 0000000000..2fae30bcfd --- /dev/null +++ b/assets/layers/windpump/windpump.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: quincylvania +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/assets/layers/windpump/windpump_1.jpg b/assets/layers/windpump/windpump_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..415db74fd5c7094938c03c59acd23e636f856ab7 GIT binary patch literal 48829 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 z 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

    B5o;?X`&i08vFbGf1Xx+jekC8RPQLInz4L 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

    !B0DYd)LW{#78&smFmKYUu!qEh0{y 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

    xBMO}PtmG;y{zIi+ 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%0D>^4C`@OKH{ti)SsFoKWeCcTV?<7v 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

    1RHLqV+~x~s+rlRA=9zz*IFZG6 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�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 z

    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∾hLk3w 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

    ELz`b3tSj7z9%4F$U(BV?r* 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 z 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

    u9>;BH;UPX4=v8s1EE1R2d4ro!gofWFu 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�lZiX*5ngM^MY0p1C2LuS&mhp~(;J9eH7S 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 Y<3evN%m*WTbtlx<2JwH_nHE3)**WuDwg3PC literal 0 HcmV?d00001 diff --git a/assets/layers/windpump/windpump_2.jpg.license b/assets/layers/windpump/windpump_2.jpg.license new file mode 100644 index 0000000000..ed02883002 --- /dev/null +++ b/assets/layers/windpump/windpump_2.jpg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Pieter Vander Vennet +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/assets/themes/openwindpowermap/openwindpowermap.json b/assets/themes/openwindpowermap/openwindpowermap.json index f26c055f72..bfdf7530be 100644 --- a/assets/themes/openwindpowermap/openwindpowermap.json +++ b/assets/themes/openwindpowermap/openwindpowermap.json @@ -45,6 +45,14 @@ "Seppe Santens" ], "layers": [ - "windturbine" + { + "builtin": [ + "windturbine", + "windpump" + ], + "override": { + "minzoom": 10 + } + } ] -} \ No newline at end of file +} From 8edc20469e6209c4ae6ff140a992f960c2b6885a Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 22 May 2025 00:45:03 +0200 Subject: [PATCH 24/39] Chore: lint themes --- .../adult_changing_table.json | 58 ++-- .../charging_station/charging_station.json | 278 +++++++++--------- .../excrement_bag_dispenser.json | 70 ++--- assets/layers/food/food.json | 2 +- assets/layers/grab_rail/grab_rail.json | 4 + assets/layers/mobility_hub/mobility_hub.json | 152 +++++----- .../toilet_at_amenity_lib.json | 28 +- assets/layers/windpump/windpump.json | 67 +++-- .../mapcomplete-changes.json | 23 +- 9 files changed, 341 insertions(+), 341 deletions(-) diff --git a/assets/layers/adult_changing_table/adult_changing_table.json b/assets/layers/adult_changing_table/adult_changing_table.json index 03781d6206..0d96b83b80 100644 --- a/assets/layers/adult_changing_table/adult_changing_table.json +++ b/assets/layers/adult_changing_table/adult_changing_table.json @@ -1,5 +1,14 @@ { "id": "adult_changing_table", + "name": { + "en": "Adult changing tables", + "nl": "Verzorgingstafels voor volwassenen", + "it": "Fasciatoi per adulti" + }, + "description": { + "en": "An adult changing table is a bench where adult people can be placed on. They are often used by adults with a severe motoric handicap", + "it": "Un fasciatoio per adulti è una panca su cui possono essere posizionate persone adulte. Sono spesso utilizzati da adulti con gravi disabilità motorie" + }, "source": { "osmTags": { "or": [ @@ -10,33 +19,12 @@ ] } }, - "description": { - "en": "An adult changing table is a bench where adult people can be placed on. They are often used by adults with a severe motoric handicap", - "it": "Un fasciatoio per adulti è una panca su cui possono essere posizionate persone adulte. Sono spesso utilizzati da adulti con gravi disabilità motorie" - }, "minzoom": 6, - "allowMove": { - "enableRelocation": false, - "enableImproveAccuracy": true + "title": { + "en": "Adult changing table", + "nl": "Verzorgingstafel voor volwassenen", + "it": "Fasciatoio per adulti" }, - "deletion": true, - "name": { - "en": "Adult changing tables", - "nl": "Verzorgingstafels voor volwassenen", - "it": "Fasciatoi per adulti" - }, - "presets": [ - { - "title": { - "en": "an adult changing table", - "nl": "een verzorgingstafel voor volwassenen", - "it": "un fasciatoio per adulti" - }, - "tags": [ - "amenity=adult_changing_table" - ] - } - ], "pointRendering": [ { "location": [ @@ -51,6 +39,18 @@ ] } ], + "presets": [ + { + "title": { + "en": "an adult changing table", + "nl": "een verzorgingstafel voor volwassenen", + "it": "un fasciatoio per adulti" + }, + "tags": [ + "amenity=adult_changing_table" + ] + } + ], "tagRenderings": [ { "id": "height", @@ -261,9 +261,9 @@ ] } ], - "title": { - "en": "Adult changing table", - "nl": "Verzorgingstafel voor volwassenen", - "it": "Fasciatoio per adulti" + "deletion": true, + "allowMove": { + "enableRelocation": false, + "enableImproveAccuracy": true } } diff --git a/assets/layers/charging_station/charging_station.json b/assets/layers/charging_station/charging_station.json index 114ba2553f..677695add8 100644 --- a/assets/layers/charging_station/charging_station.json +++ b/assets/layers/charging_station/charging_station.json @@ -10,7 +10,16 @@ "it": "Stazioni di ricarica", "uk": "Зарядні станції" }, - "minzoom": 10, + "description": { + "en": "A charging station", + "nl": "Oplaadpunten", + "ca": "Una estació de càrrega", + "cs": "Nabíjecí stanice", + "de": "Eine Ladestation", + "es": "Un punto de carga", + "fr": "Une station de recharge", + "it": "Una stazione di ricarica" + }, "source": { "osmTags": { "and": [ @@ -25,6 +34,7 @@ ] } }, + "minzoom": 10, "title": { "render": { "en": "Charging station", @@ -85,17 +95,119 @@ } ] }, - "description": { - "en": "A charging station", - "nl": "Oplaadpunten", - "ca": "Una estació de càrrega", - "cs": "Nabíjecí stanice", - "de": "Eine Ladestation", - "es": "Un punto de carga", - "fr": "Une station de recharge", - "it": "Una stazione di ricarica" - }, - "#": "no-question-hint-check", + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "pin", + "color": "#fff" + }, + { + "icon": { + "render": "./assets/themes/charging_stations/plug.svg", + "mappings": [ + { + "if": "bicycle=yes", + "then": "./assets/themes/charging_stations/bicycle.svg" + }, + { + "if": { + "or": [ + "car=yes", + "motorcar=yes" + ] + }, + "then": "./assets/themes/charging_stations/car.svg" + } + ] + } + } + ], + "iconBadges": [ + { + "if": { + "or": [ + "disused:amenity=charging_station", + "operational_status=broken" + ] + }, + "then": "close:#c22;" + }, + { + "if": { + "or": [ + "proposed:amenity=charging_station", + "planned:amenity=charging_station" + ] + }, + "then": "./assets/layers/charging_station/under_construction.svg" + }, + { + "if": { + "and": [ + "bicycle=yes", + { + "or": [ + "motorcar=yes", + "car=yes" + ] + } + ] + }, + "then": "circle:#fff;./assets/themes/charging_stations/car.svg" + } + ], + "anchor": "bottom", + "iconSize": "50,50" + } + ], + "lineRendering": [ + { + "color": "black", + "width": 2, + "fillColor": "#80808080" + } + ], + "presets": [ + { + "tags": [ + "amenity=charging_station", + "motorcar=no", + "bicycle=yes" + ], + "title": { + "en": "charging station for electrical bikes", + "nl": "oplaadpunt voor elektrische fietsen", + "ca": "Estació de càrrega de bicicletes elèctriques", + "cs": "nabíjecí stanice pro elektrokola", + "de": "Ladestation für Elektrofahrräder", + "es": "punto de carga para bicicletas eléctricas", + "it": "stazione di ricarica per biciclette elettriche", + "uk": "зарядна станція для електровелосипедів" + } + }, + { + "tags": [ + "amenity=charging_station", + "motorcar=yes", + "bicycle=no" + ], + "title": { + "en": "charging station for cars", + "nl": "oplaadstation voor elektrische auto's", + "ca": "estació de càrrega per a cotxes", + "cs": "nabíjecí stanice pro auta", + "de": "Ladestation für Autos", + "es": "punto de carga para coches", + "it": "stazione di ricarica per auto", + "uk": "зарядна станція для автомобілів" + } + } + ], "tagRenderings": [ "images", { @@ -3399,119 +3511,6 @@ } } ], - "lineRendering": [ - { - "color": "black", - "width": 2, - "fillColor": "#80808080" - } - ], - "pointRendering": [ - { - "location": [ - "point", - "centroid" - ], - "marker": [ - { - "icon": "pin", - "color": "#fff" - }, - { - "icon": { - "render": "./assets/themes/charging_stations/plug.svg", - "mappings": [ - { - "if": "bicycle=yes", - "then": "./assets/themes/charging_stations/bicycle.svg" - }, - { - "if": { - "or": [ - "car=yes", - "motorcar=yes" - ] - }, - "then": "./assets/themes/charging_stations/car.svg" - } - ] - } - } - ], - "iconBadges": [ - { - "if": { - "or": [ - "disused:amenity=charging_station", - "operational_status=broken" - ] - }, - "then": "close:#c22;" - }, - { - "if": { - "or": [ - "proposed:amenity=charging_station", - "planned:amenity=charging_station" - ] - }, - "then": "./assets/layers/charging_station/under_construction.svg" - }, - { - "if": { - "and": [ - "bicycle=yes", - { - "or": [ - "motorcar=yes", - "car=yes" - ] - } - ] - }, - "then": "circle:#fff;./assets/themes/charging_stations/car.svg" - } - ], - "anchor": "bottom", - "iconSize": "50,50" - } - ], - "presets": [ - { - "tags": [ - "amenity=charging_station", - "motorcar=no", - "bicycle=yes" - ], - "title": { - "en": "charging station for electrical bikes", - "nl": "oplaadpunt voor elektrische fietsen", - "ca": "Estació de càrrega de bicicletes elèctriques", - "cs": "nabíjecí stanice pro elektrokola", - "de": "Ladestation für Elektrofahrräder", - "es": "punto de carga para bicicletas eléctricas", - "it": "stazione di ricarica per biciclette elettriche", - "uk": "зарядна станція для електровелосипедів" - } - }, - { - "tags": [ - "amenity=charging_station", - "motorcar=yes", - "bicycle=no" - ], - "title": { - "en": "charging station for cars", - "nl": "oplaadstation voor elektrische auto's", - "ca": "estació de càrrega per a cotxes", - "cs": "nabíjecí stanice pro auta", - "de": "Ladestation für Autos", - "es": "punto de carga para coches", - "it": "stazione di ricarica per auto", - "uk": "зарядна станція для автомобілів" - } - } - ], "filter": [ { "id": "vehicle-type", @@ -3855,6 +3854,19 @@ ] } ], + "deletion": { + "softDeletionTags": { + "and": [ + "amenity=", + "disused:amenity=charging_station" + ] + }, + "neededChangesets": 10 + }, + "allowMove": { + "enableRelocation": false, + "enableImproveAccuracy": true + }, "units": [ { "maxstay": { @@ -4049,17 +4061,5 @@ } } ], - "allowMove": { - "enableRelocation": false, - "enableImproveAccuracy": true - }, - "deletion": { - "softDeletionTags": { - "and": [ - "amenity=", - "disused:amenity=charging_station" - ] - }, - "neededChangesets": 10 - } -} \ No newline at end of file + "#": "no-question-hint-check" +} diff --git a/assets/layers/excrement_bag_dispenser/excrement_bag_dispenser.json b/assets/layers/excrement_bag_dispenser/excrement_bag_dispenser.json index 60fa35a944..617e8d41f4 100644 --- a/assets/layers/excrement_bag_dispenser/excrement_bag_dispenser.json +++ b/assets/layers/excrement_bag_dispenser/excrement_bag_dispenser.json @@ -23,6 +23,40 @@ "it": "Distributore di sacchetti per escrementi" } }, + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "square", + "color": "white" + }, + { + "icon": "./assets/layers/excrement_bag_dispenser/excrement_bags.svg" + } + ], + "iconSize": "30,30" + } + ], + "presets": [ + { + "tags": [ + "amenity=vending_machine", + "vending=excrement_bags" + ], + "title": { + "en": "an excrement bag dispenser", + "it": "un distributore di sacchetti per escrementi" + }, + "description": { + "en": "A stand-alone dispenser giving out bags for animal waste.", + "it": "Un distributore autonomo che fornisce sacchetti per rifiuti animali." + } + } + ], "tagRenderings": [ { "id": "fee", @@ -56,42 +90,8 @@ }, "check_date" ], - "presets": [ - { - "tags": [ - "amenity=vending_machine", - "vending=excrement_bags" - ], - "title": { - "en": "an excrement bag dispenser", - "it": "un distributore di sacchetti per escrementi" - }, - "description": { - "en": "A stand-alone dispenser giving out bags for animal waste.", - "it": "Un distributore autonomo che fornisce sacchetti per rifiuti animali." - } - } - ], - "pointRendering": [ - { - "location": [ - "point", - "centroid" - ], - "marker": [ - { - "icon": "square", - "color": "white" - }, - { - "icon": "./assets/layers/excrement_bag_dispenser/excrement_bags.svg" - } - ], - "iconSize": "30,30" - } - ], "allowMove": { "enableImproveAccuracy": true, "enableRelocation": true } -} \ No newline at end of file +} diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index f2bcd8a807..626335a840 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -652,7 +652,7 @@ }, { "if": "cuisine=spanish", - "icon": "\uD83C\uDDEA\uD83C\uDDF8", + "icon": "🇪🇸", "then": { "en": "Spanish dishes are served here" } diff --git a/assets/layers/grab_rail/grab_rail.json b/assets/layers/grab_rail/grab_rail.json index f9057eac61..23d780fd6b 100644 --- a/assets/layers/grab_rail/grab_rail.json +++ b/assets/layers/grab_rail/grab_rail.json @@ -5,6 +5,10 @@ "it": "Un maniglione è un supporto per aiutare le persone con mobilità ridotta o disabilità motoria. Li aiuta a trasferirsi dalla sedia a rotelle al water, a stare in piedi sotto la doccia, a chiudere una porta, ... " }, "source": "special:library", + "pointRendering": [], + "lineRendering": [ + {} + ], "tagRenderings": [ { "id": "has_grab_rail_lr", diff --git a/assets/layers/mobility_hub/mobility_hub.json b/assets/layers/mobility_hub/mobility_hub.json index 64f14e7496..c6053e6d8b 100644 --- a/assets/layers/mobility_hub/mobility_hub.json +++ b/assets/layers/mobility_hub/mobility_hub.json @@ -1,6 +1,36 @@ { - "credits": "Robin van der Linde", + "id": "mobility_hub", + "name": { + "en": "Mobility Hubs", + "nl": "Mobiliteitshubs", + "it": "Hub di mobilità" + }, + "description": { + "en": "Mobility hubs are places where different kinds of transit meet, making it easy to switch between them. These places are usually part of a larger network or system.", + "nl": "Mobiliteitshubs zijn plaatsen waar verschillende soorten vervoer bij elkaar komen, waardoor het makkelijk is om te wisselen van vervoer. Deze plaatsen maken meestal deel uit van een groter netwerk of systeem.", + "it": "Gli hub di mobilità sono luoghi dove diversi tipi di trasporto si incontrano, rendendo facile il passaggio da uno all'altro. Questi luoghi sono solitamente parte di una rete o sistema più ampio." + }, + "source": { + "osmTags": "amenity=mobility_hub" + }, "minzoom": 8, + "title": { + "render": { + "en": "Mobility hub", + "nl": "Mobiliteitshub", + "it": "Hub di mobilità" + }, + "mappings": [ + { + "if": "name~.*", + "then": { + "en": "Mobility hub {name}", + "nl": "Mobiliteitshub {name}", + "it": "Hub di mobilità {name}" + } + } + ] + }, "pointRendering": [ { "location": [ @@ -55,6 +85,47 @@ } } ], + "lineRendering": [ + { + "width": 1, + "color": { + "render": "#00b26b", + "mappings": [ + { + "if": "network=Groningen-Drenthe", + "then": "#0077db" + }, + { + "if": "network=Jelbi", + "then": "#f0d722" + } + ] + } + } + ], + "presets": [ + { + "title": { + "en": "a mobility hub", + "nl": "een mobiliteitshub", + "it": "un hub di mobilità" + }, + "tags": [ + "amenity=mobility_hub", + "tourism=information" + ], + "description": { + "en": "A mobility hub which is marked by a physical sign, usually with a logo.", + "nl": "Een mobiliteitshub die gemarkeerd is door een fysiek bord, meestal met een logo.", + "it": "Un hub di mobilità che è contrassegnato da un segnale fisico, solitamente con un logo." + }, + "exampleImages": [ + "./assets/layers/mobility_hub/hub-gd-sign.jpg", + "./assets/layers/mobility_hub/hoppin.jpg", + "./assets/layers/mobility_hub/Mobil.punkt.jpg" + ] + } + ], "tagRenderings": [ "images", { @@ -224,81 +295,10 @@ "condition": "_geometry:type=Point" } ], - "lineRendering": [ - { - "width": 1, - "color": { - "render": "#00b26b", - "mappings": [ - { - "if": "network=Groningen-Drenthe", - "then": "#0077db" - }, - { - "if": "network=Jelbi", - "then": "#f0d722" - } - ] - } - } - ], - "credits:uid": 5093765, - "id": "mobility_hub", - "name": { - "en": "Mobility Hubs", - "nl": "Mobiliteitshubs", - "it": "Hub di mobilità" - }, - "source": { - "osmTags": "amenity=mobility_hub" - }, - "description": { - "en": "Mobility hubs are places where different kinds of transit meet, making it easy to switch between them. These places are usually part of a larger network or system.", - "nl": "Mobiliteitshubs zijn plaatsen waar verschillende soorten vervoer bij elkaar komen, waardoor het makkelijk is om te wisselen van vervoer. Deze plaatsen maken meestal deel uit van een groter netwerk of systeem.", - "it": "Gli hub di mobilità sono luoghi dove diversi tipi di trasporto si incontrano, rendendo facile il passaggio da uno all'altro. Questi luoghi sono solitamente parte di una rete o sistema più ampio." - }, - "title": { - "render": { - "en": "Mobility hub", - "nl": "Mobiliteitshub", - "it": "Hub di mobilità" - }, - "mappings": [ - { - "if": "name~.*", - "then": { - "en": "Mobility hub {name}", - "nl": "Mobiliteitshub {name}", - "it": "Hub di mobilità {name}" - } - } - ] - }, - "presets": [ - { - "title": { - "en": "a mobility hub", - "nl": "een mobiliteitshub", - "it": "un hub di mobilità" - }, - "tags": [ - "amenity=mobility_hub", - "tourism=information" - ], - "description": { - "en": "A mobility hub which is marked by a physical sign, usually with a logo.", - "nl": "Een mobiliteitshub die gemarkeerd is door een fysiek bord, meestal met een logo.", - "it": "Un hub di mobilità che è contrassegnato da un segnale fisico, solitamente con un logo." - }, - "exampleImages": [ - "./assets/layers/mobility_hub/hub-gd-sign.jpg", - "./assets/layers/mobility_hub/hoppin.jpg", - "./assets/layers/mobility_hub/Mobil.punkt.jpg" - ] - } - ], "allowMove": { "enableImproveAccuracy": true, "enableRelocation": false - } -} \ No newline at end of file + }, + "credits": "Robin van der Linde", + "credits:uid": 5093765 +} diff --git a/assets/layers/toilet_at_amenity_lib/toilet_at_amenity_lib.json b/assets/layers/toilet_at_amenity_lib/toilet_at_amenity_lib.json index 7c79877b0a..c1c0b5acc2 100644 --- a/assets/layers/toilet_at_amenity_lib/toilet_at_amenity_lib.json +++ b/assets/layers/toilet_at_amenity_lib/toilet_at_amenity_lib.json @@ -2,6 +2,19 @@ "id": "toilet_at_amenity_lib", "description": "Special layer which makes it easy to add, as a group, information about toilets to any POI", "source": "special:library", + "pointRendering": [ + { + "location": [ + "centroid", + "point" + ], + "marker": [ + { + "icon": "circle" + } + ] + } + ], "tagRenderings": [ { "id": "toilets-group", @@ -80,18 +93,5 @@ } } ], - "allowMove": false, - "pointRendering": [ - { - "location": [ - "centroid", - "point" - ], - "marker": [ - { - "icon": "circle" - } - ] - } - ] + "allowMove": false } diff --git a/assets/layers/windpump/windpump.json b/assets/layers/windpump/windpump.json index 21358614d0..1014e90b20 100644 --- a/assets/layers/windpump/windpump.json +++ b/assets/layers/windpump/windpump.json @@ -1,22 +1,5 @@ { "id": "windpump", - "presets": [ - { - "tags": [ - "man_made=windpump" - ], - "title": "a windpump", - "description": { - "en": "A wind pump is a kind of windmill that is used for pumping natural gas or water." - }, - "exampleImages": [ - "./assets/layers/windpump/windpump_1.jpg", - "./assets/layers/windpump/windpump_2.jpg", - "./assets/layers/windpump/tjasker.jpg" - - ] - } - ], "name": { "en": "Windpumps", "nl": "Pompen op windenergie" @@ -34,23 +17,6 @@ "en": "Windpump {ref}" } }, - "tagRenderings": [ - "images", - { - "id": "operator", - "question": { - "en": "Who operates this windpump?" - }, - "render": { - "en": "Operated by {operator}" - }, - "freeform": { - "key": "operator" - } - }, - "ref", - "wikipedia" - ], "pointRendering": [ { "location": [ @@ -69,6 +35,39 @@ ] } ], + "presets": [ + { + "tags": [ + "man_made=windpump" + ], + "title": "a windpump", + "description": { + "en": "A wind pump is a kind of windmill that is used for pumping natural gas or water." + }, + "exampleImages": [ + "./assets/layers/windpump/windpump_1.jpg", + "./assets/layers/windpump/windpump_2.jpg", + "./assets/layers/windpump/tjasker.jpg" + ] + } + ], + "tagRenderings": [ + "images", + { + "id": "operator", + "question": { + "en": "Who operates this windpump?" + }, + "render": { + "en": "Operated by {operator}" + }, + "freeform": { + "key": "operator" + } + }, + "ref", + "wikipedia" + ], "allowMove": { "enableImproveAccuracy": true, "enableRelocation": false diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json index 0188616a0e..18d93f66a8 100644 --- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json +++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json @@ -10,16 +10,6 @@ "ko": "MapComplete로 이루어진 변경 사항", "it": "Modifiche fatte con MapComplete" }, - "shortDescription": { - "en": "Shows changes made by MapComplete", - "de": "Zeigt die von MapComplete vorgenommenen Änderungen an", - "cs": "Zobrazuje změny provedené nástrojem MapComplete", - "es": "Muestra los cambios realizados por MapComplete", - "fr": "Afficher les modifications faites avec MapComplete", - "nl": "Toont wijzigingen gemaakt met MapComplete", - "ko": "MapComplete를 통해 이루어진 변경 사항을 표시합니다", - "it": "Mostra le modifiche fatte con MapComplete" - }, "description": { "en": "This maps shows all the changes made with MapComplete", "de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen", @@ -31,11 +21,18 @@ "ko": "이 지도는 MapComplete를 사용하여 이루어진 모든 변경 사항을 표시합니다", "it": "Questa mappa mostra tutte le modifiche effettuate con MapComplete" }, + "shortDescription": { + "en": "Shows changes made by MapComplete", + "de": "Zeigt die von MapComplete vorgenommenen Änderungen an", + "cs": "Zobrazuje změny provedené nástrojem MapComplete", + "es": "Muestra los cambios realizados por MapComplete", + "fr": "Afficher les modifications faites avec MapComplete", + "nl": "Toont wijzigingen gemaakt met MapComplete", + "ko": "MapComplete를 통해 이루어진 변경 사항을 표시합니다", + "it": "Mostra le modifiche fatte con MapComplete" + }, "icon": "./assets/svg/logo.svg", "hideFromOverview": true, - "startLat": 0, - "startLon": 0, - "startZoom": 1, "layers": [ { "id": "mapcomplete-changes", From 29db2664c3ff52cb607f6779c109b748b3746287 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Thu, 22 May 2025 01:21:45 +0200 Subject: [PATCH 25/39] Themes(aircraft): add historical aircraft layer and theme, https://en.osm.town/@pietervdvn/114491536018069317 --- .../historic_aircraft/historic_aircraft.json | 110 ++++++++++++++++++ .../historic_aircraft/historic_aircraft.json | 13 +++ assets/themes/memorials/memorials.json | 3 +- src/UI/Search/ActiveFilters.svelte | 3 +- 4 files changed, 127 insertions(+), 2 deletions(-) create mode 100644 assets/layers/historic_aircraft/historic_aircraft.json create mode 100644 assets/themes/historic_aircraft/historic_aircraft.json diff --git a/assets/layers/historic_aircraft/historic_aircraft.json b/assets/layers/historic_aircraft/historic_aircraft.json new file mode 100644 index 0000000000..47736014d8 --- /dev/null +++ b/assets/layers/historic_aircraft/historic_aircraft.json @@ -0,0 +1,110 @@ +{ + "id": "historic_aircraft", + "name": { + "en": "Historic aircraft" + }, + "source": { + "osmTags": { + "or": [ + "historic=aircraft", + "memorial=aircraft" + ] + } + }, + "minzoom": 5, + "title": { + "render": { + "en": "Historic aircraft" + } + }, + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "circle", + "color": "white" + }, + { + "icon": "airport" + } + ] + } + ], + "lineRendering": [ + { + "width": 1, + "color": "blue" + } + ], + "presets": [ + { + "title": { + "en": "a aircraft on a permanent location" + }, + "description": { + "en": "A (historic) aircraft permanently installed on a location, e.g. in a museum, as artwork or as memorial." + }, + "tags": [ + "historic=aircraft" + ] + } + ], + "tagRenderings": [ + "images", + { + "question": { + "en": "What type of model is this aircraft?" + }, + "id": "model", + "freeform": { + "key": "model:wikidata", + "type": "wikidata" + }, + "render": { + "en": "{wikipedia(model:wikidata)}" + } + }, + { + "id": "is_memorial", + "question": { + "en": "Does this aircraft also serve as a memorial?" + }, + "mappings": [ + { + "if": "memorial=aircraft", + "then": { + "en": "Serves as a memorial" + } + }, + { + "if": "not:memorial=yes", + "alsoShowIf": "memorial=", + "then": { + "en": "Does not serve as a memorial" + } + } + ] + }, + { + "builtin": "memorial.memorial-questions", + "override": { + "condition": { + "and+": [ + "memorial~*" + ] + } + } + } + ], + "deletion": true, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, + "credits": "Pieter Vander Vennet", + "credits:uid": 3818858 +} diff --git a/assets/themes/historic_aircraft/historic_aircraft.json b/assets/themes/historic_aircraft/historic_aircraft.json new file mode 100644 index 0000000000..8a18a82a99 --- /dev/null +++ b/assets/themes/historic_aircraft/historic_aircraft.json @@ -0,0 +1,13 @@ +{ + "id": "historic_aircraft", + "title": { + "en": "Historic aircraft" + }, + "description": { + "en": "A map showing all historic, permanently installed aircraft. The aircraft can be in a museum, an artwork or a memorial." + }, + "icon": "airport", + "layers": [ + "historic_aircraft" + ] +} diff --git a/assets/themes/memorials/memorials.json b/assets/themes/memorials/memorials.json index 42510ef33f..14758fcf55 100644 --- a/assets/themes/memorials/memorials.json +++ b/assets/themes/memorials/memorials.json @@ -41,7 +41,8 @@ { "builtin": [ "bench", - "artwork" + "artwork", + "historic_aircraft" ], "override": { "minzoom": 18 diff --git a/src/UI/Search/ActiveFilters.svelte b/src/UI/Search/ActiveFilters.svelte index bd6c6b4a60..68b559bed3 100644 --- a/src/UI/Search/ActiveFilters.svelte +++ b/src/UI/Search/ActiveFilters.svelte @@ -14,12 +14,13 @@ import Locale from "../i18n/Locale" import DefaultIcon from "../Map/DefaultIcon.svelte" + import { WithSearchState } from "../../Models/ThemeViewState/WithSearchState" export let activeFilters: (FilterSearchResult & ActiveFilter)[] let language = Locale.language let mergedActiveFilters = FilterSearch.mergeSemiIdenticalLayers(activeFilters, $language) $: mergedActiveFilters = FilterSearch.mergeSemiIdenticalLayers(activeFilters, $language) - export let state: SpecialVisualizationState + export let state: WithSearchState let loading = false const t = Translations.t.general.search From 55cc06db1a97266f3f928607bfc95b58a5416809 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 23 May 2025 18:03:07 +0200 Subject: [PATCH 26/39] Scripts: add error message in case of incorrect ID --- scripts/generateLayerOverview.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/scripts/generateLayerOverview.ts b/scripts/generateLayerOverview.ts index a1492af390..c1949be31d 100644 --- a/scripts/generateLayerOverview.ts +++ b/scripts/generateLayerOverview.ts @@ -203,6 +203,9 @@ class LayerBuilder extends Conversion> { context = context.inOperation("building Layer " + id).enters("layer", id) const config = this._layerConfigJsons.get(id) + if (config.id !== id) { + context.err("Invalid ID: expected", id, "but got", id) + } const prepped = this.prepareLayer.convert(config, context) this._loadedIds.add(id) this._desugaringState.sharedLayers.set(id, prepped) @@ -760,11 +763,15 @@ class LayerOverviewUtils extends Script { ScriptUtils.erasableLog( `Parsing layerConfig ${i + 1}/${allPaths.length}: ${path} ` ) + const expectedId = path.match(/.*\/([a-z_0-9]+).json/)[1] try { const data = JSON.parse(readFileSync(path, "utf8")) results.push(data) + if (data.id !== expectedId) { + throw "Wrong ID or location for file " + path + "; expected " + expectedId + " but got " + data.id + } } catch (e) { - throw "Could not parse layer file " + path + throw "Could not parse layer file " + path + " due to " + e } } From 9135f1df6b4abfc973c50efc0fdbe6b2cd2651be Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Fri, 23 May 2025 18:03:23 +0200 Subject: [PATCH 27/39] Themes(historic_rolling_stock): create rolling stock theme --- .../historic_rolling_stock.json | 192 ++++++++++++++++++ .../historic_rolling_stock/license_info.json | 32 +++ .../historic_rolling_stock/minecart.svg | 5 + .../minecart.svg.license | 2 + .../historic_rolling_stock/railway_car.svg | 120 +++++++++++ .../railway_car.svg.license | 2 + .../steam_locomotive.svg | 44 ++++ .../steam_locomotive.svg.license | 2 + .../historic_rolling_stock.json | 13 ++ 9 files changed, 412 insertions(+) create mode 100644 assets/layers/historic_rolling_stock/historic_rolling_stock.json create mode 100644 assets/layers/historic_rolling_stock/license_info.json create mode 100644 assets/layers/historic_rolling_stock/minecart.svg create mode 100644 assets/layers/historic_rolling_stock/minecart.svg.license create mode 100644 assets/layers/historic_rolling_stock/railway_car.svg create mode 100644 assets/layers/historic_rolling_stock/railway_car.svg.license create mode 100644 assets/layers/historic_rolling_stock/steam_locomotive.svg create mode 100644 assets/layers/historic_rolling_stock/steam_locomotive.svg.license create mode 100644 assets/themes/historic_rolling_stock/historic_rolling_stock.json diff --git a/assets/layers/historic_rolling_stock/historic_rolling_stock.json b/assets/layers/historic_rolling_stock/historic_rolling_stock.json new file mode 100644 index 0000000000..fdbf4f60b9 --- /dev/null +++ b/assets/layers/historic_rolling_stock/historic_rolling_stock.json @@ -0,0 +1,192 @@ +{ + "id": "historic_rolling_stock", + "name": { + "en": "Historic rolling stock" + }, + "description": { + "en": "Historic rolling stock (such as locomotives, railway cars and wagons) which are permanently placed at a location" + }, + "source": { + "osmTags": { + "or": [ + "historic=locomotive", + "memorial=locomotive", + "historic=railway_car", + "memorial=railway_car", + "historic=minecart", + "memorial=mincart" + ] + } + }, + "minzoom": 5, + "title": { + "render": { + "en": "Historic rolling stock" + }, + "mappings": [ + { + "if": { + "or": [ + "historic=locomotive", + "memorial=locomotive" + ] + }, + "then": { + "en": "Historic locomotive" + } + }, + { + "if": { + "or": [ + "historic=railway_car", + "memorial=railway_car" + ] + }, + "then": { + "en": "Historic railway car" + } + }, + { + "if": { + "or": [ + "historic=minecart", + "memorial=minecart" + ] + }, + "then": { + "en": "Historic minecart" + } + } + ] + }, + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "circle", + "color": "white" + }, + { + "icon": { + "mappings": [ + { + "if": { + "or": [ + "historic=locomotive", + "memorial=locomotive" + ] + }, + "then": "./assets/layers/historic_rolling_stock/steam_locomotive.svg" + }, + { + "if": { + "or": [ + "historic=minecart", + "memorial=minecart" + ] + }, + "then": "./assets/layers/historic_rolling_stock/minecart.svg" + }, + { + "if": { + "or": [ + "historic=railway_car", + "memorial=railway_car" + ] + }, + "then": "./assets/layers/historic_rolling_stock/railway_car.svg" + } + ] + } + } + ] + } + ], + "lineRendering": [ + { + "width": 1, + "color": "blue" + } + ], + "presets": [ + { + "title": { + "en": "a locomotive on a permanent location" + }, + "description": { + "en": "A (historic) locomotive permanently installed on a location, e.g. in a museum, as artwork or as memorial." + }, + "tags": [ + "historic=locomotive" + ] + }, + { + "title": { + "en": "a railway car on a permanent location" + }, + "description": { + "en": "A decommissioned railway car permanently installed on a location, e.g. in a museum, as artwork or as memorial." + }, + "tags": [ + "historic=railway_car" + ] + }, + { + "title": { + "en": "a minecart on a permanent location" + }, + "description": { + "en": "A (historic) minecart permanently installed on a location, e.g. in a museum, as artwork or as memorial." + }, + "tags": [ + "historic=minecart" + ] + } + ], + "tagRenderings": [ + "images", + { + "id": "is_memorial", + "question": { + "en": "Does this also serve as a memorial?" + }, + "mappings": [ + { + "if": "memorial:={historic}", + "alsoShowIf": "memorial~*", + "then": { + "en": "Serves as a memorial" + } + }, + { + "if": "not:memorial=yes", + "alsoShowIf": "memorial=", + "then": { + "en": "Does not serve as a memorial" + } + } + ] + }, + { + "builtin": "memorial.memorial-questions", + "override": { + "condition": { + "and+": [ + "memorial~*" + ] + } + } + } + ], + "deletion": true, + "allowMove": { + "enableImproveAccuracy": true, + "enableRelocation": false + }, + "credits": "Pieter Vander Vennet", + "credits:uid": 3818858 +} diff --git a/assets/layers/historic_rolling_stock/license_info.json b/assets/layers/historic_rolling_stock/license_info.json new file mode 100644 index 0000000000..0520aeab34 --- /dev/null +++ b/assets/layers/historic_rolling_stock/license_info.json @@ -0,0 +1,32 @@ +[ + { + "path": "minecart.svg", + "license": "MIT License", + "authors": [ + "Bootstrap UI Icons" + ], + "sources": [ + "https://www.svgrepo.com/svg/345008/minecart-loaded" + ] + }, + { + "path": "railway_car.svg", + "license": "Public Domain", + "authors": [ + "Pixabay" + ], + "sources": [ + "https://svgsilh.com/image/159763.html" + ] + }, + { + "path": "steam_locomotive.svg", + "license": "Public Domain", + "authors": [ + " Icooon Mono" + ], + "sources": [ + "https://www.svgrepo.com/svg/480876/steam-locomotive" + ] + } +] \ No newline at end of file diff --git a/assets/layers/historic_rolling_stock/minecart.svg b/assets/layers/historic_rolling_stock/minecart.svg new file mode 100644 index 0000000000..c6ffd17f23 --- /dev/null +++ b/assets/layers/historic_rolling_stock/minecart.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/assets/layers/historic_rolling_stock/minecart.svg.license b/assets/layers/historic_rolling_stock/minecart.svg.license new file mode 100644 index 0000000000..aaf826a152 --- /dev/null +++ b/assets/layers/historic_rolling_stock/minecart.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Bootstrap UI Icons +SPDX-License-Identifier: MIT License \ No newline at end of file diff --git a/assets/layers/historic_rolling_stock/railway_car.svg b/assets/layers/historic_rolling_stock/railway_car.svg new file mode 100644 index 0000000000..9df4c8e7a6 --- /dev/null +++ b/assets/layers/historic_rolling_stock/railway_car.svg @@ -0,0 +1,120 @@ + + + + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + + + + + + + + + diff --git a/assets/layers/historic_rolling_stock/railway_car.svg.license b/assets/layers/historic_rolling_stock/railway_car.svg.license new file mode 100644 index 0000000000..191415e0d5 --- /dev/null +++ b/assets/layers/historic_rolling_stock/railway_car.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Pixabay +SPDX-License-Identifier: Public Domain \ No newline at end of file diff --git a/assets/layers/historic_rolling_stock/steam_locomotive.svg b/assets/layers/historic_rolling_stock/steam_locomotive.svg new file mode 100644 index 0000000000..3e4896aebb --- /dev/null +++ b/assets/layers/historic_rolling_stock/steam_locomotive.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/layers/historic_rolling_stock/steam_locomotive.svg.license b/assets/layers/historic_rolling_stock/steam_locomotive.svg.license new file mode 100644 index 0000000000..83a777a435 --- /dev/null +++ b/assets/layers/historic_rolling_stock/steam_locomotive.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Icooon Mono +SPDX-License-Identifier: Public Domain \ No newline at end of file diff --git a/assets/themes/historic_rolling_stock/historic_rolling_stock.json b/assets/themes/historic_rolling_stock/historic_rolling_stock.json new file mode 100644 index 0000000000..8af8708a32 --- /dev/null +++ b/assets/themes/historic_rolling_stock/historic_rolling_stock.json @@ -0,0 +1,13 @@ +{ + "id": "historic_rolling_stock", + "title": { + "en": "Historic rolling stock" + }, + "description": { + "en": "A map showing all historic, permanently installed rolling stock, such as locomitives and railway carriages, e.g. in a museum, an artwork or a memorial." + }, + "icon": "./assets/layers/historic_rolling_stock/historic_rolling_stock.svg", + "layers": [ + "historic_rolling_stock" + ] +} From 79924acaf021a3c98657fd3db77bfb54e9334eed Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:04:32 +0200 Subject: [PATCH 28/39] UX(nearby_features): place nearby panorama markers at nearly the right place --- src/Logic/GeoOperations.ts | 7 ++++--- src/UI/Image/photoSphereViewerWrapper.ts | 22 +++++++++++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/Logic/GeoOperations.ts b/src/Logic/GeoOperations.ts index d31481c637..8981ff4297 100644 --- a/src/Logic/GeoOperations.ts +++ b/src/Logic/GeoOperations.ts @@ -10,11 +10,12 @@ import { MultiPolygon, Point, Polygon, - Position, + Position } from "geojson" import { Tiles } from "../Models/TileRange" import { Utils } from "../Utils" -;("use strict") + +("use strict") export class GeoOperations { private static readonly _earthRadius: number = 6378137 @@ -106,7 +107,7 @@ export class GeoOperations { * @param lonlat0 * @param lonlat1 */ - static distanceBetween(lonlat0: [number, number], lonlat1: [number, number] | Position) { + static distanceBetween(lonlat0: [number, number] | Coord | Position, lonlat1: [number, number] | Position | Coord) { return turf.distance(lonlat0, lonlat1, { units: "meters" }) } diff --git a/src/UI/Image/photoSphereViewerWrapper.ts b/src/UI/Image/photoSphereViewerWrapper.ts index a8b4f76616..d8068e9335 100644 --- a/src/UI/Image/photoSphereViewerWrapper.ts +++ b/src/UI/Image/photoSphereViewerWrapper.ts @@ -42,12 +42,26 @@ export class PhotoSphereViewerWrapper { public calculatePitch(feature: Feature): number { const coors = this.imageInfo.geometry.coordinates const distance = GeoOperations.distanceBetween( - <[number, number]>coors, + coors, GeoOperations.centerpointCoordinates(feature) ) // In: -pi/2 up to pi/2 - const alpha = Math.atan(distance / 4) // in radians + /* + . + Eye + . / | + . / PITCH | + . / | (Height = y = ~2m) + . / | + ./ ALPHA | + +..... (x = distance) .... + + */ + const height = 3 + // We want to know PITCH = 90 - alpha. + // + // tan(alpha) = height / distance (we rescale so that distance -> 1) + // alpha = atan(height / distance) + const alpha = Math.atan(height / distance) // in radians const degrees = (alpha * 360) / (2 * Math.PI) return -degrees } @@ -86,6 +100,7 @@ export class PhotoSphereViewerWrapper { const northOffs = imageInfo.properties.northOffset this.nearbyFeatures = nearbyFeatures this.clearHotspots() + const centralImageLocation = this.imageInfo.geometry.coordinates for (const f of nearbyFeatures ?? []) { if (f.properties.gotoPanorama?.properties?.url === this.imageInfo.properties.url) { continue // This is the current panorama, no need to show it @@ -97,12 +112,13 @@ export class PhotoSphereViewerWrapper { } else if (!isNaN(f.properties.pitch)) { pitch = f.properties.pitch } + const distance = Math.round(GeoOperations.distanceBetween(centralImageLocation, GeoOperations.centerpointCoordinates(f))) this.viewer.addHotSpot( { type: f.properties.gotoPanorama !== undefined ? "scene" : "info", yaw: (yaw - northOffs) % 360, pitch, - text: f.properties.name, + text: f.properties.name + " (" + distance + "m)", clickHandlerFunc: () => { this.setPanorama(f.properties.gotoPanorama) }, From 8c80e98fca899ecbfe04d96fcb248303110c66f1 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:05:24 +0200 Subject: [PATCH 29/39] Themes(historic_aircraft): make build work --- assets/themes/historic_aircraft/historic_aircraft.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/themes/historic_aircraft/historic_aircraft.json b/assets/themes/historic_aircraft/historic_aircraft.json index 8a18a82a99..f8d03c2811 100644 --- a/assets/themes/historic_aircraft/historic_aircraft.json +++ b/assets/themes/historic_aircraft/historic_aircraft.json @@ -6,7 +6,7 @@ "description": { "en": "A map showing all historic, permanently installed aircraft. The aircraft can be in a museum, an artwork or a memorial." }, - "icon": "airport", + "icon": "./assets/svg/airport.svg", "layers": [ "historic_aircraft" ] From a2c92765dd13c5522f5681d2ff2f615e797b5b13 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:05:39 +0200 Subject: [PATCH 30/39] Themes(rolling_stock): more questions --- .../historic_rolling_stock.json | 17 ++++++++++++++++- .../historic_rolling_stock.json | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/assets/layers/historic_rolling_stock/historic_rolling_stock.json b/assets/layers/historic_rolling_stock/historic_rolling_stock.json index fdbf4f60b9..37f5d8fa6f 100644 --- a/assets/layers/historic_rolling_stock/historic_rolling_stock.json +++ b/assets/layers/historic_rolling_stock/historic_rolling_stock.json @@ -103,7 +103,8 @@ ] } } - ] + ], + "anchor": "bottom" } ], "lineRendering": [ @@ -149,6 +150,20 @@ ], "tagRenderings": [ "images", + "wikipedia", + { + "id": "model", + "question": { + "en": "What is the model of this rolling stock?" + }, + "render": { + "en": "Model {model}" + }, + "freeform": { + "key": "model" + }, + "condition": "model:wikidata=" + }, { "id": "is_memorial", "question": { diff --git a/assets/themes/historic_rolling_stock/historic_rolling_stock.json b/assets/themes/historic_rolling_stock/historic_rolling_stock.json index 8af8708a32..600885db49 100644 --- a/assets/themes/historic_rolling_stock/historic_rolling_stock.json +++ b/assets/themes/historic_rolling_stock/historic_rolling_stock.json @@ -6,7 +6,7 @@ "description": { "en": "A map showing all historic, permanently installed rolling stock, such as locomitives and railway carriages, e.g. in a museum, an artwork or a memorial." }, - "icon": "./assets/layers/historic_rolling_stock/historic_rolling_stock.svg", + "icon": "./assets/layers/historic_rolling_stock/steam_locomotive.svg", "layers": [ "historic_rolling_stock" ] From b60640781bf888ca90864512dae221c9eff541be Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:06:00 +0200 Subject: [PATCH 31/39] Chore: translation sync --- langs/layers/en.json | 103 +++++++++++++++++++++++++++++++++++++++++++ langs/layers/nl.json | 3 ++ langs/themes/en.json | 8 ++++ 3 files changed, 114 insertions(+) diff --git a/langs/layers/en.json b/langs/layers/en.json index 59a8845de2..4f30eef992 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -6074,6 +6074,9 @@ "18": { "then": "Seafood dishes are served here" }, + "19": { + "then": "Spanish dishes are served here" + }, "2": { "then": "Serves mainly pasta" }, @@ -6768,6 +6771,80 @@ "render": "Hackerspace" } }, + "historic_aircraft": { + "name": "Historic aircraft", + "presets": { + "0": { + "description": "A (historic) aircraft permanently installed on a location, e.g. in a museum, as artwork or as memorial.", + "title": "a aircraft on a permanent location" + } + }, + "tagRenderings": { + "is_memorial": { + "mappings": { + "0": { + "then": "Serves as a memorial" + }, + "1": { + "then": "Does not serve as a memorial" + } + }, + "question": "Does this aircraft also serve as a memorial?" + }, + "model": { + "question": "What type of model is this aircraft?", + "render": "{wikipedia(model:wikidata)}" + } + }, + "title": { + "render": "Historic aircraft" + } + }, + "historic_rolling_stock": { + "description": "Historic rolling stock (such as locomotives, railway cars and wagons) which are permanently placed at a location", + "name": "Historic rolling stock", + "presets": { + "0": { + "description": "A (historic) locomotive permanently installed on a location, e.g. in a museum, as artwork or as memorial.", + "title": "a locomotive on a permanent location" + }, + "1": { + "description": "A decommissioned railway car permanently installed on a location, e.g. in a museum, as artwork or as memorial.", + "title": "a railway car on a permanent location" + }, + "2": { + "description": "A (historic) minecart permanently installed on a location, e.g. in a museum, as artwork or as memorial.", + "title": "a minecart on a permanent location" + } + }, + "tagRenderings": { + "is_memorial": { + "mappings": { + "0": { + "then": "Serves as a memorial" + }, + "1": { + "then": "Does not serve as a memorial" + } + }, + "question": "Does this also serve as a memorial?" + } + }, + "title": { + "mappings": { + "0": { + "then": "Historic locomotive" + }, + "1": { + "then": "Historic railway car" + }, + "2": { + "then": "Historic minecart" + } + }, + "render": "Historic rolling stock" + } + }, "hospital": { "description": "A layer showing hospital grounds", "name": "Hospitals", @@ -9618,6 +9695,10 @@ "after": "Scan this code to open this location on another device" } }, + "ref": { + "question": "What is the reference number?", + "render": "The reference number is {ref}" + }, "repeated": { "render": "Multiple, identical objects can be found on floors {repeat_on}." }, @@ -14617,6 +14698,28 @@ } } }, + "windpump": { + "name": "Windpumps", + "presets": { + "0": { + "description": "A wind pump is a kind of windmill that is used for pumping natural gas or water." + } + }, + "tagRenderings": { + "operator": { + "question": "Who operates this windpump?", + "render": "Operated by {operator}" + } + }, + "title": { + "mappings": { + "0": { + "then": "Windpump {ref}" + } + }, + "render": "Windpump {ref}" + } + }, "windturbine": { "description": "Modern windmills generating electricity", "name": "wind turbine", diff --git a/langs/layers/nl.json b/langs/layers/nl.json index a92e944667..79d24b3c11 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -11592,6 +11592,9 @@ "render": "Afvalbak" } }, + "windpump": { + "name": "Pompen op windenergie" + }, "windturbine": { "description": "Windturbines (moderne windmolens die elektriciteit genereren)", "name": "windturbine", diff --git a/langs/themes/en.json b/langs/themes/en.json index 23769bab33..4e78d069b6 100644 --- a/langs/themes/en.json +++ b/langs/themes/en.json @@ -684,6 +684,14 @@ }, "title": "Healthcare" }, + "historic_aircraft": { + "description": "A map showing all historic, permanently installed aircraft. The aircraft can be in a museum, an artwork or a memorial.", + "title": "Historic aircraft" + }, + "historic_rolling_stock": { + "description": "A map showing all historic, permanently installed rolling stock, such as locomitives and railway carriages, e.g. in a museum, an artwork or a memorial.", + "title": "Historic rolling stock" + }, "hotels": { "description": "On this map, you'll find hotels in your area", "title": "Hotels" From 12ea5231cf454c331663144e7d88c63a0f6630da Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:06:23 +0200 Subject: [PATCH 32/39] chore(release): 0.51.8 --- CHANGELOG.md | 23 +++++++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e93528b6f1..c758bd9b2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,29 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [0.51.8](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.51.7...v0.51.8) (2025-05-24) + + +### Bug Fixes + +* add comment on duplicate nearby images, make sure they are always deduplicated ([a3aba99](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a3aba991c51b6aacdcf3058644bd00189f3bed25)) +* fix loading notes based on hash ([cde7bf6](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cde7bf6d9aa7c521b9b4a22fd52509d8e725cae5)) +* inspector: fix AggregateImages.svelte ([e2e3e4b](https://source.mapcomplete.org/MapComplete/MapComplete/commits/e2e3e4b51d17c863d5c75e2c9bc62e3479e8e888)) +* probably partial fix of [#2407](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2407) ([68d9606](https://source.mapcomplete.org/MapComplete/MapComplete/commits/68d96063acb0e5c1299b12dc38ada4440b493958)) + + +### Theme improvements + +* **aircraft:** add historical aircraft layer and theme, https://en.osm.town/@pietervdvn/114491536018069317 ([0e91656](https://source.mapcomplete.org/MapComplete/MapComplete/commits/0e91656dd68a8c1a687200e623ddb6b94811f350)) +* **elevator:** Move speech output question higher, add condition on induction loop question, see [#2411](https://source.mapcomplete.org/MapComplete/MapComplete/issues/2411) ([41e501c](https://source.mapcomplete.org/MapComplete/MapComplete/commits/41e501c18e6888a4b99678baf294cea325a71e7c)) +* **food:** add 'spanish' as option ([cdd5003](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cdd5003aed8a81024b19322af941ccf7ec9fb7dd)) +* **historic_aircraft:** make build work ([f673b54](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f673b540e53c144ca19d69cf8d7794c89dc3b14d)) +* **historic_rolling_stock:** create rolling stock theme ([a591a44](https://source.mapcomplete.org/MapComplete/MapComplete/commits/a591a44c1a334417f91e00af68d004c57e5e92d0)) +* **rolling_stock:** more questions ([3d90e14](https://source.mapcomplete.org/MapComplete/MapComplete/commits/3d90e143d6e9b5c334c58cab1598274ce386b7ce)) +* **shops:** add hairdresser specific questions ([cd8b614](https://source.mapcomplete.org/MapComplete/MapComplete/commits/cd8b614bd975bb8f0738da469bcb0cce58a9cb7a)) +* **toilets:** add an allowed range to some freeform inputs, allow to specify 'units' in the freeform, add the possibility to convert units ([1e0ac3f](https://source.mapcomplete.org/MapComplete/MapComplete/commits/1e0ac3febf06272a5978a87cceeb281929356936)) +* **windpumps:** add windpump layer ([f03877b](https://source.mapcomplete.org/MapComplete/MapComplete/commits/f03877b570e569c8ef9ca716edb39e5f9e6852b2)) + ### [0.51.7](https://source.mapcomplete.org/MapComplete/MapComplete/compare/v0.51.6...v0.51.7) (2025-05-12) diff --git a/package-lock.json b/package-lock.json index b6cd2e2e3d..d6449c7565 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mapcomplete", - "version": "0.51.7", + "version": "0.51.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "mapcomplete", - "version": "0.51.7", + "version": "0.51.8", "hasInstallScript": true, "license": "GPL-3.0-or-later", "dependencies": { diff --git a/package.json b/package.json index 7f60784299..b1324a9cc1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mapcomplete", - "version": "0.51.7", + "version": "0.51.8", "repository": "https://source.mapcomplete.org/MapComplete/MapComplete", "description": "A small website to edit OSM easily", "bugs": "hhttps://source.mapcomplete.org/MapComplete/MapComplete/issues", From d711b6a8ef8b851751734dd6300a0aa7d3c7923c Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 24 May 2025 02:14:02 +0200 Subject: [PATCH 33/39] Themes(rolling_stock): add preset type selection + fix typo --- .../layers/historic_rolling_stock/historic_rolling_stock.json | 4 ++++ src/UI/SpecialVisualisations/UISpecialVisualisations.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/assets/layers/historic_rolling_stock/historic_rolling_stock.json b/assets/layers/historic_rolling_stock/historic_rolling_stock.json index 37f5d8fa6f..7e394b05eb 100644 --- a/assets/layers/historic_rolling_stock/historic_rolling_stock.json +++ b/assets/layers/historic_rolling_stock/historic_rolling_stock.json @@ -150,6 +150,10 @@ ], "tagRenderings": [ "images", + { + "id": "preset_type", + "render": "{preset_type_select()}" + }, "wikipedia", { "id": "model", diff --git a/src/UI/SpecialVisualisations/UISpecialVisualisations.ts b/src/UI/SpecialVisualisations/UISpecialVisualisations.ts index deb1550961..1414c27325 100644 --- a/src/UI/SpecialVisualisations/UISpecialVisualisations.ts +++ b/src/UI/SpecialVisualisations/UISpecialVisualisations.ts @@ -21,7 +21,7 @@ class QuestionViz implements SpecialVisualizationSvelte { funcName = "questions" needsUrls = [] docs = - "The special element which shows the questions which are unkown. Added by default if not yet there" + "The special element which shows the questions which are unknown. Added by default if not yet there" args = [ { name: "labels", From 7597bf0e9191180cdb505b64dbf20d9b94a19930 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 26 May 2025 11:26:53 +0200 Subject: [PATCH 34/39] Themes(bench): support alias for gray --- assets/layers/bench/bench.json | 1 + 1 file changed, 1 insertion(+) diff --git a/assets/layers/bench/bench.json b/assets/layers/bench/bench.json index 86c32c3925..6f91d2dc84 100644 --- a/assets/layers/bench/bench.json +++ b/assets/layers/bench/bench.json @@ -728,6 +728,7 @@ }, { "if": "colour=gray", + "alsoShowIf": "colour=grey", "then": { "en": "Colour: gray", "de": "Farbe: grau", From 02b46e570a1a6ccca788fa3c53b0d708c84c9b99 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 26 May 2025 11:29:55 +0200 Subject: [PATCH 35/39] UX(inspector): add flex wrap --- src/UI/InspectorGUI.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/UI/InspectorGUI.svelte b/src/UI/InspectorGUI.svelte index da04d37a58..c586a94998 100644 --- a/src/UI/InspectorGUI.svelte +++ b/src/UI/InspectorGUI.svelte @@ -180,7 +180,7 @@

    -
    +

    @@ -190,6 +190,7 @@ type="string" value={username} on:submit={() => load()} + cls="shrink-0 border-interactive border-2" /> {#if loadingData} From 3614afb75e8a6227cb76c3cd489c014b9f94c024 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 26 May 2025 11:50:23 +0200 Subject: [PATCH 36/39] Fix(inspector): graphs show up now --- src/UI/History/AggregateView.svelte | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/UI/History/AggregateView.svelte b/src/UI/History/AggregateView.svelte index 1c97d4fb1b..2f1a7b6154 100644 --- a/src/UI/History/AggregateView.svelte +++ b/src/UI/History/AggregateView.svelte @@ -5,7 +5,7 @@ import { OsmObject } from "../../Logic/Osm/OsmObject" import Loading from "../Base/Loading.svelte" import { HistoryUtils } from "./HistoryUtils" - import * as shared_questions from "../../../public/assets/generated/layers/questions.json" + import * as favourite from "../../../public/assets/generated/layers/favourite.json" import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig" import Tr from "../Base/Tr.svelte" import AccordionSingle from "../Flowbite/AccordionSingle.svelte" @@ -13,6 +13,8 @@ import TagRenderingChart from "../BigComponents/TagRenderingChart" import ToSvelte from "../Base/ToSvelte.svelte" import type { TagRenderingConfigJson } from "../../Models/ThemeConfig/Json/TagRenderingConfigJson" + import { Or } from "../../Logic/Tags/Or" + import { Utils } from "../../Utils" export let onlyShowUsername: string[] export let features: Feature[] @@ -32,12 +34,21 @@ }[] > = allHistories.mapD((histories) => HistoryUtils.fullHistoryDiff(histories, usernames)) - const trs = shared_questions.tagRenderings.map( + // We use the favourite-layer as it contains _all_ questions + const trs = favourite.tagRenderings.map( (tr) => new TagRenderingConfig(tr) ) function detectQuestion(key: string): TagRenderingConfig { - return trs.find((tr) => tr.freeform?.key === key) + const byKey = trs.find((tr) => tr.freeform?.key === key) + if (byKey) { + return byKey + } + return trs.find(tr => tr.mappings.some(mapping => { + const ifTags = Or.construct(Utils.NoNull([mapping.if, mapping.alsoShowIf])) + const keys = ifTags.usedKeys() + return keys.some(k => k == key) + })) } const mergedCount: Store< @@ -134,7 +145,7 @@ />

    {:else} - Could not create a graph + Could not create a graph - this item type has no associated question {/if} {/each} From 85645f3706fff2574b8f83e501c6021898bd27a9 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 27 May 2025 15:16:34 +0200 Subject: [PATCH 37/39] Fix(nearby_pictures): add panoramax host --- src/Logic/ImageProviders/AllImageProviders.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Logic/ImageProviders/AllImageProviders.ts b/src/Logic/ImageProviders/AllImageProviders.ts index 0ce8569c06..390d13dc9a 100644 --- a/src/Logic/ImageProviders/AllImageProviders.ts +++ b/src/Logic/ImageProviders/AllImageProviders.ts @@ -34,7 +34,8 @@ export default class AllImageProviders { AllImageProviders.genericImageProvider, ] public static apiUrls: string[] = [].concat( - ...AllImageProviders.imageAttributionSources.map((src) => src.apiUrls()) + ...AllImageProviders.imageAttributionSources.map((src) => src.apiUrls()), + "https://panoramax-storage-public-fast.s3.gra.perf.cloud.ovh.net" ) public static defaultKeys: string[] = [].concat( ...AllImageProviders.imageAttributionSources.map((provider) => provider.defaultKeyPrefixes) From 57e2693a20c1749330cf0505b6bbeff0a3a0648e Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 27 May 2025 16:08:07 +0200 Subject: [PATCH 38/39] Chore: remove obsolete console.log's --- src/UI/Image/ImageOperations.svelte | 1 - src/UI/Image/LinkableImage.svelte | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/UI/Image/ImageOperations.svelte b/src/UI/Image/ImageOperations.svelte index d6454dbcf2..5d4450921b 100644 --- a/src/UI/Image/ImageOperations.svelte +++ b/src/UI/Image/ImageOperations.svelte @@ -25,7 +25,6 @@ | Store[]> = [] let isLoaded = new UIEventSource(false) - console.log(">>> slots are", $$slots)
    diff --git a/src/UI/Image/LinkableImage.svelte b/src/UI/Image/LinkableImage.svelte index 69f3aff679..5b01eef24f 100644 --- a/src/UI/Image/LinkableImage.svelte +++ b/src/UI/Image/LinkableImage.svelte @@ -53,7 +53,7 @@ informationLocation: (image.detailsUrl ?? image.pictureUrl ?? image.thumbUrl), date } - console.log(">>> trying to create license info based on", image, license) + let providedImage: ProvidedImage = { url: image.thumbUrl ?? image.pictureUrl, url_hd: image.pictureUrl, From d7445d795b92830daa884d3096241c6ed8d4050d Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Tue, 27 May 2025 16:09:16 +0200 Subject: [PATCH 39/39] Themes(circular_economy): correctly load second_hand=yes|only --- assets/themes/circular_economy/circular_economy.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/assets/themes/circular_economy/circular_economy.json b/assets/themes/circular_economy/circular_economy.json index 76124b43f5..b28817f563 100644 --- a/assets/themes/circular_economy/circular_economy.json +++ b/assets/themes/circular_economy/circular_economy.json @@ -76,8 +76,12 @@ { "and": [ "shop~*", - "second_hand=yes", - "second_hand=only" + { + "or": [ + "second_hand=yes", + "second_hand=only" + ] + } ] } ]