Merge branch 'develop' of github.com:pietervdvn/MapComplete into develop

This commit is contained in:
Pieter Vander Vennet 2021-10-19 03:01:04 +02:00
commit e9cc705a12
31 changed files with 1005 additions and 974 deletions

View file

@ -62,6 +62,9 @@ export default class TagRenderingConfig {
this.render = Translations.T(json.render, context + ".render"); this.render = Translations.T(json.render, context + ".render");
this.question = Translations.T(json.question, context + ".question"); this.question = Translations.T(json.question, context + ".question");
this.roaming = json.roaming ?? false; this.roaming = json.roaming ?? false;
if(this.roaming){
console.warn("Deprecation notice: roaming renderings will be scrapped.", this.id, context)
}
const condition = TagUtils.Tag(json.condition ?? {"and": []}, `${context}.condition`); const condition = TagUtils.Tag(json.condition ?? {"and": []}, `${context}.condition`);
if (this.roaming && conditionIfRoaming !== undefined) { if (this.roaming && conditionIfRoaming !== undefined) {
this.condition = new And([condition, conditionIfRoaming]); this.condition = new And([condition, conditionIfRoaming]);

View file

@ -79,16 +79,13 @@
] ]
}, },
"then": { "then": {
"render": "./assets/layers/bike_cleaning/bike_cleaning_icon.svg", "render": "./assets/layers/bike_cleaning/bike_cleaning_icon.svg"
"roaming": true }
},
"badge": true
} }
], ],
"titleIcons": [ "titleIcons": [
{ {
"render": "<img src='./assets/layers/bike_cleaning/bike_cleaning_icon.svg'/>", "render": "<img src='./assets/layers/bike_cleaning/bike_cleaning_icon.svg'/>"
"roaming": true
} }
], ],
"tagRenderings": [ "tagRenderings": [
@ -118,7 +115,6 @@
"then": "The cleaning service has a fee" "then": "The cleaning service has a fee"
} }
], ],
"roaming": true,
"id": "bike_cleaning-service:bicycle:cleaning:charge" "id": "bike_cleaning-service:bicycle:cleaning:charge"
}, },
{ {
@ -146,7 +142,6 @@
"then": "The cleaning service has a fee" "then": "The cleaning service has a fee"
} }
], ],
"roaming": false,
"id": "bike_cleaning-charge" "id": "bike_cleaning-charge"
} }
], ],

View file

@ -129,8 +129,7 @@
"titleIcons": [ "titleIcons": [
{ {
"render": "<a href='https://fietsambassade.gent.be/' target='_blank'><img src='./assets/themes/cyclofix/fietsambassade_gent_logo_small.svg'/></a>", "render": "<a href='https://fietsambassade.gent.be/' target='_blank'><img src='./assets/themes/cyclofix/fietsambassade_gent_logo_small.svg'/></a>",
"condition": "operator=De Fietsambassade Gent", "condition": "operator=De Fietsambassade Gent"
"roaming": true
}, },
"defaults" "defaults"
], ],

View file

@ -174,6 +174,10 @@
"condition": "service:bicycle:diy=yes", "condition": "service:bicycle:diy=yes",
"render": "<img src='./assets/layers/bike_shop/tools.svg'/>" "render": "<img src='./assets/layers/bike_shop/tools.svg'/>"
}, },
{ "condition": "service:bicycle:cleaning=yes",
"render": "<img src='./assets/layers/bike_cleaning/bike_cleaning_icon.svg'/>"
},
"defaults" "defaults"
], ],
"description": { "description": {
@ -659,6 +663,32 @@
} }
} }
] ]
},
{
"question": "How much does it cost to use the cleaning service?",
"render": "Using the cleaning service costs {charge}",
"freeform": {
"key": "service:bicycle:cleaning:charge",
"addExtraTags": [
"service:bicycle:cleaning:fee=yes"
]
},
"mappings": [
{
"if": "service:bicycle:cleaning:fee=no&service:bicycle:cleaning:charge=",
"then": "The cleaning service is free to use"
},
{
"if": "service:bicycle:cleaning:fee=no&",
"then": "Free to use",
"hideInAnswer": true
},
{
"if": "service:bicycle:cleaning:fee=yes",
"then": "The cleaning service has a fee"
}
],
"id": "bike_cleaning-service:bicycle:cleaning:charge"
} }
], ],
"presets": [ "presets": [
@ -700,6 +730,17 @@
"if": "service:bicycle:pump=yes", "if": "service:bicycle:pump=yes",
"then": "circle:#e2783d;./assets/layers/bike_repair_station/pump.svg", "then": "circle:#e2783d;./assets/layers/bike_repair_station/pump.svg",
"badge": true "badge": true
},
{
"if": {
"and": [
"service:bicycle:cleaning~*"
]
},
"then": {
"render": "./assets/layers/bike_cleaning/bike_cleaning_icon.svg"
},
"badge": true
} }
], ],
"width": { "width": {

View file

@ -58,6 +58,5 @@
"bench", "bench",
"bench_at_pt", "bench_at_pt",
"picnic_table" "picnic_table"
], ]
"roamingRenderings": []
} }

View file

@ -42,7 +42,6 @@
"startLon": 0, "startLon": 0,
"startZoom": 1, "startZoom": 1,
"widenFactor": 1.5, "widenFactor": 1.5,
"roamingRenderings": [],
"layers": [ "layers": [
{ {
"builtin": "bicycle_library", "builtin": "bicycle_library",

View file

@ -40,7 +40,6 @@
"startLon": 0, "startLon": 0,
"startZoom": 1, "startZoom": 1,
"widenFactor": 1, "widenFactor": 1,
"roamingRenderings": [],
"layers": [ "layers": [
"public_bookcase" "public_bookcase"
] ]

View file

@ -343,9 +343,10 @@
}, },
"viewpoint" "viewpoint"
], ],
"roamingRenderings": [ "overrideAll": {
"tagRenderings+": [
{ {
"#": "Access tag", "id": "Access tag",
"condition": { "condition": {
"and": [ "and": [
"tourism!~viewpoint" "tourism!~viewpoint"
@ -452,7 +453,7 @@
] ]
}, },
{ {
"#": "Operator tag", "id": "Operator tag",
"render": { "render": {
"nl": "Beheer door {operator}" "nl": "Beheer door {operator}"
}, },
@ -531,7 +532,7 @@
} }
}, },
{ {
"#": "Non-editable description {description}", "id": "Non-editable description {description}",
"render": { "render": {
"nl": "Extra info: <i>{description}</i>" "nl": "Extra info: <i>{description}</i>"
}, },
@ -540,7 +541,7 @@
} }
}, },
{ {
"#": "Editable description {description:0}", "id": "Editable description {description:0}",
"question": "Is er extra info die je kwijt wil?<br/><span class='subtle'>De <i>naam</i> van het gebied wordt in de volgende vraag gesteld</span>", "question": "Is er extra info die je kwijt wil?<br/><span class='subtle'>De <i>naam</i> van het gebied wordt in de volgende vraag gesteld</span>",
"render": { "render": {
"nl": "Extra info via buurtnatuur.be: <i>{description:0}</i>" "nl": "Extra info via buurtnatuur.be: <i>{description:0}</i>"
@ -550,7 +551,7 @@
} }
}, },
{ {
"#": "Name:nl-tag", "id": "Name:nl-tag",
"render": { "render": {
"nl": "Dit gebied heet {name:nl}" "nl": "Dit gebied heet {name:nl}"
}, },
@ -568,7 +569,7 @@
} }
}, },
{ {
"#": "Name tag", "id": "Name tag",
"render": { "render": {
"nl": "Dit gebied heet {name}" "nl": "Dit gebied heet {name}"
}, },
@ -603,3 +604,4 @@
} }
] ]
} }
}

View file

@ -1078,8 +1078,10 @@
] ]
} }
], ],
"roamingRenderings": [ "overrideAll": {
"tagRenderings+": [
{ {
"id": "operator",
"render": { "render": {
"en": "This place is operated by {operator}", "en": "This place is operated by {operator}",
"ja": "この場所は{operator}によって運営されます", "ja": "この場所は{operator}によって運営されます",
@ -1099,6 +1101,7 @@
} }
}, },
{ {
"id": "power_supply",
"question": { "question": {
"en": "Does this place have a power supply?", "en": "Does this place have a power supply?",
"ja": "この場所に電源はありますか?", "ja": "この場所に電源はありますか?",
@ -1141,3 +1144,4 @@
} }
] ]
} }
}

View file

@ -46,6 +46,5 @@
"defaultBackgroundId": "CartoDB.Voyager", "defaultBackgroundId": "CartoDB.Voyager",
"layers": [ "layers": [
"charging_station" "charging_station"
], ]
"roamingRenderings": []
} }

File diff suppressed because it is too large Load diff

View file

@ -43,105 +43,6 @@
"maxZoom": 12, "maxZoom": 12,
"minNeededElements": 200 "minNeededElements": 200
}, },
"roamingRenderings": [
{
"question": {
"nl": "Is deze straat een fietsstraat?",
"en": "Is this street a cyclestreet?",
"ja": "この通りはcyclestreetですか?",
"nb_NO": "Er denne gaten en sykkelvei?",
"de": "Ist diese Straße eine Fahrradstraße?"
},
"mappings": [
{
"if": {
"and": [
"cyclestreet=yes",
"maxspeed=30",
"overtaking:motor_vehicle=no",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat is een fietsstraat (en dus zone 30)",
"en": "This street is a cyclestreet (and has a speed limit of 30 km/h)",
"ja": "cyclestreet(最高速度は30km/h)",
"nb_NO": "Denne gaten er en sykkelvei (og har en fartsgrense på 30 km/t)",
"de": "Diese Straße ist eine Fahrradstraße (mit einer Geschwindigkeitsbegrenzung von 30 km/h)"
}
},
{
"if": {
"and": [
"cyclestreet=yes",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat i een fietsstraat",
"en": "This street is a cyclestreet",
"ja": "この通りはcyclestreetだ",
"nb_NO": "Denne gaten er en sykkelvei",
"de": "Diese Straße ist eine Fahrradstraße"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=yes"
]
},
"then": {
"nl": "Deze straat wordt binnenkort een fietsstraat",
"en": "This street will become a cyclstreet soon",
"ja": "この通りはまもなくcyclstreetになるだろう",
"nb_NO": "Denne gaten vil bli sykkelvei ganske snart",
"de": "Diese Straße wird bald eine Fahrradstraße sein"
}
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=",
"overtaking:motor_vehicle="
]
},
"then": {
"nl": "Deze straat is geen fietsstraat",
"en": "This street is not a cyclestreet",
"ja": "この通りはcyclestreetではない",
"nb_NO": "Denne gaten er ikke en sykkelvei",
"it": "Questa strada non è una strada ciclabile",
"de": "Diese Straße ist keine Fahrradstraße"
}
}
]
},
{
"question": {
"nl": "Wanneer wordt deze straat een fietsstraat?",
"en": "When will this street become a cyclestreet?",
"ja": "この通りはいつcyclestreetになるんですか?",
"it": "Questa strada diventerà una strada ciclabile quando?",
"de": "Wann wird diese Straße eine Fahrradstraße?"
},
"render": {
"nl": "Deze straat wordt fietsstraat op {cyclestreet:start_date}",
"en": "This street will become a cyclestreet at {cyclestreet:start_date}",
"ja": "この通りは{cyclestreet:start_date}に、cyclestreetになります",
"it": "Questa strada diventerà una strada ciclabile dal {cyclestreet:start_date}",
"de": "Diese Straße wird am {cyclestreet:start_date} zu einer Fahrradstraße"
},
"condition": "proposed:cyclestreet=yes",
"freeform": {
"type": "date",
"key": "cyclestreet:start_date"
}
}
],
"layers": [ "layers": [
{ {
"id": "fietsstraat", "id": "fietsstraat",
@ -304,6 +205,105 @@
} }
], ],
"overrideAll": { "overrideAll": {
"allowSplit": true "allowSplit": true,
"tagRenderings+": [
{"id": "is_cyclestreet",
"question": {
"nl": "Is deze straat een fietsstraat?",
"en": "Is this street a cyclestreet?",
"ja": "この通りはcyclestreetですか?",
"nb_NO": "Er denne gaten en sykkelvei?",
"de": "Ist diese Straße eine Fahrradstraße?"
},
"mappings": [
{
"if": {
"and": [
"cyclestreet=yes",
"maxspeed=30",
"overtaking:motor_vehicle=no",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat is een fietsstraat (en dus zone 30)",
"en": "This street is a cyclestreet (and has a speed limit of 30 km/h)",
"ja": "cyclestreet(最高速度は30km/h)",
"nb_NO": "Denne gaten er en sykkelvei (og har en fartsgrense på 30 km/t)",
"de": "Diese Straße ist eine Fahrradstraße (mit einer Geschwindigkeitsbegrenzung von 30 km/h)"
}
},
{
"if": {
"and": [
"cyclestreet=yes",
"proposed:cyclestreet="
]
},
"then": {
"nl": "Deze straat i een fietsstraat",
"en": "This street is a cyclestreet",
"ja": "この通りはcyclestreetだ",
"nb_NO": "Denne gaten er en sykkelvei",
"de": "Diese Straße ist eine Fahrradstraße"
},
"hideInAnswer": true
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=yes"
]
},
"then": {
"nl": "Deze straat wordt binnenkort een fietsstraat",
"en": "This street will become a cyclstreet soon",
"ja": "この通りはまもなくcyclstreetになるだろう",
"nb_NO": "Denne gaten vil bli sykkelvei ganske snart",
"de": "Diese Straße wird bald eine Fahrradstraße sein"
}
},
{
"if": {
"and": [
"cyclestreet=",
"proposed:cyclestreet=",
"overtaking:motor_vehicle="
]
},
"then": {
"nl": "Deze straat is geen fietsstraat",
"en": "This street is not a cyclestreet",
"ja": "この通りはcyclestreetではない",
"nb_NO": "Denne gaten er ikke en sykkelvei",
"it": "Questa strada non è una strada ciclabile",
"de": "Diese Straße ist keine Fahrradstraße"
}
}
]
},
{"id": "future_cyclestreet",
"question": {
"nl": "Wanneer wordt deze straat een fietsstraat?",
"en": "When will this street become a cyclestreet?",
"ja": "この通りはいつcyclestreetになるんですか?",
"it": "Questa strada diventerà una strada ciclabile quando?",
"de": "Wann wird diese Straße eine Fahrradstraße?"
},
"render": {
"nl": "Deze straat wordt fietsstraat op {cyclestreet:start_date}",
"en": "This street will become a cyclestreet at {cyclestreet:start_date}",
"ja": "この通りは{cyclestreet:start_date}に、cyclestreetになります",
"it": "Questa strada diventerà una strada ciclabile dal {cyclestreet:start_date}",
"de": "Diese Straße wird am {cyclestreet:start_date} zu einer Fahrradstraße"
},
"condition": "proposed:cyclestreet=yes",
"freeform": {
"type": "date",
"key": "cyclestreet:start_date"
}
}
]
} }
} }

View file

@ -57,6 +57,5 @@
"bike_themed_object", "bike_themed_object",
"bike_cleaning", "bike_cleaning",
"bike_parking" "bike_parking"
], ]
"roamingRenderings": []
} }

View file

@ -40,6 +40,5 @@
"widenFactor": 2, "widenFactor": 2,
"layers": [ "layers": [
"drinking_water" "drinking_water"
], ]
"roamingRenderings": []
} }

View file

@ -456,6 +456,5 @@
], ],
"wayHandling": 1 "wayHandling": 1
} }
], ]
"roamingRenderings": []
} }

View file

@ -54,6 +54,5 @@
"filter": null "filter": null
} }
} }
], ]
"roamingRenderings": []
} }

View file

@ -172,6 +172,5 @@
} }
] ]
} }
], ]
"roamingRenderings": []
} }

View file

@ -201,6 +201,5 @@
} }
], ],
"hideFromOverview": true, "hideFromOverview": true,
"roamingRenderings": [],
"defaultBackgroundId": "AGIVFlandersGRB" "defaultBackgroundId": "AGIVFlandersGRB"
} }

View file

@ -40,6 +40,5 @@
"socialImage": "", "socialImage": "",
"layers": [ "layers": [
"map" "map"
], ]
"roamingRenderings": []
} }

View file

@ -26,6 +26,5 @@
"map", "map",
"information_board", "information_board",
"nature_reserve" "nature_reserve"
], ]
"roamingRenderings": []
} }

View file

@ -26,6 +26,5 @@
"socialImage": "", "socialImage": "",
"layers": [ "layers": [
"parking" "parking"
], ]
"roamingRenderings": []
} }

View file

@ -46,6 +46,5 @@
"startZoom": 16, "startZoom": 16,
"widenFactor": 1.2, "widenFactor": 1.2,
"overpassMaxZoom": 0, "overpassMaxZoom": 0,
"layers": [], "layers": []
"roamingRenderings": []
} }

View file

@ -23,6 +23,5 @@
"socialImage": "", "socialImage": "",
"layers": [ "layers": [
"play_forest" "play_forest"
], ]
"roamingRenderings": []
} }

View file

@ -42,6 +42,5 @@
"socialImage": "", "socialImage": "",
"layers": [ "layers": [
"playground" "playground"
], ]
"roamingRenderings": []
} }

View file

@ -41,6 +41,5 @@
"socialImage": "", "socialImage": "",
"layers": [ "layers": [
"sport_pitch" "sport_pitch"
], ]
"roamingRenderings": []
} }

View file

@ -43,6 +43,5 @@
"layers": [ "layers": [
"direction", "direction",
"surveillance_camera" "surveillance_camera"
], ]
"roamingRenderings": []
} }

View file

@ -55,6 +55,5 @@
"layers": [ "layers": [
"tree_node" "tree_node"
], ],
"roamingRenderings": [],
"defaultBackgroundId": "AGIV" "defaultBackgroundId": "AGIV"
} }

View file

@ -274,6 +274,5 @@
"render": "0" "render": "0"
} }
} }
], ]
"roamingRenderings": []
} }

View file

@ -33,6 +33,5 @@
"minzoom": 12 "minzoom": 12
} }
} }
], ]
"roamingRenderings": []
} }

View file

@ -118,6 +118,9 @@ class LayerOverviewUtils {
if (themeFile["units"] !== undefined) { if (themeFile["units"] !== undefined) {
themeErrorCount.push("The theme " + themeFile.id + " has units defined - these should be defined on the layer instead. (Hint: use overrideAll: { '+units': ... }) ") themeErrorCount.push("The theme " + themeFile.id + " has units defined - these should be defined on the layer instead. (Hint: use overrideAll: { '+units': ... }) ")
} }
if (themeFile["roamingRenderings"] !== undefined) {
themeErrorCount.push("Theme " + themeFile.id + " contains an old 'roamingRenderings'. Use an 'overrideAll' instead")
}
for (const layer of themeFile.layers) { for (const layer of themeFile.layers) {
if (typeof layer === "string") { if (typeof layer === "string") {
if (!knownLayerIds.has(layer)) { if (!knownLayerIds.has(layer)) {

View file

@ -46,6 +46,11 @@ for (const themeFile of themeFiles) {
// @ts-ignore // @ts-ignore
fixLayerConfig(layerConfig) fixLayerConfig(layerConfig)
} }
if(themeFile.parsed["roamingRenderings"] !== undefined && themeFile.parsed["roamingRenderings"].length == 0){
delete themeFile.parsed["roamingRenderings"]
}
writeFileSync(themeFile.path, JSON.stringify(themeFile.parsed, null, " ")) writeFileSync(themeFile.path, JSON.stringify(themeFile.parsed, null, " "))
} }
//*/ //*/