forked from MapComplete/MapComplete
Fix: fix sauna theme
This commit is contained in:
parent
01ac1d0944
commit
ccbbba5628
3 changed files with 115 additions and 88 deletions
|
@ -30,90 +30,79 @@
|
||||||
"images",
|
"images",
|
||||||
"reviews",
|
"reviews",
|
||||||
{
|
{
|
||||||
"builtin": "toilet_at_amenity.toilet-access",
|
"id": "sauna_access",
|
||||||
"override": {
|
"condition": "leisure!=water_park",
|
||||||
"condition": "leisure!=water_park",
|
"question": {
|
||||||
"question": {
|
"en": "Is this sauna publicly accessible?",
|
||||||
"en": "Is this sauna publicly accessible?",
|
"de": "Ist die Sauna öffentlich zugänglich?"
|
||||||
"de": "Ist die Sauna öffentlich zugänglich?"
|
},
|
||||||
},
|
"render": {
|
||||||
"render": {
|
"en": "Access is {sauna:access}",
|
||||||
"en": "Access is {sauna:access}",
|
"de": "Zugang ist {sauna:access}"
|
||||||
"de": "Zugang ist {sauna:access}",
|
},
|
||||||
"fr": "{sauna:access}",
|
"freeform": {
|
||||||
"nl": "{sauna:access}",
|
"key": "sauna:access"
|
||||||
"it": "{sauna:access}",
|
},
|
||||||
"es": "{sauna:access}",
|
"mappings": [
|
||||||
"da": "{sauna:access}",
|
{
|
||||||
"ca": "{sauna:access}",
|
"if": "sauna:access=yes",
|
||||||
"cs": "{sauna:access}",
|
"then": {
|
||||||
"sl": "{sauna:access}",
|
"en": "Public access",
|
||||||
"uk": "{sauna:access}"
|
"de": "Der Zugang ist öffentlich",
|
||||||
},
|
"fr": "Accès publique",
|
||||||
"freeform": {
|
"nl": "Publiek toegankelijk",
|
||||||
"key": "sauna:access"
|
"it": "Accesso pubblico",
|
||||||
},
|
"ru": "Свободный доступ",
|
||||||
"mappings": [
|
"es": "Acceso público",
|
||||||
{
|
"da": "Offentlig adgang",
|
||||||
"if": "sauna:access=yes",
|
"ca": "Accés públic",
|
||||||
"then": {
|
"cs": "Veřejný přístup",
|
||||||
"en": "Public access",
|
"sl": "Javno dostopno"
|
||||||
"de": "Der Zugang ist öffentlich",
|
|
||||||
"fr": "Accès publique",
|
|
||||||
"nl": "Publiek toegankelijk",
|
|
||||||
"it": "Accesso pubblico",
|
|
||||||
"ru": "Свободный доступ",
|
|
||||||
"es": "Acceso público",
|
|
||||||
"da": "Offentlig adgang",
|
|
||||||
"ca": "Accés públic",
|
|
||||||
"cs": "Veřejný přístup",
|
|
||||||
"sl": "Javno dostopno"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": "sauna:access=customers",
|
|
||||||
"then": {
|
|
||||||
"en": "Only access to customers of the amenity",
|
|
||||||
"de": "Nur Zugang für Kunden der Einrichtung",
|
|
||||||
"nl": "Enkel toegankelijk voor klanten van de voorziening",
|
|
||||||
"fr": "Accessibles uniquement au clients du lieu",
|
|
||||||
"ca": "Només accessible a clients de l'instal·lació",
|
|
||||||
"cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
|
|
||||||
"sl": "Samo za stranke lokala",
|
|
||||||
"es": "Solo acceso para clientes del servicio"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": "sauna:access=no",
|
|
||||||
"then": {
|
|
||||||
"en": "Not accessible, even for customers of the amenity",
|
|
||||||
"de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
|
|
||||||
"nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
|
|
||||||
"fr": "Non accessibles, même pour les clients du lieu",
|
|
||||||
"ca": "No accessible, inclús per als clients de la instal·lació",
|
|
||||||
"cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
|
|
||||||
"sl": "Ni dostopno niti za stranke lokala",
|
|
||||||
"es": "Inaccesible, incluso para clientes del servicio"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"if": "sauna:access=public",
|
|
||||||
"then": {
|
|
||||||
"en": "Public access",
|
|
||||||
"de": "Öffentlicher Zugang",
|
|
||||||
"fr": "Accès publique",
|
|
||||||
"nl": "Publiek toegankelijk",
|
|
||||||
"it": "Accesso pubblico",
|
|
||||||
"ru": "Свободный доступ",
|
|
||||||
"es": "Acceso público",
|
|
||||||
"da": "Offentlig adgang",
|
|
||||||
"ca": "Accés públic",
|
|
||||||
"cs": "Veřejný přístup"
|
|
||||||
},
|
|
||||||
"hideInAnswer": true
|
|
||||||
}
|
}
|
||||||
]
|
},
|
||||||
}
|
{
|
||||||
|
"if": "sauna:access=customers",
|
||||||
|
"then": {
|
||||||
|
"en": "Only access to customers of the amenity",
|
||||||
|
"de": "Nur Zugang für Kunden der Einrichtung",
|
||||||
|
"nl": "Enkel toegankelijk voor klanten van de voorziening",
|
||||||
|
"fr": "Accessibles uniquement au clients du lieu",
|
||||||
|
"ca": "Només accessible a clients de l'instal·lació",
|
||||||
|
"cs": "Přístup pouze zákazníkům zařízení občanské vybavenosti",
|
||||||
|
"sl": "Samo za stranke lokala",
|
||||||
|
"es": "Solo acceso para clientes del servicio"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "sauna:access=no",
|
||||||
|
"then": {
|
||||||
|
"en": "Not accessible, even for customers of the amenity",
|
||||||
|
"de": "Nicht zugänglich, auch nicht für Kunden der Einrichtung",
|
||||||
|
"nl": "Niet toegankelijk, ook niet voor klanten van de voorziening",
|
||||||
|
"fr": "Non accessibles, même pour les clients du lieu",
|
||||||
|
"ca": "No accessible, inclús per als clients de la instal·lació",
|
||||||
|
"cs": "Není přístupný, a to ani pro zákazníky občanské vybavenosti",
|
||||||
|
"sl": "Ni dostopno niti za stranke lokala",
|
||||||
|
"es": "Inaccesible, incluso para clientes del servicio"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "sauna:access=public",
|
||||||
|
"then": {
|
||||||
|
"en": "Public access",
|
||||||
|
"de": "Öffentlicher Zugang",
|
||||||
|
"fr": "Accès publique",
|
||||||
|
"nl": "Publiek toegankelijk",
|
||||||
|
"it": "Accesso pubblico",
|
||||||
|
"ru": "Свободный доступ",
|
||||||
|
"es": "Acceso público",
|
||||||
|
"da": "Offentlig adgang",
|
||||||
|
"ca": "Accés públic",
|
||||||
|
"cs": "Veřejný přístup"
|
||||||
|
},
|
||||||
|
"hideInAnswer": true
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"contact",
|
"contact",
|
||||||
"fixme"
|
"fixme"
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
"en": "Sauna"
|
"en": "Sauna"
|
||||||
},
|
},
|
||||||
"layers": [
|
"layers": [
|
||||||
"./assets/layers/sauna/sauna.json",
|
"sauna",
|
||||||
"./assets/layers/sauna/sauna_at_leisure.json"
|
"sauna_at_leisure"
|
||||||
],
|
],
|
||||||
"description": {
|
"description": {
|
||||||
"en": "Sauna"
|
"en": "Sauna"
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
MappingConfigJson,
|
MappingConfigJson,
|
||||||
QuestionableTagRenderingConfigJson,
|
QuestionableTagRenderingConfigJson,
|
||||||
} from "../Json/QuestionableTagRenderingConfigJson"
|
} from "../Json/QuestionableTagRenderingConfigJson"
|
||||||
|
import { Utils } from "../../../Utils"
|
||||||
|
|
||||||
export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
|
export default class AddPrefixToTagRenderingConfig extends DesugaringStep<QuestionableTagRenderingConfigJson> {
|
||||||
private readonly _prefix: string
|
private readonly _prefix: string
|
||||||
|
@ -18,6 +19,40 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
|
||||||
this._prefix = prefix
|
this._prefix = prefix
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {key}") // => "Some argument with a {PREFIX:key}"
|
||||||
|
*
|
||||||
|
* // Don't rewrite metatags
|
||||||
|
* new AddPrefixToTagRenderingConfig("PREFIX").rewriteArguments("Some argument with a {_calculated_key}") // => "Some argument with a {_calculated_key}"
|
||||||
|
*
|
||||||
|
|
||||||
|
*/
|
||||||
|
private rewriteArguments(txt: string) {
|
||||||
|
const regex = /(.*?){([^}]*)}(.*)/s
|
||||||
|
let match = txt.match(regex)
|
||||||
|
if (!match) {
|
||||||
|
return txt
|
||||||
|
}
|
||||||
|
let result = ""
|
||||||
|
while (match) {
|
||||||
|
const [_, normal, key, leftover] = match
|
||||||
|
if (key.startsWith("_")) {
|
||||||
|
result += normal + "{" + key + "}"
|
||||||
|
} else {
|
||||||
|
result += normal + "{" + this._prefix + ":" + key + "}"
|
||||||
|
}
|
||||||
|
match = leftover.match(regex)
|
||||||
|
if (!match) {
|
||||||
|
result += leftover
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(txt !== result){
|
||||||
|
console.log(">>> Rewritten", txt, "into", result)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* const edit = new AddPrefixToTagRenderingConfig("PREFIX")
|
* const edit = new AddPrefixToTagRenderingConfig("PREFIX")
|
||||||
|
@ -29,6 +64,9 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
|
||||||
*
|
*
|
||||||
* // Should prefix the default key in a special visualisation
|
* // Should prefix the default key in a special visualisation
|
||||||
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
|
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{opening_hours_table()}") // => "{opening_hours_table(PREFIX:opening_hours,,)}"
|
||||||
|
*
|
||||||
|
* // Should prefix links, e.g. for 'phone'
|
||||||
|
* new AddPrefixToTagRenderingConfig("PREFIX").updateString("{link({phone},tel:{phone},,,,)}") // => "{link({PREFIX:phone},tel:{PREFIX:phone},,,,)}"
|
||||||
*/
|
*/
|
||||||
private updateString(str: string): string {
|
private updateString(str: string): string {
|
||||||
const parsed = SpecialVisualizations.constructSpecification(str)
|
const parsed = SpecialVisualizations.constructSpecification(str)
|
||||||
|
@ -45,7 +83,7 @@ export default class AddPrefixToTagRenderingConfig extends DesugaringStep<Questi
|
||||||
if (argDoc.type === "key") {
|
if (argDoc.type === "key") {
|
||||||
newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
|
newArgs.push(this._prefix + ":" + (argV ?? argDoc.defaultValue ?? ""))
|
||||||
} else {
|
} else {
|
||||||
newArgs.push(argV ?? "")
|
newArgs.push(this.rewriteArguments(argV ?? ""))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")
|
fixedSpec.push("{" + spec.func.funcName + "(" + newArgs.join(",") + ")}")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue