Merge branch 'master' into develop
This commit is contained in:
commit
f12b79754e
53 changed files with 315 additions and 259 deletions
|
@ -14,7 +14,6 @@ import { LoginToggle } from "./Popup/LoginButton"
|
|||
export default class AllThemesGui {
|
||||
setup() {
|
||||
try {
|
||||
new FixedUiElement("").AttachTo("centermessage")
|
||||
const state = new UserRelatedState(undefined)
|
||||
const intro = new Combine([
|
||||
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!"
|
||||
)
|
||||
.SetClass("alert")
|
||||
.AttachTo("centermessage")
|
||||
.AttachTo("top-left")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,62 +1,63 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from "svelte";
|
||||
import { Store } from "../../Logic/UIEventSource";
|
||||
import BaseUIElement from "../BaseUIElement";
|
||||
import Img from "./Img";
|
||||
import Translations from "../i18n/Translations";
|
||||
import { ImmutableStore } from "../../Logic/UIEventSource.js";
|
||||
import { onMount } from "svelte"
|
||||
import { Store } from "../../Logic/UIEventSource"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import Img from "./Img"
|
||||
import Translations from "../i18n/Translations"
|
||||
import { ImmutableStore } from "../../Logic/UIEventSource.js"
|
||||
|
||||
export let imageUrl: string | BaseUIElement = undefined;
|
||||
export let message: string | BaseUIElement = undefined;
|
||||
export let imageUrl: string | BaseUIElement = undefined
|
||||
export let message: string | BaseUIElement = undefined
|
||||
export let options: {
|
||||
url?: string | Store<string>
|
||||
newTab?: boolean
|
||||
imgSize?: string
|
||||
extraClasses?: string
|
||||
} = {};
|
||||
} = {}
|
||||
|
||||
// Website to open when clicked
|
||||
let href : Store<string> = undefined
|
||||
if(options?.url){
|
||||
href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url;
|
||||
let href: Store<string> = undefined
|
||||
if (options?.url) {
|
||||
href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url
|
||||
}
|
||||
|
||||
let imgElem: HTMLElement;
|
||||
let msgElem: HTMLElement;
|
||||
let imgClasses = "block justify-center shrink-0 mr-4 " + (options?.imgSize ?? "h-11 w-11");
|
||||
let imgElem: HTMLElement
|
||||
let msgElem: HTMLElement
|
||||
let imgClasses = "block justify-center shrink-0 mr-4 " + (options?.imgSize ?? "h-11 w-11")
|
||||
|
||||
onMount(() => {
|
||||
// Image
|
||||
if (imgElem && imageUrl) {
|
||||
let img: BaseUIElement;
|
||||
let img: BaseUIElement
|
||||
|
||||
if ((imageUrl ?? "") === "") {
|
||||
img = undefined;
|
||||
img = undefined
|
||||
} 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
|
||||
if (msgElem && message) {
|
||||
let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink");
|
||||
msgElem.replaceWith(msg.ConstructElement());
|
||||
let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink")
|
||||
msgElem.replaceWith(msg.ConstructElement())
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
|
||||
<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}
|
||||
target={options?.newTab ? "_blank" : ""}
|
||||
this={href === undefined ? "span" : "a"}
|
||||
>
|
||||
<slot name="image">
|
||||
{#if imageUrl !== undefined}
|
||||
{#if typeof imageUrl === "string"}
|
||||
<Img src={imageUrl} class={imgClasses+ " bg-red border border-black"}></Img>
|
||||
{:else }
|
||||
<Img src={imageUrl} class={imgClasses + " bg-red border border-black"} />
|
||||
{:else}
|
||||
<template bind:this={imgElem} />
|
||||
{/if}
|
||||
{/if}
|
||||
|
@ -68,7 +69,6 @@
|
|||
</svelte:element>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
span,
|
||||
a {
|
||||
@apply flex p-3 my-2 py-4 rounded-lg shrink-0;
|
||||
|
|
|
@ -13,7 +13,7 @@ export class SubtleButton extends UIElement {
|
|||
private readonly options: {
|
||||
url?: string | Store<string>
|
||||
newTab?: boolean
|
||||
imgSize?: string,
|
||||
imgSize?: string
|
||||
extraClasses?: string
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ export class SubtleButton extends UIElement {
|
|||
options: {
|
||||
url?: string | Store<string>
|
||||
newTab?: boolean
|
||||
imgSize?: "h-11 w-11" | string,
|
||||
imgSize?: "h-11 w-11" | string
|
||||
extraClasses?: string
|
||||
} = {}
|
||||
) {
|
||||
|
|
|
@ -29,8 +29,8 @@
|
|||
url: "https://pietervdvn.github.io/mc/legacy/070/customGenerator.html",
|
||||
}}
|
||||
>
|
||||
<span slot="image" class="h-11 w-11 mx-4 bg-red" >
|
||||
<ToSvelte construct={Svg.pencil_ui()}/>
|
||||
<span slot="image" class="h-11 w-11 mx-4 bg-red">
|
||||
<ToSvelte construct={Svg.pencil_ui()} />
|
||||
</span>
|
||||
<span slot="message">{t.createYourOwnTheme.toString()}</span>
|
||||
</SubtleButton>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
import UserDetails, { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||
import Constants from "../../Models/Constants"
|
||||
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 isCustom: boolean = false
|
||||
|
|
|
@ -40,14 +40,13 @@ const mode = QueryParameters.GetQueryParameter(
|
|||
"map",
|
||||
"The mode the application starts in, e.g. 'statistics'"
|
||||
)
|
||||
|
||||
const cm = document.getElementById("centermessage")
|
||||
cm.parentElement.removeChild(cm)
|
||||
if (mode.data === "statistics") {
|
||||
console.log("Statistics mode!")
|
||||
new FixedUiElement("").AttachTo("centermessage")
|
||||
new StatisticsGUI().SetClass("w-full h-full pointer-events-auto").AttachTo("topleft-tools")
|
||||
} else if (mode.data === "pdf") {
|
||||
MinimapImplementation.initialize()
|
||||
new FixedUiElement("").AttachTo("centermessage")
|
||||
const div = document.createElement("div")
|
||||
div.id = "extra_div_for_maps"
|
||||
new PdfExportGui(div.id).SetClass("pointer-events-auto").AttachTo("topleft-tools")
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"contributors": [
|
||||
{
|
||||
"commits": 5097,
|
||||
"commits": 5182,
|
||||
"contributor": "Pieter Vander Vennet"
|
||||
},
|
||||
{
|
||||
"commits": 339,
|
||||
"commits": 341,
|
||||
"contributor": "Robin van der Linde"
|
||||
},
|
||||
{
|
||||
|
@ -44,6 +44,10 @@
|
|||
"commits": 24,
|
||||
"contributor": "Ward"
|
||||
},
|
||||
{
|
||||
"commits": 21,
|
||||
"contributor": "wjtje"
|
||||
},
|
||||
{
|
||||
"commits": 21,
|
||||
"contributor": "AlexanderRebai"
|
||||
|
@ -88,10 +92,6 @@
|
|||
"commits": 13,
|
||||
"contributor": "Nicole"
|
||||
},
|
||||
{
|
||||
"commits": 12,
|
||||
"contributor": "wjtje"
|
||||
},
|
||||
{
|
||||
"commits": 12,
|
||||
"contributor": "Tobias Jordans"
|
||||
|
|
|
@ -345,4 +345,4 @@
|
|||
}
|
||||
],
|
||||
"deletion": true
|
||||
}
|
||||
}
|
|
@ -315,4 +315,4 @@
|
|||
"cs": "Vrstva zobrazující automaty na cyklistické duše (buď speciální automaty na cyklistické duše, nebo klasické automaty s cyklistickými dušemi a případně dalšími předměty souvisejícími s jízdními koly, jako jsou světla, rukavice, zámky, ...)",
|
||||
"ca": "Una capa que mostra màquines expenedores per a tubs de bicicleta (ja siguin màquines expenedores de tubs de bicicleta o màquines expenedores clàssiques amb tubs de bicicleta i opcionalment objectes addicionals relacionats amb la bicicleta com ara llums, guants, panys, ...)"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1015,4 +1015,4 @@
|
|||
"fr": "Une couche montrant les pompes à vélo et les centres de réparation",
|
||||
"cs": "Vrstva zobrazující vzduchové kompresory na jízdní kola a stojany na nářadí pro opravu jízdních kol"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -815,4 +815,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -360,4 +360,4 @@
|
|||
"da": "Et lag med caféer og pubber, hvor man kan samles omkring en drink. Laget stiller nogle relevante spørgsmål",
|
||||
"fr": "Une couche montrants les cafés et pubs où l’on peut prendre un verre. Cette couche pose des questions y afférentes."
|
||||
}
|
||||
}
|
||||
}
|
|
@ -5065,4 +5065,4 @@
|
|||
},
|
||||
"neededChangesets": 10
|
||||
}
|
||||
}
|
||||
}
|
|
@ -324,7 +324,6 @@
|
|||
"hideInAnswer": true
|
||||
}
|
||||
]
|
||||
|
||||
},
|
||||
{
|
||||
"id": "max_bolts",
|
||||
|
@ -404,4 +403,4 @@
|
|||
}
|
||||
],
|
||||
"mapRendering": null
|
||||
}
|
||||
}
|
|
@ -186,4 +186,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -246,4 +246,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -177,4 +177,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -102,4 +102,4 @@
|
|||
"filter": [
|
||||
"open_now"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -410,4 +410,4 @@
|
|||
"filter": [
|
||||
"open_now"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -239,4 +239,4 @@
|
|||
"nl": "Een laag die herdenkingsplaatsen voor verongelukte fietsers toont",
|
||||
"de": "Eine Ebene mit Gedenkstätten für Radfahrer, die bei Verkehrsunfällen ums Leben gekommen sind"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -47,4 +47,4 @@
|
|||
}
|
||||
],
|
||||
"syncSelection": "global"
|
||||
}
|
||||
}
|
|
@ -99,4 +99,4 @@
|
|||
"width": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -78,25 +78,6 @@
|
|||
"key": "colour"
|
||||
},
|
||||
"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 dell’idrante è 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": {
|
||||
"and": [
|
||||
|
@ -162,24 +143,6 @@
|
|||
"es": " Tipo de boca de incendios: {fire_hydrant:type}"
|
||||
},
|
||||
"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": {
|
||||
"and": [
|
||||
|
@ -569,4 +532,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"id": "icons",
|
||||
"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": {
|
||||
"osmTags": "id~*"
|
||||
|
|
|
@ -269,4 +269,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -174,4 +174,4 @@
|
|||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -451,4 +451,4 @@
|
|||
"width": "1"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -316,7 +316,8 @@
|
|||
],
|
||||
"questionHint": {
|
||||
"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",
|
||||
|
@ -397,4 +398,4 @@
|
|||
"width": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -411,4 +411,4 @@
|
|||
"accepts_cards",
|
||||
"has_organic"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -670,4 +670,4 @@
|
|||
},
|
||||
"open_now"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -68,4 +68,4 @@
|
|||
"filter": [
|
||||
"open_now"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -755,4 +755,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -454,4 +454,4 @@
|
|||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -116,4 +116,4 @@
|
|||
"id": "vetName"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -613,4 +613,4 @@
|
|||
]
|
||||
},
|
||||
"credits": "Pieter Vander Vennet"
|
||||
}
|
||||
}
|
|
@ -1,13 +1,16 @@
|
|||
{
|
||||
"id": "mapcomplete-changes",
|
||||
"title": {
|
||||
"en": "Changes made with MapComplete"
|
||||
"en": "Changes made with MapComplete",
|
||||
"de": "Mit MapComplete vorgenommene Änderungen"
|
||||
},
|
||||
"shortDescription": {
|
||||
"en": "Shows changes made by MapComplete"
|
||||
"en": "Shows changes made by MapComplete",
|
||||
"de": "Zeigt Änderungen, die von MapComplete vorgenommen wurden"
|
||||
},
|
||||
"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",
|
||||
"hideFromOverview": true,
|
||||
|
@ -20,7 +23,8 @@
|
|||
{
|
||||
"id": "mapcomplete-changes",
|
||||
"name": {
|
||||
"en": "Changeset centers"
|
||||
"en": "Changeset centers",
|
||||
"de": "Zentrum der Änderungssätze"
|
||||
},
|
||||
"minzoom": 0,
|
||||
"source": {
|
||||
|
@ -31,41 +35,48 @@
|
|||
},
|
||||
"title": {
|
||||
"render": {
|
||||
"en": "Changeset for {theme}"
|
||||
"en": "Changeset for {theme}",
|
||||
"de": "Änderungssatz für {theme}"
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"en": "Shows all MapComplete changes"
|
||||
"en": "Shows all MapComplete changes",
|
||||
"de": "Zeigt alle MapComplete-Änderungen"
|
||||
},
|
||||
"tagRenderings": [
|
||||
{
|
||||
"id": "show_changeset_id",
|
||||
"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",
|
||||
"question": {
|
||||
"en": "What contributor did make this change?"
|
||||
"en": "What contributor did make this change?",
|
||||
"de": "Welcher Mitwirkende hat diese Änderung vorgenommen?"
|
||||
},
|
||||
"freeform": {
|
||||
"key": "user"
|
||||
},
|
||||
"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",
|
||||
"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": {
|
||||
"key": "theme"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"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": {
|
||||
"en": "User locale is {locale}"
|
||||
"en": "User locale is {locale}",
|
||||
"de": "Benutzergebietsschema ist {locale}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "host",
|
||||
"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": {
|
||||
"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": {
|
||||
"key": "host"
|
||||
|
@ -431,7 +446,8 @@
|
|||
}
|
||||
],
|
||||
"question": {
|
||||
"en": "Themename contains {search}"
|
||||
"en": "Themename contains {search}",
|
||||
"de": "Themename enthält {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -447,7 +463,8 @@
|
|||
}
|
||||
],
|
||||
"question": {
|
||||
"en": "Made by contributor {search}"
|
||||
"en": "Made by contributor {search}",
|
||||
"de": "Erstellt von {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -463,7 +480,8 @@
|
|||
}
|
||||
],
|
||||
"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": {
|
||||
"en": "Made before {search}"
|
||||
"en": "Made before {search}",
|
||||
"de": "Erstellt vor {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -497,7 +516,8 @@
|
|||
}
|
||||
],
|
||||
"question": {
|
||||
"en": "Made after {search}"
|
||||
"en": "Made after {search}",
|
||||
"de": "Erstellt nach {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -513,7 +533,8 @@
|
|||
}
|
||||
],
|
||||
"question": {
|
||||
"en": "User language (iso-code) {search}"
|
||||
"en": "User language (iso-code) {search}",
|
||||
"de": "Benutzersprache (ISO-Code) {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -529,7 +550,8 @@
|
|||
}
|
||||
],
|
||||
"question": {
|
||||
"en": "Made with host {search}"
|
||||
"en": "Made with host {search}",
|
||||
"de": "Erstellt mit host {search}"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -540,7 +562,8 @@
|
|||
{
|
||||
"osmTags": "add-image>0",
|
||||
"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",
|
||||
"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>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"contributors": [
|
||||
{
|
||||
"commits": 250,
|
||||
"commits": 253,
|
||||
"contributor": "kjon"
|
||||
},
|
||||
{
|
||||
|
@ -176,6 +176,10 @@
|
|||
"commits": 6,
|
||||
"contributor": "lvgx"
|
||||
},
|
||||
{
|
||||
"commits": 5,
|
||||
"contributor": "Ettore Atalan"
|
||||
},
|
||||
{
|
||||
"commits": 5,
|
||||
"contributor": "ⵣⵓⵀⵉⵔ ⴰⵎⴰⵣⵉⵖ ZOUHIR DEHBI"
|
||||
|
@ -212,10 +216,6 @@
|
|||
"commits": 5,
|
||||
"contributor": "Alexey Shabanov"
|
||||
},
|
||||
{
|
||||
"commits": 4,
|
||||
"contributor": "Ettore Atalan"
|
||||
},
|
||||
{
|
||||
"commits": 4,
|
||||
"contributor": "gallegonovato"
|
||||
|
|
|
@ -5,6 +5,12 @@
|
|||
"retrying": "Laden von Daten fehlgeschlagen. Erneuter Versuch in {count} Sekunden…",
|
||||
"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": {
|
||||
"cancel": "Abbrechen",
|
||||
"cannotBeDeleted": "Dieses Element kann nicht gelöscht werden",
|
||||
|
|
|
@ -1859,12 +1859,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "El color de l'hidrant és desconegut."
|
||||
},
|
||||
"1": {
|
||||
"then": "L'hidrant és de color groc."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "L'hidrant és de color roig."
|
||||
}
|
||||
},
|
||||
|
@ -1909,16 +1906,16 @@
|
|||
},
|
||||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"1": {
|
||||
"0": {
|
||||
"then": "De pilar."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "De tuberia."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "De paret."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Subterrani."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -4907,12 +4907,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Die Farbe des Hydranten ist unbekannt."
|
||||
},
|
||||
"1": {
|
||||
"then": "Die Farbe des Hydranten ist gelb."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Die Farbe des Hydranten ist rot."
|
||||
}
|
||||
},
|
||||
|
@ -4975,18 +4972,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Der Typ des Hydranten ist unbekannt."
|
||||
},
|
||||
"1": {
|
||||
"then": "Überflurhydrant."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Druckloses Rohr."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Wandhydrant."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"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": {
|
||||
"description": "Grundlegende Innenraumkartierung: zeigt Umrisse von Räumen",
|
||||
"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?",
|
||||
"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}"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -4907,12 +4907,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "The hydrant color is unknown."
|
||||
},
|
||||
"1": {
|
||||
"then": "The hydrant color is yellow."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "The hydrant color is red."
|
||||
}
|
||||
},
|
||||
|
@ -4975,18 +4972,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "The hydrant type is unknown."
|
||||
},
|
||||
"1": {
|
||||
"then": "Pillar type."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Pipe type."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Wall type."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Underground type."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -2617,12 +2617,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Se desconoce el color de la boca de incendios."
|
||||
},
|
||||
"1": {
|
||||
"then": "La boca de incendios es amarilla."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "La boca de incendios es roja."
|
||||
}
|
||||
},
|
||||
|
@ -2646,18 +2643,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Se desconoce el tipo de la boca de incendios"
|
||||
},
|
||||
"1": {
|
||||
"then": "De pilar."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "De tubería."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "De pared."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Bajo tierra."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -3193,12 +3193,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "La borne est de couleur inconnue."
|
||||
},
|
||||
"1": {
|
||||
"then": "La borne est jaune."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "La borne est rouge."
|
||||
}
|
||||
},
|
||||
|
@ -3222,18 +3219,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "La borne est de type inconnu."
|
||||
},
|
||||
"1": {
|
||||
"then": "Pilier."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Tuyau."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Mural."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Enterré."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -349,7 +349,7 @@
|
|||
"tagRenderings": {
|
||||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Jenis dinding."
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1354,12 +1354,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Il colore dell’idrante è sconosciuto."
|
||||
},
|
||||
"1": {
|
||||
"then": "Il colore dell’idrante è giallo."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "L'idrante è rosso."
|
||||
}
|
||||
},
|
||||
|
@ -1383,18 +1380,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Il tipo di idrante è sconosciuto."
|
||||
},
|
||||
"1": {
|
||||
"then": "Soprasuolo."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Tubo."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "A muro."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Sottosuolo."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -454,12 +454,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "消火栓の色は不明です。"
|
||||
},
|
||||
"1": {
|
||||
"then": "消火栓の色は黄色です。"
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "消火栓の色は赤です。"
|
||||
}
|
||||
},
|
||||
|
@ -483,18 +480,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "消火栓の種類は不明です。"
|
||||
},
|
||||
"1": {
|
||||
"then": "ピラー型。"
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "パイプ型。"
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "壁型。"
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "地下式。"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -4811,12 +4811,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "De kleur van de brandkraan is onbekend."
|
||||
},
|
||||
"1": {
|
||||
"then": "De brandkraan is geel."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "De brandkraan is rood."
|
||||
}
|
||||
},
|
||||
|
@ -4879,18 +4876,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Het type brandkraan is onbekend."
|
||||
},
|
||||
"1": {
|
||||
"then": "Pillaar type."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Buis type."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Muur type."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Ondergronds type."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -1059,12 +1059,9 @@
|
|||
"hydrant-color": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Цвет гидранта не определён."
|
||||
},
|
||||
"1": {
|
||||
"then": "Гидрант жёлтого цвета."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Гидрант красного цвета."
|
||||
}
|
||||
},
|
||||
|
@ -1120,18 +1117,15 @@
|
|||
"hydrant-type": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Тип гидранта не определён."
|
||||
},
|
||||
"1": {
|
||||
"then": "Наземный."
|
||||
},
|
||||
"2": {
|
||||
"1": {
|
||||
"then": "Труба."
|
||||
},
|
||||
"3": {
|
||||
"2": {
|
||||
"then": "Настенный."
|
||||
},
|
||||
"4": {
|
||||
"3": {
|
||||
"then": "Подземный."
|
||||
}
|
||||
},
|
||||
|
|
|
@ -766,6 +766,108 @@
|
|||
"description": "Eine Karte mit Bordsteinen und Überwegen.",
|
||||
"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": {
|
||||
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
|
||||
"title": "MapRoulette-Aufgaben"
|
||||
|
|
|
@ -57,7 +57,9 @@ describe("ChangesetHanlder", () => {
|
|||
const d = Utils.asDict(rewritten)
|
||||
expect(d.size).toEqual(10)
|
||||
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("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
|
||||
expect(d.get("imagery")).toEqual("osm")
|
||||
|
@ -115,7 +117,9 @@ describe("ChangesetHanlder", () => {
|
|||
|
||||
expect(d.size).toEqual(9)
|
||||
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("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
|
||||
expect(d.get("imagery")).toEqual("osm")
|
||||
|
@ -166,7 +170,9 @@ describe("ChangesetHanlder", () => {
|
|||
|
||||
expect(d.size).toEqual(9)
|
||||
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("host")).toEqual("https://mapcomplete.osm.be/toerisme_vlaanderen.html")
|
||||
expect(d.get("imagery")).toEqual("osm")
|
||||
|
|
|
@ -258,31 +258,33 @@ describe("Tag optimalization", () => {
|
|||
)
|
||||
*/
|
||||
|
||||
expect(opt).toEqual(TagUtils.Tag({
|
||||
or: [
|
||||
"club=climbing",
|
||||
{
|
||||
and: ["sport=climbing", { or: ["club~*", "office~*"] }],
|
||||
},
|
||||
{
|
||||
and: [
|
||||
"sport=climbing",
|
||||
{
|
||||
or: [
|
||||
"leisure=sports_centre",
|
||||
{
|
||||
and: [
|
||||
"climbing!~route",
|
||||
"climbing!=route_top",
|
||||
"climbing!=route_bottom",
|
||||
"leisure!~sports_centre",
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
}))
|
||||
expect(opt).toEqual(
|
||||
TagUtils.Tag({
|
||||
or: [
|
||||
"club=climbing",
|
||||
{
|
||||
and: ["sport=climbing", { or: ["club~*", "office~*"] }],
|
||||
},
|
||||
{
|
||||
and: [
|
||||
"sport=climbing",
|
||||
{
|
||||
or: [
|
||||
"leisure=sports_centre",
|
||||
{
|
||||
and: [
|
||||
"climbing!~route",
|
||||
"climbing!=route_top",
|
||||
"climbing!=route_bottom",
|
||||
"leisure!~sports_centre",
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
})
|
||||
)
|
||||
})
|
||||
})
|
||||
|
|
|
@ -2,7 +2,6 @@ import { TagUtils } from "../../../Logic/Tags/TagUtils"
|
|||
import { equal } from "assert"
|
||||
import { describe, expect, it } from "vitest"
|
||||
|
||||
|
||||
describe("TagUtils", () => {
|
||||
describe("ParseTag", () => {
|
||||
it("should refuse a key!=* tag", () => {
|
||||
|
|
|
@ -23,7 +23,9 @@ describe("CreateNoteImportLayer", () => {
|
|||
layer,
|
||||
"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"
|
||||
expect(generatedLayer.minzoom <= layer.minzoom).toBe(true)
|
||||
let renderings = Utils.NoNull(
|
||||
|
|
Loading…
Reference in a new issue