diff --git a/assets/layers/grab_rail/grab_rail.json b/assets/layers/grab_rail/grab_rail.json
new file mode 100644
index 000000000..ea3890ec0
--- /dev/null
+++ b/assets/layers/grab_rail/grab_rail.json
@@ -0,0 +1,164 @@
+{
+ "id": "grab_rail",
+ "description": {
+ "en": "A grab rail is a support to help persons with reduced mobility or a motor disability. It helps them to transfer from their wheelchair onto the toilet, to stand in a shower, close a door, ... "
+ },
+ "source": "special:library",
+ "tagRenderings": [
+ {
+ "id": "has_grab_rail_lr",
+ "question": {
+ "en": "Is there a grab rail?",
+ "nl": "Is er een handgreep of grijpbeugel?"
+ },
+ "#questionHint": "The questionhint should indicate how 'left' and 'right' are interpreted",
+ "mappings": [
+ {
+ "if": {
+ "and": [
+ "grab_rail:left=yes",
+ "grab_rail:right=yes"
+ ]
+ },
+ "alsoShowIf": "grab_rails=both",
+ "addExtraTags": [
+ "grab_rails="
+ ],
+ "then": {
+ "en": "Grab rails on both sides",
+ "nl": "Grijpbeugels aan beide zijdes"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "grab_rail:left=yes",
+ "grab_rail:right=no"
+ ]
+ },
+ "alsoShowIf": "grab_rail:left=yes",
+ "addExtraTags": [
+ "grab_rails="
+ ],
+ "then": {
+ "en": "Only grab rails on the left side",
+ "nl": "Grijpbeugels enkel aan de linkderzijde"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "grab_rail:left=no",
+ "grab_rail:right=yes"
+ ]
+ },
+ "alsoShowIf": "grab_rail:right=yes",
+ "addExtraTags": [
+ "grab_rails="
+ ],
+ "then": {
+ "en": "Grab rails on the right side",
+ "nl": "Grijpbeugels enkel aan de rechterkant"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "grab_rail:left=no",
+ "grab_rail:right=no"
+ ]
+ },
+ "alsoShowIf": "grab_rails=no",
+ "addExtraTags": [
+ "grab_rails="
+ ],
+ "then": {
+ "en": "No grab rails at all",
+ "nl": "Geen grijpbeugels"
+ }
+ }
+ ]
+ },
+ {
+ "id": "has_grab_rail_behind",
+ "question": {
+ "en": "Does the toilet have a grab rail behind the toilet?",
+ "nl": "Heeft deze toilet een grijpbeugel achter de toilet?"
+ },
+ "mappings": [
+ {
+ "if": "grab_rail:behind=yes",
+ "then": {
+ "en": "Has a grab rail behind the toilet",
+ "nl": "Heeft een grijpbeugel achter de toilet"
+ }
+ },
+ {
+ "if": "grab_rail:behind=no",
+ "then": {
+ "en": "No grab rail behind the toilet",
+ "nl": "Heeft geen grijpbeugel achter de toilet"
+ }
+ }
+ ]
+ },
+ {
+ "id": "is_foldable",
+ "rewrite": {
+ "sourceString": [
+ "LOCATION",
+ "{{TRANSL}}"
+ ],
+ "into": [
+ [
+ "left",
+ {
+ "en": "left",
+ "nl": "linker"
+ }
+ ],
+ [
+ "right",
+ {
+ "en": "right",
+ "nl": "rechter"
+ }
+ ]
+ ]
+ },
+ "renderings": [
+ {
+ "id": "is_foldable_LOCATION",
+ "labels": [
+ "generic_questions"
+ ],
+ "question": {
+ "en": "Is the {{TRANSL}} grab rail foldable?",
+ "nl": "Is de grijpbeugel aan de {{TRANSL}}kant opklapbaar?"
+ },
+ "mappings": [
+ {
+ "if": "is_foldable:LOCATION=yes",
+ "then": {
+ "en": "The {{TRANSL}} grab rail is foldable",
+ "nl": "De grijpbeugel aan de {{TRANSL}}kant is opklapbaar"
+ }
+ },
+ {
+ "if": "is_foldable:LOCATION=no",
+ "then": {
+ "en": "The {{TRANSL}} grab rail is not foldable",
+ "nl": "De grijpbeugel aan de {{TRANSL}}kant is niet opklapbaar"
+ }
+ }
+ ],
+ "condition": {
+ "and": [
+ "grab_rail:LOCATION=yes"
+ ]
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/assets/layers/shower/shower.json b/assets/layers/shower/shower.json
index c96907363..c9dc2f242 100644
--- a/assets/layers/shower/shower.json
+++ b/assets/layers/shower/shower.json
@@ -255,6 +255,18 @@
]
}
}
+ },
+ {
+ "builtin": "grab_rail.has_grab_rail_lr",
+ "override": {
+ "labels+": [
+ "wheelchair"
+ ],
+ "questionHint": {
+ "en": "Left and right are interpreted as when entering the shower",
+ "nl": "Links en rechts zijn zoals wanneer je de douche binnenstapt"
+ }
+ }
}
],
"filter": [
diff --git a/assets/layers/toilet/toilet.json b/assets/layers/toilet/toilet.json
index d84e25508..d2096a7cc 100644
--- a/assets/layers/toilet/toilet.json
+++ b/assets/layers/toilet/toilet.json
@@ -1412,6 +1412,44 @@
}
]
},
+ {
+ "builtin": "grab_rail.has_grab_rail_lr",
+ "override": {
+ "labels+": [
+ "wheelchair"
+ ],
+ "questionHint": {
+ "en": "Left and right are interpreted as when sitting on the toilet",
+ "nl": "Links en rechts zijn zoals wanneer je zit op de toilet"
+ },
+ "condition": "wheelchair=yes"
+ },
+ "prefix": "toilets:wheelchair"
+ },
+ {
+ "builtin": "grab_rail.has_grab_rail_behind",
+ "override": {
+ "labels+": [
+ "wheelchair"
+ ],
+ "condition": "wheelchair=yes"
+ },
+ "prefix": "toilets:wheelchair"
+ },
+ {
+ "builtin": "grab_rail.generic_questions",
+ "override": {
+ "labels+": [
+ "wheelchair"
+ ],
+ "condition": {
+ "and+": [
+ "wheelchair=yes"
+ ]
+ }
+ },
+ "prefix": "toilets:wheelchair"
+ },
{
"id": "wheelchair-door-width",
"condition": {
@@ -1482,7 +1520,7 @@
"amenity-prefixed"
],
"condition": {
- "and": [
+ "and+": [
"changing_table:adult=yes"
]
},
diff --git a/langs/en.json b/langs/en.json
index d572a4dea..9b8757369 100644
--- a/langs/en.json
+++ b/langs/en.json
@@ -528,6 +528,7 @@
},
"hotkeyDocumentation": {
"action": "Action",
+ "addNew": "Open the dialog to add a new point at the center of the map",
"closeSidebar": "Close the sidebar",
"geolocate": "Pan the map to the current location or zoom the map to the current location. Requests geopermission",
"homeLocation": "Jump to your home location. Only works if you did set your home location in the user preferences",
diff --git a/langs/layers/en.json b/langs/layers/en.json
index ff876584a..b338b9c1c 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -6484,6 +6484,64 @@
"render": "Your travelled path"
}
},
+ "grab_rail": {
+ "description": "A grab rail is a support to help persons with reduced mobility or a motor disability. It helps them to transfer from their wheelchair onto the toilet, to stand in a shower, close a door, ... ",
+ "tagRenderings": {
+ "has_grab_rail_behind": {
+ "mappings": {
+ "0": {
+ "then": "Has a grab rail behind the toilet"
+ },
+ "1": {
+ "then": "No grab rail behind the toilet"
+ }
+ },
+ "question": "Does the toilet have a grab rail behind the toilet?"
+ },
+ "has_grab_rail_lr": {
+ "mappings": {
+ "0": {
+ "then": "Grab rails on both sides"
+ },
+ "1": {
+ "then": "Only grab rails on the left side"
+ },
+ "2": {
+ "then": "Grab rails on the right side"
+ },
+ "3": {
+ "then": "No grab rails at all"
+ }
+ },
+ "question": "Is there a grab rail?"
+ },
+ "is_foldable": {
+ "renderings": {
+ "0": {
+ "mappings": {
+ "0": {
+ "then": "The {{TRANSL}} grab rail is foldable"
+ },
+ "1": {
+ "then": "The {{TRANSL}} grab rail is not foldable"
+ }
+ },
+ "question": "Is the {{TRANSL}} grab rail foldable?"
+ }
+ },
+ "rewrite": {
+ "into": {
+ "0": {
+ "1": "left"
+ },
+ "1": {
+ "1": "right"
+ }
+ }
+ }
+ }
+ }
+ },
"grave": {
"description": "Tombstones (and graves) indicate where a person was buried. On this map, those can be recorded and a link to Wikipedia can be made",
"filter": {
@@ -10787,6 +10845,11 @@
},
"question": "Is there a fee for using this shower?"
},
+ "grab_rail.has_grab_rail_lr": {
+ "override": {
+ "questionHint": "Left and right are interpreted as when entering the shower"
+ }
+ },
"hot_water": {
"mappings": {
"0": {
@@ -12402,6 +12465,11 @@
"question": "Are these toilets gender-segregated?",
"questionHint": "Are there separate stalls or separate areas for men and women and are they signposted as such?"
},
+ "grab_rail.has_grab_rail_lr": {
+ "override": {
+ "questionHint": "Left and right are interpreted as when sitting on the toilet"
+ }
+ },
"menstrual_products": {
"mappings": {
"0": {
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index 0ec3b23b6..8446f81fd 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -5831,6 +5831,63 @@
"render": "Jouw traject"
}
},
+ "grab_rail": {
+ "tagRenderings": {
+ "has_grab_rail_behind": {
+ "mappings": {
+ "0": {
+ "then": "Heeft een grijpbeugel achter de toilet"
+ },
+ "1": {
+ "then": "Heeft geen grijpbeugel achter de toilet"
+ }
+ },
+ "question": "Heeft deze toilet een grijpbeugel achter de toilet?"
+ },
+ "has_grab_rail_lr": {
+ "mappings": {
+ "0": {
+ "then": "Grijpbeugels aan beide zijdes"
+ },
+ "1": {
+ "then": "Grijpbeugels enkel aan de linkderzijde"
+ },
+ "2": {
+ "then": "Grijpbeugels enkel aan de rechterkant"
+ },
+ "3": {
+ "then": "Geen grijpbeugels"
+ }
+ },
+ "question": "Is er een handgreep of grijpbeugel?"
+ },
+ "is_foldable": {
+ "renderings": {
+ "0": {
+ "mappings": {
+ "0": {
+ "then": "De grijpbeugel aan de {{TRANSL}}kant is opklapbaar"
+ },
+ "1": {
+ "then": "De grijpbeugel aan de {{TRANSL}}kant is niet opklapbaar"
+ }
+ },
+ "question": "Is de grijpbeugel aan de {{TRANSL}}kant opklapbaar?"
+ }
+ },
+ "rewrite": {
+ "into": {
+ "0": {
+ "1": "linker"
+ },
+ "1": {
+ "1": "rechter"
+ }
+ }
+ }
+ }
+ }
+ },
"grave": {
"presets": {
"0": {
@@ -9024,6 +9081,15 @@
"render": "Winkel"
}
},
+ "shower": {
+ "tagRenderings": {
+ "grab_rail.has_grab_rail_lr": {
+ "override": {
+ "questionHint": "Links en rechts zijn zoals wanneer je de douche binnenstapt"
+ }
+ }
+ }
+ },
"slow_roads": {
"description": "Alle verkeersvrije wegen",
"name": "Paadjes, trage wegen en autoluwe straten",
@@ -9948,6 +10014,11 @@
"question": "Zijn deze toiletten gescheiden op basis van geslacht?",
"questionHint": "Is er een aparte ruimte voor mannen en vrouwen en zijn deze ruimtes ook expliciet aangegeven?"
},
+ "grab_rail.has_grab_rail_lr": {
+ "override": {
+ "questionHint": "Links en rechts zijn zoals wanneer je zit op de toilet"
+ }
+ },
"menstrual_products": {
"mappings": {
"0": {