Merge branch 'master' into develop

This commit is contained in:
Pieter Vander Vennet 2023-03-13 20:12:07 +01:00
commit f12b79754e
53 changed files with 315 additions and 259 deletions

View file

@ -14,7 +14,6 @@ import { LoginToggle } from "./Popup/LoginButton"
export default class AllThemesGui { export default class AllThemesGui {
setup() { setup() {
try { try {
new FixedUiElement("").AttachTo("centermessage")
const state = new UserRelatedState(undefined) const state = new UserRelatedState(undefined)
const intro = new Combine([ const intro = new Combine([
new LanguagePicker1(Translations.t.index.title.SupportedLanguages(), "").SetClass( new LanguagePicker1(Translations.t.index.title.SupportedLanguages(), "").SetClass(
@ -42,7 +41,7 @@ export default class AllThemesGui {
"Seems like no layers are compiled - check the output of `npm run generate:layeroverview`. Is this visible online? Contact pietervdvn immediately!" "Seems like no layers are compiled - check the output of `npm run generate:layeroverview`. Is this visible online? Contact pietervdvn immediately!"
) )
.SetClass("alert") .SetClass("alert")
.AttachTo("centermessage") .AttachTo("top-left")
} }
} }
} }

View file

@ -1,62 +1,63 @@
<script lang="ts"> <script lang="ts">
import { onMount } from "svelte"; import { onMount } from "svelte"
import { Store } from "../../Logic/UIEventSource"; import { Store } from "../../Logic/UIEventSource"
import BaseUIElement from "../BaseUIElement"; import BaseUIElement from "../BaseUIElement"
import Img from "./Img"; import Img from "./Img"
import Translations from "../i18n/Translations"; import Translations from "../i18n/Translations"
import { ImmutableStore } from "../../Logic/UIEventSource.js"; import { ImmutableStore } from "../../Logic/UIEventSource.js"
export let imageUrl: string | BaseUIElement = undefined; export let imageUrl: string | BaseUIElement = undefined
export let message: string | BaseUIElement = undefined; export let message: string | BaseUIElement = undefined
export let options: { export let options: {
url?: string | Store<string> url?: string | Store<string>
newTab?: boolean newTab?: boolean
imgSize?: string imgSize?: string
extraClasses?: string extraClasses?: string
} = {}; } = {}
// Website to open when clicked // Website to open when clicked
let href : Store<string> = undefined let href: Store<string> = undefined
if(options?.url){ if (options?.url) {
href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url; href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url
} }
let imgElem: HTMLElement; let imgElem: HTMLElement
let msgElem: HTMLElement; let msgElem: HTMLElement
let imgClasses = "block justify-center shrink-0 mr-4 " + (options?.imgSize ?? "h-11 w-11"); let imgClasses = "block justify-center shrink-0 mr-4 " + (options?.imgSize ?? "h-11 w-11")
onMount(() => { onMount(() => {
// Image // Image
if (imgElem && imageUrl) { if (imgElem && imageUrl) {
let img: BaseUIElement; let img: BaseUIElement
if ((imageUrl ?? "") === "") { if ((imageUrl ?? "") === "") {
img = undefined; img = undefined
} else if (typeof imageUrl !== "string") { } else if (typeof imageUrl !== "string") {
img = imageUrl?.SetClass(imgClasses); img = imageUrl?.SetClass(imgClasses)
} }
if (img) imgElem.replaceWith(img.ConstructElement()); if (img) imgElem.replaceWith(img.ConstructElement())
} }
// Message // Message
if (msgElem && message) { if (msgElem && message) {
let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink"); let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink")
msgElem.replaceWith(msg.ConstructElement()); msgElem.replaceWith(msg.ConstructElement())
} }
}); })
</script> </script>
<svelte:element <svelte:element
class={(options.extraClasses??"") + 'flex hover:shadow-xl transition-[color,background-color,box-shadow] hover:bg-unsubtle'} this={href === undefined ? "span" : "a"}
class={(options.extraClasses ?? "") +
"flex hover:shadow-xl transition-[color,background-color,box-shadow] hover:bg-unsubtle"}
href={$href} href={$href}
target={options?.newTab ? "_blank" : ""} target={options?.newTab ? "_blank" : ""}
this={href === undefined ? "span" : "a"}
> >
<slot name="image"> <slot name="image">
{#if imageUrl !== undefined} {#if imageUrl !== undefined}
{#if typeof imageUrl === "string"} {#if typeof imageUrl === "string"}
<Img src={imageUrl} class={imgClasses+ " bg-red border border-black"}></Img> <Img src={imageUrl} class={imgClasses + " bg-red border border-black"} />
{:else } {:else}
<template bind:this={imgElem} /> <template bind:this={imgElem} />
{/if} {/if}
{/if} {/if}
@ -68,7 +69,6 @@
</svelte:element> </svelte:element>
<style lang="scss"> <style lang="scss">
span, span,
a { a {
@apply flex p-3 my-2 py-4 rounded-lg shrink-0; @apply flex p-3 my-2 py-4 rounded-lg shrink-0;

View file

@ -13,7 +13,7 @@ export class SubtleButton extends UIElement {
private readonly options: { private readonly options: {
url?: string | Store<string> url?: string | Store<string>
newTab?: boolean newTab?: boolean
imgSize?: string, imgSize?: string
extraClasses?: string extraClasses?: string
} }
@ -23,7 +23,7 @@ export class SubtleButton extends UIElement {
options: { options: {
url?: string | Store<string> url?: string | Store<string>
newTab?: boolean newTab?: boolean
imgSize?: "h-11 w-11" | string, imgSize?: "h-11 w-11" | string
extraClasses?: string extraClasses?: string
} = {} } = {}
) { ) {

View file

@ -29,8 +29,8 @@
url: "https://pietervdvn.github.io/mc/legacy/070/customGenerator.html", url: "https://pietervdvn.github.io/mc/legacy/070/customGenerator.html",
}} }}
> >
<span slot="image" class="h-11 w-11 mx-4 bg-red" > <span slot="image" class="h-11 w-11 mx-4 bg-red">
<ToSvelte construct={Svg.pencil_ui()}/> <ToSvelte construct={Svg.pencil_ui()} />
</span> </span>
<span slot="message">{t.createYourOwnTheme.toString()}</span> <span slot="message">{t.createYourOwnTheme.toString()}</span>
</SubtleButton> </SubtleButton>

View file

@ -6,7 +6,7 @@
import UserDetails, { OsmConnection } from "../../Logic/Osm/OsmConnection" import UserDetails, { OsmConnection } from "../../Logic/Osm/OsmConnection"
import Constants from "../../Models/Constants" import Constants from "../../Models/Constants"
import type Loc from "../../Models/Loc" import type Loc from "../../Models/Loc"
import type { LayoutInformation } from "../../Models/ThemeConfig/LayoutConfig"; import type { LayoutInformation } from "../../Models/ThemeConfig/LayoutConfig"
export let theme: LayoutInformation export let theme: LayoutInformation
export let isCustom: boolean = false export let isCustom: boolean = false

View file

@ -40,14 +40,13 @@ const mode = QueryParameters.GetQueryParameter(
"map", "map",
"The mode the application starts in, e.g. 'statistics'" "The mode the application starts in, e.g. 'statistics'"
) )
const cm = document.getElementById("centermessage")
cm.parentElement.removeChild(cm)
if (mode.data === "statistics") { if (mode.data === "statistics") {
console.log("Statistics mode!") console.log("Statistics mode!")
new FixedUiElement("").AttachTo("centermessage")
new StatisticsGUI().SetClass("w-full h-full pointer-events-auto").AttachTo("topleft-tools") new StatisticsGUI().SetClass("w-full h-full pointer-events-auto").AttachTo("topleft-tools")
} else if (mode.data === "pdf") { } else if (mode.data === "pdf") {
MinimapImplementation.initialize() MinimapImplementation.initialize()
new FixedUiElement("").AttachTo("centermessage")
const div = document.createElement("div") const div = document.createElement("div")
div.id = "extra_div_for_maps" div.id = "extra_div_for_maps"
new PdfExportGui(div.id).SetClass("pointer-events-auto").AttachTo("topleft-tools") new PdfExportGui(div.id).SetClass("pointer-events-auto").AttachTo("topleft-tools")

View file

@ -1,11 +1,11 @@
{ {
"contributors": [ "contributors": [
{ {
"commits": 5097, "commits": 5182,
"contributor": "Pieter Vander Vennet" "contributor": "Pieter Vander Vennet"
}, },
{ {
"commits": 339, "commits": 341,
"contributor": "Robin van der Linde" "contributor": "Robin van der Linde"
}, },
{ {
@ -44,6 +44,10 @@
"commits": 24, "commits": 24,
"contributor": "Ward" "contributor": "Ward"
}, },
{
"commits": 21,
"contributor": "wjtje"
},
{ {
"commits": 21, "commits": 21,
"contributor": "AlexanderRebai" "contributor": "AlexanderRebai"
@ -88,10 +92,6 @@
"commits": 13, "commits": 13,
"contributor": "Nicole" "contributor": "Nicole"
}, },
{
"commits": 12,
"contributor": "wjtje"
},
{ {
"commits": 12, "commits": 12,
"contributor": "Tobias Jordans" "contributor": "Tobias Jordans"

View file

@ -324,7 +324,6 @@
"hideInAnswer": true "hideInAnswer": true
} }
] ]
}, },
{ {
"id": "max_bolts", "id": "max_bolts",

View file

@ -78,25 +78,6 @@
"key": "colour" "key": "colour"
}, },
"mappings": [ "mappings": [
{
"if": {
"and": [
"colour="
]
},
"then": {
"en": "The hydrant color is unknown.",
"ja": "消火栓の色は不明です。",
"ru": "Цвет гидранта не определён.",
"fr": "La borne est de couleur inconnue.",
"de": "Die Farbe des Hydranten ist unbekannt.",
"it": "Il colore dellidrante è sconosciuto.",
"nl": "De kleur van de brandkraan is onbekend.",
"es": "Se desconoce el color de la boca de incendios.",
"ca": "El color de l'hidrant és desconegut."
},
"hideInAnswer": true
},
{ {
"if": { "if": {
"and": [ "and": [
@ -162,24 +143,6 @@
"es": " Tipo de boca de incendios: {fire_hydrant:type}" "es": " Tipo de boca de incendios: {fire_hydrant:type}"
}, },
"mappings": [ "mappings": [
{
"if": {
"and": [
"fire_hydrant:type="
]
},
"then": {
"en": "The hydrant type is unknown.",
"ja": "消火栓の種類は不明です。",
"it": "Il tipo di idrante è sconosciuto.",
"ru": "Тип гидранта не определён.",
"fr": "La borne est de type inconnu.",
"de": "Der Typ des Hydranten ist unbekannt.",
"nl": "Het type brandkraan is onbekend.",
"es": "Se desconoce el tipo de la boca de incendios"
},
"hideInAnswer": true
},
{ {
"if": { "if": {
"and": [ "and": [

View file

@ -1,7 +1,8 @@
{ {
"id": "icons", "id": "icons",
"description": { "description": {
"en": "A layer acting as library for icon-tagrenderings, especially to show as badge next to a POI" "en": "A layer acting as library for icon-tagrenderings, especially to show as badge next to a POI",
"de": "Eine Ebene, die als Bibliothek für Symbol-Tag-Renderings dient, insbesondere um als Abzeichen neben einem POI angezeigt zu werden"
}, },
"source": { "source": {
"osmTags": "id~*" "osmTags": "id~*"

View file

@ -316,7 +316,8 @@
], ],
"questionHint": { "questionHint": {
"en": "Ad-hoc measures are not enough to count as a special-needs school", "en": "Ad-hoc measures are not enough to count as a special-needs school",
"nl": "Ad-hoc maatregelen zijn niet voldoende " "nl": "Ad-hoc maatregelen zijn niet voldoende ",
"de": "Ad-hoc-Maßnahmen reichen nicht aus, um als Förderschule zu gelten"
} }
}, },
"website", "website",

View file

@ -1,13 +1,16 @@
{ {
"id": "mapcomplete-changes", "id": "mapcomplete-changes",
"title": { "title": {
"en": "Changes made with MapComplete" "en": "Changes made with MapComplete",
"de": "Mit MapComplete vorgenommene Änderungen"
}, },
"shortDescription": { "shortDescription": {
"en": "Shows changes made by MapComplete" "en": "Shows changes made by MapComplete",
"de": "Zeigt Änderungen, die von MapComplete vorgenommen wurden"
}, },
"description": { "description": {
"en": "This maps shows all the changes made with MapComplete" "en": "This maps shows all the changes made with MapComplete",
"de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen"
}, },
"icon": "./assets/svg/logo.svg", "icon": "./assets/svg/logo.svg",
"hideFromOverview": true, "hideFromOverview": true,
@ -20,7 +23,8 @@
{ {
"id": "mapcomplete-changes", "id": "mapcomplete-changes",
"name": { "name": {
"en": "Changeset centers" "en": "Changeset centers",
"de": "Zentrum der Änderungssätze"
}, },
"minzoom": 0, "minzoom": 0,
"source": { "source": {
@ -31,41 +35,48 @@
}, },
"title": { "title": {
"render": { "render": {
"en": "Changeset for {theme}" "en": "Changeset for {theme}",
"de": "Änderungssatz für {theme}"
} }
}, },
"description": { "description": {
"en": "Shows all MapComplete changes" "en": "Shows all MapComplete changes",
"de": "Zeigt alle MapComplete-Änderungen"
}, },
"tagRenderings": [ "tagRenderings": [
{ {
"id": "show_changeset_id", "id": "show_changeset_id",
"render": { "render": {
"en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>" "en": "Changeset <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>",
"de": "Änderungssatz <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
} }
}, },
{ {
"id": "contributor", "id": "contributor",
"question": { "question": {
"en": "What contributor did make this change?" "en": "What contributor did make this change?",
"de": "Welcher Mitwirkende hat diese Änderung vorgenommen?"
}, },
"freeform": { "freeform": {
"key": "user" "key": "user"
}, },
"render": { "render": {
"en": "Change made by <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>" "en": "Change made by <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>",
"de": "Änderung vorgenommen von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
} }
}, },
{ {
"id": "theme-id", "id": "theme-id",
"question": { "question": {
"en": "What theme was used to make this change?" "en": "What theme was used to make this change?",
"de": "Welches Thema wurde für diese Änderung verwendet?"
}, },
"freeform": { "freeform": {
"key": "theme" "key": "theme"
}, },
"render": { "render": {
"en": "Change with theme <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>" "en": "Change with theme <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>",
"de": "Geändert mit Thema <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
} }
}, },
{ {
@ -74,19 +85,23 @@
"key": "locale" "key": "locale"
}, },
"question": { "question": {
"en": "What locale (language) was this change made in?" "en": "What locale (language) was this change made in?",
"de": "In welchem Gebietsschema (Sprache) wurde diese Änderung vorgenommen?"
}, },
"render": { "render": {
"en": "User locale is {locale}" "en": "User locale is {locale}",
"de": "Benutzergebietsschema ist {locale}"
} }
}, },
{ {
"id": "host", "id": "host",
"render": { "render": {
"en": "Change with with <a href='{host}'>{host}</a>" "en": "Change with with <a href='{host}'>{host}</a>",
"de": "Geändert über <a href='{host}'>{host}</a>"
}, },
"question": { "question": {
"en": "What host (website) was this change made with?" "en": "What host (website) was this change made with?",
"de": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?"
}, },
"freeform": { "freeform": {
"key": "host" "key": "host"
@ -431,7 +446,8 @@
} }
], ],
"question": { "question": {
"en": "Themename contains {search}" "en": "Themename contains {search}",
"de": "Themename enthält {search}"
} }
} }
] ]
@ -447,7 +463,8 @@
} }
], ],
"question": { "question": {
"en": "Made by contributor {search}" "en": "Made by contributor {search}",
"de": "Erstellt von {search}"
} }
} }
] ]
@ -463,7 +480,8 @@
} }
], ],
"question": { "question": {
"en": "<b>Not</b> made by contributor {search}" "en": "<b>Not</b> made by contributor {search}",
"de": "<b>Nicht</b> erstellt von {search}"
} }
} }
] ]
@ -480,7 +498,8 @@
} }
], ],
"question": { "question": {
"en": "Made before {search}" "en": "Made before {search}",
"de": "Erstellt vor {search}"
} }
} }
] ]
@ -497,7 +516,8 @@
} }
], ],
"question": { "question": {
"en": "Made after {search}" "en": "Made after {search}",
"de": "Erstellt nach {search}"
} }
} }
] ]
@ -513,7 +533,8 @@
} }
], ],
"question": { "question": {
"en": "User language (iso-code) {search}" "en": "User language (iso-code) {search}",
"de": "Benutzersprache (ISO-Code) {search}"
} }
} }
] ]
@ -529,7 +550,8 @@
} }
], ],
"question": { "question": {
"en": "Made with host {search}" "en": "Made with host {search}",
"de": "Erstellt mit host {search}"
} }
} }
] ]
@ -540,7 +562,8 @@
{ {
"osmTags": "add-image>0", "osmTags": "add-image>0",
"question": { "question": {
"en": "Changeset added at least one image" "en": "Changeset added at least one image",
"de": "Im Änderungssatz wurde mindestens ein Bild hinzugefügt"
} }
} }
] ]
@ -555,7 +578,8 @@
{ {
"id": "link_to_more", "id": "link_to_more",
"render": { "render": {
"en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>" "en": "More statistics can be found <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>here</a>",
"de": "Weitere Statistiken <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
} }
}, },
{ {

View file

@ -1,7 +1,7 @@
{ {
"contributors": [ "contributors": [
{ {
"commits": 250, "commits": 253,
"contributor": "kjon" "contributor": "kjon"
}, },
{ {
@ -176,6 +176,10 @@
"commits": 6, "commits": 6,
"contributor": "lvgx" "contributor": "lvgx"
}, },
{
"commits": 5,
"contributor": "Ettore Atalan"
},
{ {
"commits": 5, "commits": 5,
"contributor": "ⵣⵓⵀⵉⵔ ⴰⵎⴰⵣⵉⵖ ZOUHIR DEHBI" "contributor": "ⵣⵓⵀⵉⵔ ⴰⵎⴰⵣⵉⵖ ZOUHIR DEHBI"
@ -212,10 +216,6 @@
"commits": 5, "commits": 5,
"contributor": "Alexey Shabanov" "contributor": "Alexey Shabanov"
}, },
{
"commits": 4,
"contributor": "Ettore Atalan"
},
{ {
"commits": 4, "commits": 4,
"contributor": "gallegonovato" "contributor": "gallegonovato"

View file

@ -5,6 +5,12 @@
"retrying": "Laden von Daten fehlgeschlagen. Erneuter Versuch in {count} Sekunden…", "retrying": "Laden von Daten fehlgeschlagen. Erneuter Versuch in {count} Sekunden…",
"zoomIn": "Ausschnitt vergrößern, um Daten anzuzeigen oder zu bearbeiten" "zoomIn": "Ausschnitt vergrößern, um Daten anzuzeigen oder zu bearbeiten"
}, },
"communityIndex": {
"available": "Diese Gemeinschaft spricht {native}",
"intro": "Treten Sie mit anderen Menschen in Kontakt, um sie kennen zu lernen, von ihnen zu lernen, ...",
"notAvailable": "Diese Gemeinschaft spricht nicht {native}",
"title": "Community index"
},
"delete": { "delete": {
"cancel": "Abbrechen", "cancel": "Abbrechen",
"cannotBeDeleted": "Dieses Element kann nicht gelöscht werden", "cannotBeDeleted": "Dieses Element kann nicht gelöscht werden",

View file

@ -1859,12 +1859,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "El color de l'hidrant és desconegut."
},
"1": {
"then": "L'hidrant és de color groc." "then": "L'hidrant és de color groc."
}, },
"2": { "1": {
"then": "L'hidrant és de color roig." "then": "L'hidrant és de color roig."
} }
}, },
@ -1909,16 +1906,16 @@
}, },
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"1": { "0": {
"then": "De pilar." "then": "De pilar."
}, },
"2": { "1": {
"then": "De tuberia." "then": "De tuberia."
}, },
"3": { "2": {
"then": "De paret." "then": "De paret."
}, },
"4": { "3": {
"then": "Subterrani." "then": "Subterrani."
} }
}, },

View file

@ -4907,12 +4907,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Die Farbe des Hydranten ist unbekannt."
},
"1": {
"then": "Die Farbe des Hydranten ist gelb." "then": "Die Farbe des Hydranten ist gelb."
}, },
"2": { "1": {
"then": "Die Farbe des Hydranten ist rot." "then": "Die Farbe des Hydranten ist rot."
} }
}, },
@ -4975,18 +4972,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Der Typ des Hydranten ist unbekannt."
},
"1": {
"then": "Überflurhydrant." "then": "Überflurhydrant."
}, },
"2": { "1": {
"then": "Druckloses Rohr." "then": "Druckloses Rohr."
}, },
"3": { "2": {
"then": "Wandhydrant." "then": "Wandhydrant."
}, },
"4": { "3": {
"then": "Unterflurhydrant." "then": "Unterflurhydrant."
} }
}, },
@ -5008,6 +5002,9 @@
} }
} }
}, },
"icons": {
"description": "Eine Ebene, die als Bibliothek für Symbol-Tag-Renderings dient, insbesondere um als Abzeichen neben einem POI angezeigt zu werden"
},
"indoors": { "indoors": {
"description": "Grundlegende Innenraumkartierung: zeigt Umrisse von Räumen", "description": "Grundlegende Innenraumkartierung: zeigt Umrisse von Räumen",
"name": "Innenräume", "name": "Innenräume",
@ -6990,6 +6987,7 @@
} }
}, },
"question": "Richtet sich diese Schule an Schüler mit besonderem Förderbedarf? Über welche strukturellen Einrichtungen verfügt diese Schule?", "question": "Richtet sich diese Schule an Schüler mit besonderem Förderbedarf? Über welche strukturellen Einrichtungen verfügt diese Schule?",
"questionHint": "Ad-hoc-Maßnahmen reichen nicht aus, um als Förderschule zu gelten",
"render": "Diese Schule verfügt über Einrichtungen für Schüler mit {school:for}" "render": "Diese Schule verfügt über Einrichtungen für Schüler mit {school:for}"
} }
}, },

View file

@ -4907,12 +4907,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "The hydrant color is unknown."
},
"1": {
"then": "The hydrant color is yellow." "then": "The hydrant color is yellow."
}, },
"2": { "1": {
"then": "The hydrant color is red." "then": "The hydrant color is red."
} }
}, },
@ -4975,18 +4972,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "The hydrant type is unknown."
},
"1": {
"then": "Pillar type." "then": "Pillar type."
}, },
"2": { "1": {
"then": "Pipe type." "then": "Pipe type."
}, },
"3": { "2": {
"then": "Wall type." "then": "Wall type."
}, },
"4": { "3": {
"then": "Underground type." "then": "Underground type."
} }
}, },

View file

@ -2617,12 +2617,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Se desconoce el color de la boca de incendios."
},
"1": {
"then": "La boca de incendios es amarilla." "then": "La boca de incendios es amarilla."
}, },
"2": { "1": {
"then": "La boca de incendios es roja." "then": "La boca de incendios es roja."
} }
}, },
@ -2646,18 +2643,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Se desconoce el tipo de la boca de incendios"
},
"1": {
"then": "De pilar." "then": "De pilar."
}, },
"2": { "1": {
"then": "De tubería." "then": "De tubería."
}, },
"3": { "2": {
"then": "De pared." "then": "De pared."
}, },
"4": { "3": {
"then": "Bajo tierra." "then": "Bajo tierra."
} }
}, },

View file

@ -3193,12 +3193,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "La borne est de couleur inconnue."
},
"1": {
"then": "La borne est jaune." "then": "La borne est jaune."
}, },
"2": { "1": {
"then": "La borne est rouge." "then": "La borne est rouge."
} }
}, },
@ -3222,18 +3219,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "La borne est de type inconnu."
},
"1": {
"then": "Pilier." "then": "Pilier."
}, },
"2": { "1": {
"then": "Tuyau." "then": "Tuyau."
}, },
"3": { "2": {
"then": "Mural." "then": "Mural."
}, },
"4": { "3": {
"then": "Enterré." "then": "Enterré."
} }
}, },

View file

@ -349,7 +349,7 @@
"tagRenderings": { "tagRenderings": {
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"3": { "2": {
"then": "Jenis dinding." "then": "Jenis dinding."
} }
} }

View file

@ -1354,12 +1354,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Il colore dellidrante è sconosciuto."
},
"1": {
"then": "Il colore dellidrante è giallo." "then": "Il colore dellidrante è giallo."
}, },
"2": { "1": {
"then": "L'idrante è rosso." "then": "L'idrante è rosso."
} }
}, },
@ -1383,18 +1380,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Il tipo di idrante è sconosciuto."
},
"1": {
"then": "Soprasuolo." "then": "Soprasuolo."
}, },
"2": { "1": {
"then": "Tubo." "then": "Tubo."
}, },
"3": { "2": {
"then": "A muro." "then": "A muro."
}, },
"4": { "3": {
"then": "Sottosuolo." "then": "Sottosuolo."
} }
}, },

View file

@ -454,12 +454,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "消火栓の色は不明です。"
},
"1": {
"then": "消火栓の色は黄色です。" "then": "消火栓の色は黄色です。"
}, },
"2": { "1": {
"then": "消火栓の色は赤です。" "then": "消火栓の色は赤です。"
} }
}, },
@ -483,18 +480,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "消火栓の種類は不明です。"
},
"1": {
"then": "ピラー型。" "then": "ピラー型。"
}, },
"2": { "1": {
"then": "パイプ型。" "then": "パイプ型。"
}, },
"3": { "2": {
"then": "壁型。" "then": "壁型。"
}, },
"4": { "3": {
"then": "地下式。" "then": "地下式。"
} }
}, },

View file

@ -4811,12 +4811,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "De kleur van de brandkraan is onbekend."
},
"1": {
"then": "De brandkraan is geel." "then": "De brandkraan is geel."
}, },
"2": { "1": {
"then": "De brandkraan is rood." "then": "De brandkraan is rood."
} }
}, },
@ -4879,18 +4876,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Het type brandkraan is onbekend."
},
"1": {
"then": "Pillaar type." "then": "Pillaar type."
}, },
"2": { "1": {
"then": "Buis type." "then": "Buis type."
}, },
"3": { "2": {
"then": "Muur type." "then": "Muur type."
}, },
"4": { "3": {
"then": "Ondergronds type." "then": "Ondergronds type."
} }
}, },

View file

@ -1059,12 +1059,9 @@
"hydrant-color": { "hydrant-color": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Цвет гидранта не определён."
},
"1": {
"then": "Гидрант жёлтого цвета." "then": "Гидрант жёлтого цвета."
}, },
"2": { "1": {
"then": "Гидрант красного цвета." "then": "Гидрант красного цвета."
} }
}, },
@ -1120,18 +1117,15 @@
"hydrant-type": { "hydrant-type": {
"mappings": { "mappings": {
"0": { "0": {
"then": "Тип гидранта не определён."
},
"1": {
"then": "Наземный." "then": "Наземный."
}, },
"2": { "1": {
"then": "Труба." "then": "Труба."
}, },
"3": { "2": {
"then": "Настенный." "then": "Настенный."
}, },
"4": { "3": {
"then": "Подземный." "then": "Подземный."
} }
}, },

View file

@ -766,6 +766,108 @@
"description": "Eine Karte mit Bordsteinen und Überwegen.", "description": "Eine Karte mit Bordsteinen und Überwegen.",
"title": "Bordsteine und Überwege" "title": "Bordsteine und Überwege"
}, },
"mapcomplete-changes": {
"description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
"layers": {
"0": {
"description": "Zeigt alle MapComplete-Änderungen",
"filter": {
"0": {
"options": {
"0": {
"question": "Themename enthält {search}"
}
}
},
"1": {
"options": {
"0": {
"question": "Erstellt von {search}"
}
}
},
"2": {
"options": {
"0": {
"question": "<b>Nicht</b> erstellt von {search}"
}
}
},
"3": {
"options": {
"0": {
"question": "Erstellt vor {search}"
}
}
},
"4": {
"options": {
"0": {
"question": "Erstellt nach {search}"
}
}
},
"5": {
"options": {
"0": {
"question": "Benutzersprache (ISO-Code) {search}"
}
}
},
"6": {
"options": {
"0": {
"question": "Erstellt mit host {search}"
}
}
},
"7": {
"options": {
"0": {
"question": "Im Änderungssatz wurde mindestens ein Bild hinzugefügt"
}
}
}
},
"name": "Zentrum der Änderungssätze",
"tagRenderings": {
"contributor": {
"question": "Welcher Mitwirkende hat diese Änderung vorgenommen?",
"render": "Änderung vorgenommen von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
},
"host": {
"question": "Über welchen Host (Webseite) wurde diese Änderung vorgenommen?",
"render": "Geändert über <a href='{host}'>{host}</a>"
},
"locale": {
"question": "In welchem Gebietsschema (Sprache) wurde diese Änderung vorgenommen?",
"render": "Benutzergebietsschema ist {locale}"
},
"show_changeset_id": {
"render": "Änderungssatz <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
},
"theme-id": {
"question": "Welches Thema wurde für diese Änderung verwendet?",
"render": "Geändert mit Thema <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
}
},
"title": {
"render": "Änderungssatz für {theme}"
}
},
"1": {
"override": {
"tagRenderings": {
"link_to_more": {
"render": "Weitere Statistiken <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
}
}
}
}
},
"shortDescription": "Zeigt Änderungen, die von MapComplete vorgenommen wurden",
"title": "Mit MapComplete vorgenommene Änderungen"
},
"maproulette": { "maproulette": {
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.", "description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
"title": "MapRoulette-Aufgaben" "title": "MapRoulette-Aufgaben"

View file

@ -57,7 +57,9 @@ describe("ChangesetHanlder", () => {
const d = Utils.asDict(rewritten) const d = Utils.asDict(rewritten)
expect(d.size).toEqual(10) expect(d.size).toEqual(10)
expect(d.get("answer")).toEqual("5") expect(d.get("answer")).toEqual("5")
expect(d.get("comment")).toEqual("Adding data with #MapComplete for theme #toerisme_vlaanderen") expect(d.get("comment")).toEqual(
"Adding data with #MapComplete for theme #toerisme_vlaanderen"
)
expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("created_by")).toEqual("MapComplete 0.16.6")
expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html") expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
expect(d.get("imagery")).toEqual("osm") expect(d.get("imagery")).toEqual("osm")
@ -115,7 +117,9 @@ describe("ChangesetHanlder", () => {
expect(d.size).toEqual(9) expect(d.size).toEqual(9)
expect(d.get("answer")).toEqual("42") expect(d.get("answer")).toEqual("42")
expect(d.get("comment")).toEqual("Adding data with #MapComplete for theme #toerisme_vlaanderen") expect(d.get("comment")).toEqual(
"Adding data with #MapComplete for theme #toerisme_vlaanderen"
)
expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("created_by")).toEqual("MapComplete 0.16.6")
expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html") expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
expect(d.get("imagery")).toEqual("osm") expect(d.get("imagery")).toEqual("osm")
@ -166,7 +170,9 @@ describe("ChangesetHanlder", () => {
expect(d.size).toEqual(9) expect(d.size).toEqual(9)
expect(d.get("answer")).toEqual("5") expect(d.get("answer")).toEqual("5")
expect(d.get("comment")).toEqual("Adding data with #MapComplete for theme #toerisme_vlaanderen") expect(d.get("comment")).toEqual(
"Adding data with #MapComplete for theme #toerisme_vlaanderen"
)
expect(d.get("created_by")).toEqual("MapComplete 0.16.6") expect(d.get("created_by")).toEqual("MapComplete 0.16.6")
expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html") expect(d.get("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
expect(d.get("imagery")).toEqual("osm") expect(d.get("imagery")).toEqual("osm")

View file

@ -258,7 +258,8 @@ describe("Tag optimalization", () => {
) )
*/ */
expect(opt).toEqual(TagUtils.Tag({ expect(opt).toEqual(
TagUtils.Tag({
or: [ or: [
"club=climbing", "club=climbing",
{ {
@ -283,6 +284,7 @@ describe("Tag optimalization", () => {
], ],
}, },
], ],
})) })
)
}) })
}) })

View file

@ -2,7 +2,6 @@ import { TagUtils } from "../../../Logic/Tags/TagUtils"
import { equal } from "assert" import { equal } from "assert"
import { describe, expect, it } from "vitest" import { describe, expect, it } from "vitest"
describe("TagUtils", () => { describe("TagUtils", () => {
describe("ParseTag", () => { describe("ParseTag", () => {
it("should refuse a key!=* tag", () => { it("should refuse a key!=* tag", () => {

View file

@ -23,7 +23,9 @@ describe("CreateNoteImportLayer", () => {
layer, layer,
"ImportLayerGeneratorTest: convert" "ImportLayerGeneratorTest: convert"
) )
expect(generatedLayer.isShown["and"][1].or[0].and[0]).toEqual("_tags~(^|.*;)amenity=public_bookcase($|;.*)") expect(generatedLayer.isShown["and"][1].or[0].and[0]).toEqual(
"_tags~(^|.*;)amenity=public_bookcase($|;.*)"
)
// "Zoomlevel is to high" // "Zoomlevel is to high"
expect(generatedLayer.minzoom <= layer.minzoom).toBe(true) expect(generatedLayer.minzoom <= layer.minzoom).toBe(true)
let renderings = Utils.NoNull( let renderings = Utils.NoNull(