diff --git a/Docs/Layers/charging_station_ebikes.md b/Docs/Layers/charging_station_ebikes.md index 5ef127293..db8b0811a 100644 --- a/Docs/Layers/charging_station_ebikes.md +++ b/Docs/Layers/charging_station_ebikes.md @@ -6,7 +6,7 @@ This layer is based on [charging_station](../Layers/charging_station.md) A charging station - - This layer is shown at zoomlevel **14** and higher + - This layer is shown at zoomlevel **11** and higher ## Table of contents diff --git a/Docs/SpecialRenderings.md b/Docs/SpecialRenderings.md index 27973f60f..f4af1bb13 100644 --- a/Docs/SpecialRenderings.md +++ b/Docs/SpecialRenderings.md @@ -371,7 +371,7 @@ Note that these values can be prepare with javascript in the theme by using a [c | message | _undefined_ | The text to show to the contributor | | image | _undefined_ | An image to show to the contributor on the button | | id_of_object_to_apply_this_one | _undefined_ | If specified, applies the the tags onto _another_ object. The id will be read from properties[id_of_object_to_apply_this_one] of the selected object. The tags are still calculated based on the tags of the _selected_ element | -| maproulette_id | _undefined_ | If specified, this maproulette-challenge will be closed when the tags are applied. This should be the ID of the task, _not_ the task_id. | +| maproulette_id | _undefined_ | If specified, this maproulette-challenge will be closed when the tags are applied. This should be the `id` of the individual task, _not_ the task_id (which corresponds with the challenge). | #### Example usage of tag_apply diff --git a/Docs/Themes/cyclofix.md b/Docs/Themes/cyclofix.md index 5850b596c..a22b0d08e 100644 --- a/Docs/Themes/cyclofix.md +++ b/Docs/Themes/cyclofix.md @@ -662,7 +662,7 @@ This layer is based on [charging_station](../Layers/charging_station.md) A charging station - - This layer is shown at zoomlevel **14** and higher + - This layer is shown at zoomlevel **11** and higher No themes use this layer diff --git a/Docs/URL_Parameters.md b/Docs/URL_Parameters.md index 786f04fb4..310a399c5 100644 --- a/Docs/URL_Parameters.md +++ b/Docs/URL_Parameters.md @@ -438,7 +438,7 @@ The default value is _false_ The mode the application starts in, e.g. 'map', 'dashboard' or 'statistics' -This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L467) +This documentation is defined in the source code at [generateDocs.ts](ervdvn/git/MapComplete/scripts/generateDocs.ts#L465) The default value is _map_ diff --git a/android b/android index f62d2704a..bdd43dc65 160000 --- a/android +++ b/android @@ -1 +1 @@ -Subproject commit f62d2704a0632a47c70055b145dcff95107ba547 +Subproject commit bdd43dc65c3e1c5c5b12bc60af30e909df7dd95b diff --git a/langs/da.json b/langs/da.json index 3631d4aed..26b590134 100644 --- a/langs/da.json +++ b/langs/da.json @@ -2,13 +2,20 @@ "advanced": { "title": "Avancerede egenskaber" }, + "app": { + "back": "Tilbage til MapComplete", + "download": "Download appen", + "intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.", + "older": "Se ældre builds", + "title": "MapComplete Android App" + }, "centerMessage": { + "allFilteredAway": "Ingen objekter i visningen opfylder alle filtre", "loadingData": "Indlæser data…", + "noData": "Der er ingen relevante objekter i den aktuelle visning", "ready": "Færdig!", "retrying": "Indlæsning af data fejlede. Prøver igen om {count} sekunder…", - "zoomIn": "Zoom ind for at se og redigere data", - "noData": "Der er ingen relevante objekter i den aktuelle visning", - "allFilteredAway": "Ingen objekter i visningen opfylder alle filtre" + "zoomIn": "Zoom ind for at se og redigere data" }, "communityIndex": { "available": "Dette brugerfællesskab taler {native}", @@ -19,6 +26,7 @@ "cancel": "Afbryd", "cannotBeDeleted": "Dette objekt kan ikke slettes", "delete": "Slet", + "deletedTitle": "Slet objekt", "explanations": { "hardDelete": "Dette objekt vil blive slettet i OpenStreetMap. Det kan gendannes af en erfaren bidragyder", "softDelete": "Dette objekt vil blive opdateret og skjult for denne applikation {reason}" @@ -38,21 +46,42 @@ }, "safeDelete": "Dette objekt kan slettes uden risiko.", "useSomethingElse": "Brug i stedet en anden OpenStreetMap editor til at slette det", - "whyDelete": "Hvorfor skal dette objekt slettes?", - "deletedTitle": "Slet objekt" + "whyDelete": "Hvorfor skal dette objekt slettes?" + }, + "external": { + "allAreApplied": "Alle manglende, eksterne værdier er blevet kopieret ind i OpenStreetMap", + "allIncluded": "Data indlæst fra {source} er indeholdt i OpenStreetMap", + "apply": "Anvend", + "applyAll": "Anvend alle manglende værdier", + "conflicting": { + "intro": "OpenStreetMap har en anden værdi end kildewebstedet for de følgende værdier.", + "title": "Modstridende elementer" + }, + "currentInOsmIs": "I øjeblikket har OpenStreetMap registreret følgende værdi:", + "done": "Færdig", + "error": "Kunne ikke indlæse linkede data fra websitet", + "lastModified": "Eksterne data er sidst blevet ændret {date}", + "loadedFrom": "Følgende data indlæses fra {source} ved hjælp af den indlejrede JSON-LD", + "missing": { + "intro": "OpenStreetMap har ingen oplysninger om følgende egenskaber", + "title": "Manglende elementer" + }, + "noDataLoaded": "Det eksterne website har ingen linkede data, der kan indlæses", + "overwrite": "Overskriv i OpenStreetMap", + "title": "Strukturerede data indlæst fra den eksterne hjemmeside" }, "favourite": { "reload": "Genindlæs data" }, "favouritePoi": { "button": { + "isFavourite": "Denne placering er i øjeblikket markeret som favorit og vil dukke op på alle tematiske kort på MapComplete, som du besøger.", + "isMarkedShort": "Markeret som favoritlokalitet", + "isNotMarkedShort": "Ikke markeret som favorit", "markAsFavouriteTitle": "Markér dette sted som favoritsted", "markDescription": "Føj dette sted til en personlig liste over favoritter", "unmark": "Fjern fra din personlige liste over favoritter", - "unmarkNotDeleted": "Dette punkt vil ikke blive slettet og vil fortsat være synligt på det passende kort for dig og andre", - "isFavourite": "Denne placering er i øjeblikket markeret som favorit og vil dukke op på alle tematiske kort på MapComplete, som du besøger.", - "isMarkedShort": "Markeret som favoritlokalitet", - "isNotMarkedShort": "Ikke markeret som favorit" + "unmarkNotDeleted": "Dette punkt vil ikke blive slettet og vil fortsat være synligt på det passende kort for dig og andre" }, "downloadGeojson": "Download dine favoritter som geojson", "downloadGpx": "Download dine favoritter som GPX", @@ -63,7 +92,16 @@ "title": "Dine favoritsteder" }, "flyer": { + "aerial": "Dette kort bruger en anden baggrund, nemlig luftbilleder fra Agentschap Informatie Vlaanderen", "callToAction": "Test det på mapcomplete.org", + "cyclofix": "Cykelpumper, reparationsstationer, drikkevand og cykelforretninger findes på CycloFix", + "description": "En A4-landskab-folder til at promovere MapComplete", + "editing": { + "ex": "Et forenklet eksempel på, hvordan det ser ud for et naturreservat, er vist nedenfor.", + "intro": "Brugeren bliver mødt af et kort med objekter. Når man vælger et, vises oplysningerne om det pågældende objekt.", + "title": "Hvordan ser brugerfladen ud?" + }, + "examples": "Der findes mange tematiske kort, hvoraf nogle få er vist her.\n\nDer er mange flere tematiske kort online: om sundhedspleje, indendørs navigation, kørestolstilgængelighed, affaldsfaciliteter, bogbytteskabe, fodgængerovergange med regnbuemaling, … Udforsk dem alle på mapcomplete.org", "fakeui": { "add_images": "Tilføj billeder med få klik", "attributes": "Viser attributter på en venlig måde", @@ -72,7 +110,10 @@ "see_images": "Viser billeder fra tidligere bidragsydere, Wikipedia, Mapillary, …", "wikipedia": "Forbundne Wikipedia-artikler er vist" }, + "frontParagraph": "MapComplete er en brugervenlig webapplikation til indsamling af geodata i OpenStreetMap, som gør det muligt at indsamle og administrere relevante data på en åben, crowdsourcet og genanvendelig måde.\n\nNye kategorier og egenskaber kan tilføjes på anmodning.", + "lines_too": "Linjer og polygoner vises også. Egenskaber og billeder kan også tilføjes og opdateres på disse objekter.", "mapcomplete": { + "customize": "MapComplete kan skræddersys til dine behov med nye kortlag, nye funktioner eller styles med din organisations farver og skrifttype.\nVi har også erfaring med at starte kampagner for at crowdsource geodata.\nKontakt pietervdvn@posteo.net for at få et tilbud.", "intro": "MapComplete er et website, som har {mapCount} interaktive kort. Hvert eneste kort giver mulighed for at tilføje eller opdatere oplysninger. Det har mange egenskaber:", "li0": "Vis hvor POI er", "li1": "Tilføj nye punkter og opdatér informationer for de eksisterende", @@ -80,28 +121,16 @@ "li3": "Kan blive placeret på andre websites som iFrame", "li4": "Indlejret i OpenStreetMap-økosystemet, som har mange værktøjer tilgængelige", "li5": "Funktionalitet for at importere eksisterende datasæt", - "title": "Hvad er MapComplete?", "li6": "Mange avancerede funktioner, f.eks. trædetektering og avancerede inputmetoder", - "customize": "MapComplete kan skræddersys til dine behov med nye kortlag, nye funktioner eller styles med din organisations farver og skrifttype.\nVi har også erfaring med at starte kampagner for at crowdsource geodata.\nKontakt pietervdvn@posteo.net for at få et tilbud.", - "li7": "Copylefted libre-software (GPL-licenseret) og gratis at bruge" + "li7": "Copylefted libre-software (GPL-licenseret) og gratis at bruge", + "title": "Hvad er MapComplete?" }, + "onwheels": "Der findes også indendørs kort til kørestolsbrugere.", + "osm": "OpenStreetMap er et onlinekort, som kan redigeres og genbruges af alle til ethvert formål, så længe der gives en kildeangivelse, og dataene holdes åbne.\n\nDet er den største geospatiale database i verden og genbruges af tusindvis af applikationer og websites.", "tagline": "Indsaml geodata med OpenStreetMap", "title": "mapcomplete.org", - "whatIsOsm": "Hvad er OpenStreetMap?", - "editing": { - "intro": "Brugeren bliver mødt af et kort med objekter. Når man vælger et, vises oplysningerne om det pågældende objekt.", - "ex": "Et forenklet eksempel på, hvordan det ser ud for et naturreservat, er vist nedenfor.", - "title": "Hvordan ser brugerfladen ud?" - }, - "examples": "Der findes mange tematiske kort, hvoraf nogle få er vist her.\n\nDer er mange flere tematiske kort online: om sundhedspleje, indendørs navigation, kørestolstilgængelighed, affaldsfaciliteter, bogbytteskabe, fodgængerovergange med regnbuemaling, … Udforsk dem alle på mapcomplete.org", - "frontParagraph": "MapComplete er en brugervenlig webapplikation til indsamling af geodata i OpenStreetMap, som gør det muligt at indsamle og administrere relevante data på en åben, crowdsourcet og genanvendelig måde.\n\nNye kategorier og egenskaber kan tilføjes på anmodning.", - "osm": "OpenStreetMap er et onlinekort, som kan redigeres og genbruges af alle til ethvert formål, så længe der gives en kildeangivelse, og dataene holdes åbne.\n\nDet er den største geospatiale database i verden og genbruges af tusindvis af applikationer og websites.", - "aerial": "Dette kort bruger en anden baggrund, nemlig luftbilleder fra Agentschap Informatie Vlaanderen", - "cyclofix": "Cykelpumper, reparationsstationer, drikkevand og cykelforretninger findes på CycloFix", - "description": "En A4-landskab-folder til at promovere MapComplete", - "lines_too": "Linjer og polygoner vises også. Egenskaber og billeder kan også tilføjes og opdateres på disse objekter.", - "onwheels": "Der findes også indendørs kort til kørestolsbrugere.", - "toerisme_vlaanderen": "I et fælles projekt med Visit Flanders blev 'Pin your point' oprettet. Over 160 bidragydere tilføjede et par tusinde bænke og bord-bænkesæt og spottede 100 ladestationer til cykler." + "toerisme_vlaanderen": "I et fælles projekt med Visit Flanders blev 'Pin your point' oprettet. Over 160 bidragydere tilføjede et par tusinde bænke og bord-bænkesæt og spottede 100 ladestationer til cykler.", + "whatIsOsm": "Hvad er OpenStreetMap?" }, "general": { "404": "Denne side findes ikke", @@ -114,6 +143,7 @@ "backToSelect": "Vælg en anden kategori", "confirmLocation": "Bekræft dette sted", "confirmTitle": "Tilføj en {title}?", + "creating": "Oprettet et nyt punkt...", "disableFilters": "Slå alle filtre fra", "disableFiltersExplanation": "Nogle objekter kan være skjult af et filter", "enableLayer": "Aktivér lag {name}", @@ -124,8 +154,8 @@ "importTags": "Dette element vil modtage {tags}", "officialThemesOnly": "Importknappen er slået fra for uofficielle temaer for at undgå uheld", "wrongType": "Dette objekt er ikke et punkt eller en vej og kan ikke importeres", - "zoomInMore": "Zoom mere ind for at importere dette objekt", - "wrongTypeToConflate": "Dette objekt er ikke et punkt eller en linjestreng og kan ikke kombineres" + "wrongTypeToConflate": "Dette objekt er ikke et punkt eller en linjestreng og kan ikke kombineres", + "zoomInMore": "Zoom mere ind for at importere dette objekt" }, "importTags": "Dette element modtager {tags}", "intro": "Du klikkede et sted, hvor der endnu ikke er kendte data.
", @@ -136,8 +166,7 @@ "title": "Tilføj et nyt objekt", "wrongType": "Dette objekt er ikke et punkt eller en linjestreng og kan ikke importeres", "zoomInFurther": "Du skal først zoome yderligere ind, hvis du vil tilføje et objekt", - "zoomInMore": "Zoom mere ind for at importere dette objekt", - "creating": "Oprettet et nyt punkt..." + "zoomInMore": "Zoom mere ind for at importere dette objekt" }, "apply_button": { "appliedOnAnotherObject": "Objektet {id} modtager {tags}", @@ -152,6 +181,7 @@ "donate": "Støt MapComplete økonomisk", "editId": "Åbn OpenStreetMap-onlineeditoren her", "editJosm": "Rediger her med JOSM", + "emailCreators": "Send en e-mail til skaberne", "followOnMastodon": "Følg MapComplete på Mastodon", "gotoSourceCode": "Se kildeteksten", "iconAttribution": { @@ -159,39 +189,49 @@ }, "josmNotOpened": "Kunne ikke komme i kontakt med JOSM. Sørg for at den er åbnet og at fjernbetjening er slået til", "josmOpened": "JOSM er åbnet", + "madeBy": "Lavet af {author}", "mapContributionsBy": "Aktult synligt data har rettelser lavet af {contributors}", "mapContributionsByAndHidden": "De aktuelt synlige rettelser er lavet af {contributors} og {hiddenCount} flere bidragsydere", "mapillaryHelp": "Mapillary er en onlinetjeneste, som samler billeder på gadeplan og tilbyder dem under en gratis licens. Bidragydere har lov til at bruge disse billeder til at forbedre OpenStreetMap", "openIssueTracker": "Rapporter en fejl", "openMapillary": "Åbn Mapillary her", "openOsmcha": "De de seneste rettelser lavet med {theme}", - "openThemeDocumentation": "Åbn dokumentationen for temakortet {name}", - "themeBy": "Tema vedligeholdt af {author}", - "translatedBy": "MapComplete er oversat af {contributors} og {hiddenCount} flere bidragsydere", - "openStatistics": "Se statistikker for {theme}", - "emailCreators": "Send en e-mail til skaberne", - "panoramaxHelp": "Panoramax er en onlinetjeneste, der samler billeder på gadeniveau og tilbyder dem under en gratis licens. Bidragydere har lov til at bruge disse billeder til at forbedre OpenStreetMap", - "openPanoramax": "Åbn Panoramax her", "openOsmchaLastWeek": "Se redigeringer fra de seneste 7 dage", - "madeBy": "Lavet af {author}", + "openPanoramax": "Åbn Panoramax her", + "openStatistics": "Se statistikker for {theme}", + "openThemeDocumentation": "Åbn dokumentationen for temakortet {name}", + "panoramaxHelp": "Panoramax er en onlinetjeneste, der samler billeder på gadeniveau og tilbyder dem under en gratis licens. Bidragydere har lov til at bruge disse billeder til at forbedre OpenStreetMap", "panoramaxLicenseCCBYSA": "Dine billeder offentliggøres under CC-BY-SA - alle kan genbruge dit billede, hvis de nævner dit navn", "seeOnMapillary": "Se dette billede på Mapillary", - "title": "Copyright og kreditering" + "themeBy": "Tema vedligeholdt af {author}", + "title": "Copyright og kreditering", + "translatedBy": "MapComplete er oversat af {contributors} og {hiddenCount} flere bidragsydere" }, "back": "Tilbage", "backToIndex": "Gå tilbage til oversigten med alle temakort", "backgroundMap": "Vælg et baggrundslag", "backgroundSwitch": "Skift baggrund", "cancel": "Afbryd", + "clearPendingChanges": "Ryd afventende ændringer", "confirm": "Bekræft", "customThemeIntro": "

Brugergeneredede temaer

Disse er tidligere sete bruger-genererede temaer.", + "customThemeTitle": "Brugertilpassede temaer", "download": { + "custom": { + "download": "Download et {width} mm bredt og {height} mm højt PNG", + "downloadHelper": "Dette er beregnet til print", + "height": "Billedhøjde (in mm):", + "title": "Download et billede med en tilpasset bredde og højde", + "width": "Billedbredde (i mm): " + }, "downloadAsPdf": "Hent en PDF med det aktuelle kort", "downloadAsPdfHelper": "Ideelt til at udskrive det aktuelle kort", "downloadAsPng": "Download som billede", + "downloadAsPngHelper": "Ideel til at inkludere i rapporter", "downloadAsSvg": "Hent en SVG med det aktuelle kort", "downloadAsSvgHelper": "Kompatibel Inkscape eller Adobe Illustrator; skal behandles yderligere", "downloadAsSvgLinesOnly": "Hent en SVG af det nuværende kort, kun indeholdende linjer", + "downloadAsSvgLinesOnlyHelper": "Selvkrydsende linjer brydes op, kan bruges med noget 3D-software", "downloadCSV": "Hent synligt data som CSV", "downloadCSVHelper": "Kompatibel med LibreOffice Calc, Excel, …", "downloadFeatureAsGeojson": "Hent som GeoJSON-fil", @@ -200,43 +240,41 @@ "downloadGeojson": "Hent synlig data som GeoJSON", "downloadGpx": "Hent som GPX-fil", "downloadGpxHelper": "En GPX-fil kan bruges med de fleste navigationsenheder og programmer", + "downloadImage": "Download billede", "exporting": "Eksporterer…", "includeMetaData": "Inkluder metadata (sidste editor, beregnede værdier, ...)", "licenseInfo": "

Ophavsretsmeddelelse

De leverede data er tilgængelige under ODbL. Genbrug til alle formål er gratis, men Læs venligst hele ophavsretsmeddelelsen for detaljer.", "noDataLoaded": "Der er endnu ikke indlæst noget data. Nedhentning vil snart være tilgængelig", - "title": "Hent synligt data", - "uploadGpx": "Upload dit spor til OpenStreetMap", "pdf": { "current_view_generic": "Eksporter en PDF af den aktuelle visning for {paper_size} i {orientation} orientering" }, - "downloadAsSvgLinesOnlyHelper": "Selvkrydsende linjer brydes op, kan bruges med noget 3D-software", - "custom": { - "download": "Download et {width} mm bredt og {height} mm højt PNG", - "downloadHelper": "Dette er beregnet til print", - "height": "Billedhøjde (in mm):", - "title": "Download et billede med en tilpasset bredde og højde", - "width": "Billedbredde (i mm): " - }, - "downloadAsPngHelper": "Ideel til at inkludere i rapporter", - "downloadImage": "Download billede", - "toMuch": "Der er for mange objekter til at downloade dem alle" + "title": "Hent synligt data", + "toMuch": "Der er for mange objekter til at downloade dem alle", + "uploadGpx": "Upload dit spor til OpenStreetMap" }, "enableGeolocationForSafari": "Fik du ikke en popup for at anmode om geotilladelse?", + "enableGeolocationForSafariLink": "Få at vide, hvordan du aktiverer placeringstilladelse i indstillingerne", + "eraseValue": "Slet denne værdi", "error": "Noget gik galt", "example": "Eksempel", "examples": "Eksempler", + "filterPanel": { + "allTypes": "Alle typer", + "disableAll": "Deaktiver alle", + "enableAll": "Aktiver alle" + }, "geopermissionDenied": "Brug af geolokalitet var nægtet", "histogram": { "error_loading": "Kunne ikke indlæse histogrammet" }, "labels": { "background": "Skift baggrund", - "jumpToLocation": "Gå til din nuværende position", - "zoomIn": "Zoom ind", - "zoomOut": "Zoom ud", "filter": "Filtrer data", + "jumpToLocation": "Gå til din nuværende position", "locationNotAvailable": "GPS-position ikke tilgængelig. Har denne enhed en position, eller befinder du dig i en tunnel?", - "menu": "Menu" + "menu": "Menu", + "zoomIn": "Zoom ind", + "zoomOut": "Zoom ud" }, "layerSelection": { "title": "Vælg lag", @@ -253,12 +291,12 @@ "loginWithOpenStreetMap": "Log ind med OpenStreetMap", "logout": "Log ud", "menu": { + "aboutCurrentThemeTitle": "Om dette kort", "aboutMapComplete": "Om MapComplete", - "openHereDifferentApp": "Åbn den aktuelle position i andre applikationer", - "moreUtilsTitle": "Opdag mere", - "showIntroduction": "Vis introduktion", "filter": "Filtrer data", - "aboutCurrentThemeTitle": "Om dette kort" + "moreUtilsTitle": "Opdag mere", + "openHereDifferentApp": "Åbn den aktuelle position i andre applikationer", + "showIntroduction": "Vis introduktion" }, "morescreen": { "createYourOwnTheme": "Lave dit eget MapComplete tema fra bunden af", @@ -295,6 +333,7 @@ "versionInfo": "v{version} - genereret den {date}" }, "pickLanguage": "Vælg sprog", + "poweredByMapComplete": "Drevet af MapComplete - crowdsourcede, tematiske kort med OpenStreetMap", "poweredByOsm": "Drevet af OpenStreetMap", "questionBox": { "answeredMultiple": "Du besvarede {answered} spørgsmål", @@ -308,18 +347,21 @@ "skippedMultiple": "Du sprang over {skipped} spørgsmål", "skippedOne": "Du sprang over ét spørgsmål" }, + "questions": { + "enable": "Stil dette spørgsmål ved alle objekter" + }, "removeLocationHistory": "Slet placeringshistorikken", "returnToTheMap": "Vend tilbage til kortet", "save": "Gem", "screenToSmall": "Åbn {theme} i et nyt vindue", "search": { + "activeFilters": "Aktive filtre", + "clearFilters": "Ryd filtre", "error": "Noget gik galt.", + "instructions": "Brug søgefeltet ovenfor til at søge efter steder, filtre eller andre tematiske kort", "nothing": "Intet fundet.", "search": "Søg efter sted", - "searching": "Søger…", - "instructions": "Brug søgefeltet ovenfor til at søge efter steder, filtre eller andre tematiske kort", - "activeFilters": "Aktive filtre", - "clearFilters": "Ryd filtre" + "searching": "Søger…" }, "sharescreen": { "copiedToClipboard": "Link kopierer til udklipsholder", @@ -357,6 +399,12 @@ "uploadPending": "{count} ændringer i kø", "uploadPendingSingle": "Én ændring i kø", "uploadingChanges": "Uploader ændringer …", + "visualFeedback": { + "closestFeaturesAre": "{n} objekter i visningsvinduet.", + "navigation": "Brug piletasterne til at flytte kortet, og tryk på mellemrum for at vælge det nærmeste objekt. Tryk på et tal for at vælge positioner længere væk.", + "noCloseFeatures": "Ingen objekter synlige.", + "oneFeatureInView": "Et objekt inden for visningsvinduet." + }, "waitingForGeopermission": "Venter på din godkendelse til at bruge geolokalitet …", "waitingForLocation": "Finder din nuværende position …", "weekdays": { @@ -394,46 +442,27 @@ "readMore": "Læs resten af artiklen", "searchToShort": "Din søgeforespørgsel er for kort. Indtast en længere tekst", "searchWikidata": "Søg på Wikidata" - }, - "visualFeedback": { - "closestFeaturesAre": "{n} objekter i visningsvinduet.", - "navigation": "Brug piletasterne til at flytte kortet, og tryk på mellemrum for at vælge det nærmeste objekt. Tryk på et tal for at vælge positioner længere væk.", - "noCloseFeatures": "Ingen objekter synlige.", - "oneFeatureInView": "Et objekt inden for visningsvinduet." - }, - "filterPanel": { - "disableAll": "Deaktiver alle", - "enableAll": "Aktiver alle", - "allTypes": "Alle typer" - }, - "poweredByMapComplete": "Drevet af MapComplete - crowdsourcede, tematiske kort med OpenStreetMap", - "clearPendingChanges": "Ryd afventende ændringer", - "customThemeTitle": "Brugertilpassede temaer", - "enableGeolocationForSafariLink": "Få at vide, hvordan du aktiverer placeringstilladelse i indstillingerne", - "eraseValue": "Slet denne værdi", - "questions": { - "enable": "Stil dette spørgsmål ved alle objekter" } }, "hotkeyDocumentation": { "action": "Handling", "closeSidebar": "Luk sidemenuen", + "geolocate": "Panorer kortet til den aktuelle position, eller zoom kortet til den aktuelle position. Anmoder om geotilladelse", "intro": "MapComplete understøtter følgende genvejstaster:", "key": "Tastekombination", - "openLayersPanel": "Åbner panelet for baggrundslag", - "geolocate": "Panorer kortet til den aktuelle position, eller zoom kortet til den aktuelle position. Anmoder om geotilladelse" + "openLayersPanel": "Åbner panelet for baggrundslag" }, "image": { "addPicture": "Tag et billede", "doDelete": "Fjern billede", "isDeleted": "Slettet", + "nearby": { + "seeNearby": "Udforsk nærliggende billeder" + }, "pleaseLogin": "Log venligst ind for at tilføje et billede", "respectPrivacy": "Tag ikke billeder af mennesker eller nummerplader. Upload ikke Google Maps, Google Streetview, eller fra andre ophavsresbeskyttede kilder.", "toBig": "Dit billede er for stort da det er {actual_size}. Brug venligst billeder, der er højst {max_size}", - "uploadFailed": "Kunne ikke uploade dit billede. Er du forbundet til Internettet og tillader du tredieparts API'er. Brave browseren eller uMatrix plugin'et kunne blokerer dem.", - "nearby": { - "seeNearby": "Udforsk nærliggende billeder" - } + "uploadFailed": "Kunne ikke uploade dit billede. Er du forbundet til Internettet og tillader du tredieparts API'er. Brave browseren eller uMatrix plugin'et kunne blokerer dem." }, "importInspector": { "title": "Undersøg og håndter noter" @@ -449,6 +478,14 @@ "logIn": "Log ind for at se andre temaer, du tidligere har besøgt", "title": "Velkommen til MapComplete" }, + "input_helpers": { + "distance": { + "setFirst": "Mål fra nuværende position" + } + }, + "inspector": { + "menu": "Inspicér en bidragyder" + }, "move": { "cancel": "Afbryd flytning", "cannotBeMoved": "Dette objekt kan ikke flyttes.", @@ -497,6 +534,9 @@ "typeText": "Indtast noget tekst for at tilføje en kommentar", "warnAnonymous": "Du er ikke logget ind. Vi vil ikke kunne kontakte dig for at løse dit problem." }, + "plantDetection": { + "poweredByPlantnet": "Drevet af plantnet.org" + }, "privacy": { "editingIntro": "Når du foretager en ændring på kortet, registreres ændringen på OpenStreetMap og er offentligt tilgængelig for alle. Et ændringssæt, der er foretaget med MapComplete, indeholder følgende data:", "editingOutro": "Se privatlivspolitikken på OpenStreetMap.org for detaljerede oplysninger. Vi minder dig om, at du kan bruge et fiktivt navn, når du tilmelder dig.", @@ -599,45 +639,5 @@ "wikidata": { "description": "En Wikidata identifier" } - }, - "app": { - "intro": "MapComplete er tilgængelig som Android-app som direkte download. Vi arbejder på også at udgive den på FDroid.", - "back": "Tilbage til MapComplete", - "download": "Download appen", - "older": "Se ældre builds", - "title": "MapComplete Android App" - }, - "external": { - "currentInOsmIs": "I øjeblikket har OpenStreetMap registreret følgende værdi:", - "allAreApplied": "Alle manglende, eksterne værdier er blevet kopieret ind i OpenStreetMap", - "allIncluded": "Data indlæst fra {source} er indeholdt i OpenStreetMap", - "apply": "Anvend", - "applyAll": "Anvend alle manglende værdier", - "conflicting": { - "intro": "OpenStreetMap har en anden værdi end kildewebstedet for de følgende værdier.", - "title": "Modstridende elementer" - }, - "done": "Færdig", - "error": "Kunne ikke indlæse linkede data fra websitet", - "lastModified": "Eksterne data er sidst blevet ændret {date}", - "noDataLoaded": "Det eksterne website har ingen linkede data, der kan indlæses", - "missing": { - "intro": "OpenStreetMap har ingen oplysninger om følgende egenskaber", - "title": "Manglende elementer" - }, - "loadedFrom": "Følgende data indlæses fra {source} ved hjælp af den indlejrede JSON-LD", - "overwrite": "Overskriv i OpenStreetMap", - "title": "Strukturerede data indlæst fra den eksterne hjemmeside" - }, - "plantDetection": { - "poweredByPlantnet": "Drevet af plantnet.org" - }, - "input_helpers": { - "distance": { - "setFirst": "Mål fra nuværende position" - } - }, - "inspector": { - "menu": "Inspicér en bidragyder" } -} +} \ No newline at end of file diff --git a/langs/themes/nl.json b/langs/themes/nl.json index 6f49130c7..d9fee23dc 100644 --- a/langs/themes/nl.json +++ b/langs/themes/nl.json @@ -595,8 +595,37 @@ "building type": { "question": "Wat voor soort gebouw is dit?" }, + "grb-fixme": { + "mappings": { + "0": { + "then": "Geen fixme" + } + }, + "question": "Wat zegt de fixme?", + "render": "De fixme is {fixme}" + }, + "grb-housenumber": { + "mappings": { + "0": { + "then": "Geen huisnummer" + } + }, + "question": "Wat is het huisnummer?", + "render": "Het huisnummer is {addr:housenumber}" + }, + "grb-min-level": { + "question": "Hoeveel verdiepingen ontbreken?", + "render": "Dit gebouw begint maar op de {building:min_level} verdieping" + }, "grb-reference": { "render": "Werd geïmporteerd vanuit GRB, het referentienummer is {source:geometry:ref}" + }, + "grb-street": { + "question": "Wat is de straat?", + "render": "De straat is {addr:street}" + }, + "grb-unit": { + "render": "De wooneenheid-aanduiding is {addr:unit} " } } }, @@ -638,7 +667,9 @@ "render": "Link op profiel verplicht" } } - } + }, + "shortDescription": "Grb import helper tool", + "title": "GRB import helper" }, "guideposts": { "description": "Wegwijzers (ook wel handwijzer genoemd) zijn vaak te vinden langs officiële wandel-, fiets-, ski- of paardrijroutes om de richtingen naar verschillende bestemmingen aan te geven. Vaak zijn ze vernoemd naar een regio of plaats en geven ze de hoogte aan.\n\nDe positie van een wegwijzer kan door een wandelaar/fietser/renner/skiër worden gebruikt als bevestiging van de huidige positie, vooral als ze een gedrukte kaart zonder GPS-ontvanger gebruiken. ", @@ -1059,6 +1090,11 @@ }, "title": "Dierenartsen, hondenloopzones en andere huisdiervriendelijke plaatsen" }, + "play_forests": { + "description": "Een speelbos is een zone in een bos die vrij toegankelijk is voor spelende kinderen. Deze wordt in bossen van het Agentschap Natuur en bos altijd aangeduid met het overeenkomstige bord.", + "shortDescription": "Deze kaart toont speelbossen", + "title": "Speelbossen" + }, "playgrounds": { "description": "Op deze kaart vind je speeltuinen en kan je zelf meer informatie en foto's toevoegen", "shortDescription": "Een kaart met speeltuinen", @@ -1132,6 +1168,47 @@ "description": "Alles om te skiën", "title": "Skipistes en kabelbanen" }, + "speelplekken": { + "description": "

Welkom bij de Groendoener!

De Zuidrand dat is spelen, ravotten, chillen, wandelen,… in het groen. Meer dan 200 grote en kleine speelplekken liggen er in parken, in bossen en op pleintjes te wachten om ontdekt te worden. De verschillende speelplekken werden getest én goedgekeurd door kinder- en jongerenreporters uit de Zuidrand. Met leuke challenges dagen de reporters jou uit om ook op ontdekking te gaan. Klik op een speelplek op de kaart, bekijk het filmpje en ga op verkenning!

Het project groendoener kadert binnen het strategisch project Beleefbare Open Ruimte in de Antwerpse Zuidrand en is een samenwerking tussen het departement Leefmilieu van provincie Antwerpen, Sportpret vzw, een OpenStreetMap-België Consultent en Createlli vzw. Het project kwam tot stand met steun van Departement Omgeving van de Vlaamse Overheid.
", + "layers": { + "6": { + "name": "Wandelroutes van provincie Antwerpen", + "tagRenderings": { + "walk-description": { + "render": "

Korte beschrijving:

{description}" + }, + "walk-length": { + "render": "Deze wandeling is {_length:km}km lang" + }, + "walk-operator": { + "question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?" + }, + "walk-operator-email": { + "question": "Naar wie kan men emailen bij problemen rond signalisatie?", + "render": "Bij problemen met signalisatie kan men emailen naar {operator:email}" + }, + "walk-type": { + "mappings": { + "0": { + "then": "Dit is een internationale wandelroute" + }, + "1": { + "then": "Dit is een nationale wandelroute" + }, + "2": { + "then": "Dit is een regionale wandelroute" + }, + "3": { + "then": "Dit is een lokale wandelroute" + } + } + } + } + } + }, + "shortDescription": "Speelplekken in de Antwerpse Zuidrand", + "title": "Welkom bij de groendoener!" + }, "sport_pitches": { "description": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen", "shortDescription": "Deze kaart toont sportvelden", @@ -1250,6 +1327,10 @@ }, "title": "Straatverlichting" }, + "street_lighting_assen": { + "description": "Op deze kaart vind je alles over straatlantaarns + een dataset van Assen", + "title": "Straatverlichting - Assen" + }, "surveillance": { "description": "Op deze open kaart kan je bewakingscamera's vinden.", "shortDescription": "Bewakingscameras en dergelijke", @@ -1363,9 +1444,13 @@ "description": "Kaart met afvalbakken en recyclingfaciliteiten.", "title": "Afval" }, + "waste_assen": { + "description": "Kaart met afvalbakken en recyclingfaciliteiten + een dataset voor Assen.", + "title": "Afval - Assen" + }, "waste_basket": { "description": "Op deze kaart vind je afvalbakken bij jou in de buurt. Als er een afvalbak ontbreekt op deze kaart, kun je deze zelf toevoegen", "shortDescription": "Een kaart met vuilnisbakken", "title": "Vuilnisbakken" } -} +} \ No newline at end of file diff --git a/scripts/generateIncludedImages.ts b/scripts/generateIncludedImages.ts index 75618b0a1..69d15f0b9 100644 --- a/scripts/generateIncludedImages.ts +++ b/scripts/generateIncludedImages.ts @@ -41,18 +41,19 @@ function genImages(dryrun = false) { const svgBody = svg .replace( "= 0 - const svelteCode = - ["", - svgBody].join("\n") + const svelteCode = [ + "", + svgBody, + ].join("\n") fs.writeFileSync("./src/assets/svg/" + nameUC + ".svelte", svelteCode, "utf8") } diff --git a/scripts/generateLayouts.ts b/scripts/generateLayouts.ts index 49c4077d0..590bdc681 100644 --- a/scripts/generateLayouts.ts +++ b/scripts/generateLayouts.ts @@ -300,37 +300,37 @@ class GenerateLayouts extends Script { if (url.endsWith(".pmtiles")) { continue } - try{ - - console.log("Downloading ", url) - const styleSpec = await Utils.downloadJsonCached(url, 1000 * 120, { - Origin: "https://mapcomplete.org", - }) - for (const key of Object.keys(styleSpec?.["sources"] ?? {})) { - const url = styleSpec["sources"][key].url - if (!url) { - continue - } - let urlClipped = url - if (url.indexOf("?") > 0) { - urlClipped = url?.substring(0, url.indexOf("?")) - } - console.log("Source url ", key, url) - urls.push(url) - if (urlClipped.endsWith(".json")) { - const tileInfo = await Utils.downloadJsonCached(url, 1000 * 120, { - Origin: "https://mapcomplete.org", - }) - urls.push(tileInfo["tiles"] ?? []) + try { + console.log("Downloading ", url) + const styleSpec = await Utils.downloadJsonCached(url, 1000 * 120, { + Origin: "https://mapcomplete.org", + }) + for (const key of Object.keys(styleSpec?.["sources"] ?? {})) { + const url = styleSpec["sources"][key].url + if (!url) { + continue + } + let urlClipped = url + if (url.indexOf("?") > 0) { + urlClipped = url?.substring(0, url.indexOf("?")) + } + console.log("Source url ", key, url) + urls.push(url) + if (urlClipped.endsWith(".json")) { + const tileInfo = await Utils.downloadJsonCached(url, 1000 * 120, { + Origin: "https://mapcomplete.org", + }) + urls.push(tileInfo["tiles"] ?? []) + } } + urls.push(...(styleSpec["tiles"] ?? [])) + urls.push(styleSpec["sprite"]) + urls.push(styleSpec["glyphs"]) + } catch (e) { + console.error( + "ERROR: could not download a resource, some sprites might not be whitelisted and thus not load" + ) } - urls.push(...(styleSpec["tiles"] ?? [])) - urls.push(styleSpec["sprite"]) - urls.push(styleSpec["glyphs"]) - }catch (e) { - console.error("ERROR: could not download a resource, some sprites might not be whitelisted and thus not load") - } - } } this.eliUrlsCached = urls diff --git a/scripts/osm2pgsql/osmPoiDatabase.ts b/scripts/osm2pgsql/osmPoiDatabase.ts index c9ff82009..b3e364cc5 100644 --- a/scripts/osm2pgsql/osmPoiDatabase.ts +++ b/scripts/osm2pgsql/osmPoiDatabase.ts @@ -130,9 +130,9 @@ export class OsmPoiDatabase { } async deleteAllButLatest() { - const dbs = await this.findSuitableDatabases() ?? [] + const dbs = (await this.findSuitableDatabases()) ?? [] console.log(["Found databases:", ...dbs].join("\n ")) - console.log("Database ",dbs.at(-1)," is the latest database and will be preserved") + console.log("Database ", dbs.at(-1), " is the latest database and will be preserved") for (let i = 0; i < dbs.length - 1; i++) { await this.deleteDatabase(dbs[i]) } diff --git a/src/Logic/FeatureSource/Sources/OsmFeatureSource.ts b/src/Logic/FeatureSource/Sources/OsmFeatureSource.ts index 0c4c7e96f..568a10bff 100644 --- a/src/Logic/FeatureSource/Sources/OsmFeatureSource.ts +++ b/src/Logic/FeatureSource/Sources/OsmFeatureSource.ts @@ -159,12 +159,9 @@ export default class OsmFeatureSource extends FeatureSourceMerger { const osmJson = await Utils.downloadJsonCached(url, 2000) try { this.options?.fullNodeDatabase?.handleOsmJson(osmJson, z, x, y) - let features = []>OsmToGeoJson( - osmJson, - { - flatProperties: true, - } - ).features + let features = []>OsmToGeoJson(osmJson, { + flatProperties: true, + }).features // The geojson contains _all_ features at the given location // We only keep what is needed @@ -174,7 +171,7 @@ export default class OsmFeatureSource extends FeatureSourceMerger { ) for (let i = 0; i < features.length; i++) { - features[i] = await this.patchIncompleteRelations(features[i], osmJson) + features[i] = await this.patchIncompleteRelations(features[i], osmJson) } features = Utils.NoNull(features) features.forEach((f) => { diff --git a/src/Logic/GeoOperations.ts b/src/Logic/GeoOperations.ts index 0c763ee4d..7e69831dc 100644 --- a/src/Logic/GeoOperations.ts +++ b/src/Logic/GeoOperations.ts @@ -370,7 +370,7 @@ export class GeoOperations { ): Feature[] { if (way.geometry.type === "Polygon") { const poly: Feature = >way - return poly.geometry.coordinates.map(linestringCoors => { + return poly.geometry.coordinates.map((linestringCoors) => { return >{ type: "Feature", geometry: { diff --git a/src/Logic/ImageProviders/ImageUploadManager.ts b/src/Logic/ImageProviders/ImageUploadManager.ts index d9f0ac0e2..4e3345e31 100644 --- a/src/Logic/ImageProviders/ImageUploadManager.ts +++ b/src/Logic/ImageProviders/ImageUploadManager.ts @@ -297,7 +297,7 @@ export class ImageUploadManager { let absoluteUrl: string try { - ({ key, value, absoluteUrl } = await this._uploader.uploadImage( + ;({ key, value, absoluteUrl } = await this._uploader.uploadImage( blob, location, author, diff --git a/src/Logic/State/UserSettingsMetaTagging.ts b/src/Logic/State/UserSettingsMetaTagging.ts index 33a5ae85b..6e568c5c3 100644 --- a/src/Logic/State/UserSettingsMetaTagging.ts +++ b/src/Logic/State/UserSettingsMetaTagging.ts @@ -1,14 +1,42 @@ import { Utils } from "../../Utils" /** This code is autogenerated - do not edit. Edit ./assets/layers/usersettings/usersettings.json instead */ export class ThemeMetaTagging { - public static readonly themeName = "usersettings" + public static readonly themeName = "usersettings" - public metaTaggging_for_usersettings(feat: {properties: Record}) { - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_md', () => feat.properties._description.match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/)?.at(1) ) - Utils.AddLazyProperty(feat.properties, '_d', () => feat.properties._description?.replace(/</g,'<')?.replace(/>/g,'>') ?? '' ) - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate_a', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.href.match(/mastodon|en.osm.town/) !== null)[0]?.href }) (feat) ) - Utils.AddLazyProperty(feat.properties, '_mastodon_link', () => (feat => {const e = document.createElement('div');e.innerHTML = feat.properties._d;return Array.from(e.getElementsByTagName("a")).filter(a => a.getAttribute("rel")?.indexOf('me') >= 0)[0]?.href})(feat) ) - Utils.AddLazyProperty(feat.properties, '_mastodon_candidate', () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a ) - feat.properties['__current_backgroun'] = 'initial_value' - } -} \ No newline at end of file + public metaTaggging_for_usersettings(feat: { properties: Record }) { + Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_md", () => + feat.properties._description + .match(/\[[^\]]*\]\((.*(mastodon|en.osm.town).*)\).*/) + ?.at(1) + ) + Utils.AddLazyProperty( + feat.properties, + "_d", + () => feat.properties._description?.replace(/</g, "<")?.replace(/>/g, ">") ?? "" + ) + Utils.AddLazyProperty(feat.properties, "_mastodon_candidate_a", () => + ((feat) => { + const e = document.createElement("div") + e.innerHTML = feat.properties._d + return Array.from(e.getElementsByTagName("a")).filter( + (a) => a.href.match(/mastodon|en.osm.town/) !== null + )[0]?.href + })(feat) + ) + Utils.AddLazyProperty(feat.properties, "_mastodon_link", () => + ((feat) => { + const e = document.createElement("div") + e.innerHTML = feat.properties._d + return Array.from(e.getElementsByTagName("a")).filter( + (a) => a.getAttribute("rel")?.indexOf("me") >= 0 + )[0]?.href + })(feat) + ) + Utils.AddLazyProperty( + feat.properties, + "_mastodon_candidate", + () => feat.properties._mastodon_candidate_md ?? feat.properties._mastodon_candidate_a + ) + feat.properties["__current_backgroun"] = "initial_value" + } +} diff --git a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts index 23aa239ad..3f9c37b09 100644 --- a/src/Models/ThemeConfig/Conversion/PrepareLayer.ts +++ b/src/Models/ThemeConfig/Conversion/PrepareLayer.ts @@ -930,7 +930,7 @@ export class AddRatingBadge extends DesugaringStep { const funcs = new Set(specialVis.map((rs) => rs.func.funcName)) if (funcs.has("list_reviews")) { - (<(string | TagRenderingConfigJson)[]>json.titleIcons).push("icons.rating") + ;(<(string | TagRenderingConfigJson)[]>json.titleIcons).push("icons.rating") } return json } diff --git a/src/Models/TileRange.ts b/src/Models/TileRange.ts index 0e8353033..d4494da6d 100644 --- a/src/Models/TileRange.ts +++ b/src/Models/TileRange.ts @@ -86,7 +86,7 @@ export class Tiles { static asGeojson(zIndex: number, x?: number, y?: number): Feature { let z = zIndex if (x === undefined) { - [z, x, y] = Tiles.tile_from_index(zIndex) + ;[z, x, y] = Tiles.tile_from_index(zIndex) } const bounds = Tiles.tile_bounds_lon_lat(z, x, y) return new BBox(bounds).asGeoJson() diff --git a/src/UI/BigComponents/MenuDrawer.svelte b/src/UI/BigComponents/MenuDrawer.svelte index 1b639bc7d..4aafaa371 100644 --- a/src/UI/BigComponents/MenuDrawer.svelte +++ b/src/UI/BigComponents/MenuDrawer.svelte @@ -67,86 +67,86 @@ }) - - + {#if state.theme} - -

- -

+ +

+ +

- - - - - - - - - - - - - - - - - - - - - - - - - {#if state.featureSwitches?.featureSwitchEnableExport} - - - - + + + + - + + + + + - {/if} - {#if theme.official} - - - - + - - - - - - - - - {/if} -
- {/if} + + + + + + + + + + + {#if state.featureSwitches?.featureSwitchEnableExport} + + + + + + + + {/if} + + {#if theme.official} + + + + + + + + + + + + + + {/if} + + {/if} - - + {#if state.mapProperties?.location}

@@ -175,6 +175,4 @@ {/if} - - diff --git a/src/UI/BigComponents/MenuDrawerIndex.svelte b/src/UI/BigComponents/MenuDrawerIndex.svelte index b9586844d..3a581d76e 100644 --- a/src/UI/BigComponents/MenuDrawerIndex.svelte +++ b/src/UI/BigComponents/MenuDrawerIndex.svelte @@ -205,9 +205,8 @@ - - - + + diff --git a/src/UI/Map/Icon.svelte b/src/UI/Map/Icon.svelte index 97d5095dc..0160f431c 100644 --- a/src/UI/Map/Icon.svelte +++ b/src/UI/Map/Icon.svelte @@ -163,7 +163,11 @@ {:else if icon === "wifi"} - {:else if Utils.isEmoji(icon)} {icon} + {:else if Utils.isEmoji(icon)} + {icon} + {:else} {/if} {/if} diff --git a/src/UI/Popup/MultiApply.ts b/src/UI/Popup/MultiApply.ts index f7dd6f6c9..7a001e450 100644 --- a/src/UI/Popup/MultiApply.ts +++ b/src/UI/Popup/MultiApply.ts @@ -97,4 +97,3 @@ export class MultiApplyExecutor { } } } - diff --git a/src/UI/Popup/MultiApplyButton.svelte b/src/UI/Popup/MultiApplyButton.svelte index f2dda3f69..f08a4e2f8 100644 --- a/src/UI/Popup/MultiApplyButton.svelte +++ b/src/UI/Popup/MultiApplyButton.svelte @@ -20,17 +20,20 @@ - {#if $featuresToApplyOn.length > 0} {#if p.autoapply} -
+
-
{p.text}
- +
{:else} @@ -38,6 +41,3 @@ {/if} {/if} - - - diff --git a/src/UI/Popup/MultiApplyViz.ts b/src/UI/Popup/MultiApplyViz.ts index d9e3f5e7a..edd9f47c4 100644 --- a/src/UI/Popup/MultiApplyViz.ts +++ b/src/UI/Popup/MultiApplyViz.ts @@ -63,7 +63,7 @@ export class MultiApplyViz implements SpecialVisualization { return [] } }) - const params : MultiApplyParams= { + const params: MultiApplyParams = { featureIds, keysToApply, text, diff --git a/src/UI/Reviews/ImportReviewIdentity.svelte b/src/UI/Reviews/ImportReviewIdentity.svelte index 1ee90783e..bd48a1144 100644 --- a/src/UI/Reviews/ImportReviewIdentity.svelte +++ b/src/UI/Reviews/ImportReviewIdentity.svelte @@ -66,7 +66,7 @@ reader.readAsText(files[0], "UTF-8") // here we tell the reader what to do when it's done reading... - const content = await new Promise(resolve => { + const content = await new Promise((resolve) => { reader.onload = (readerEvent) => { resolve(readerEvent.target.result) } diff --git a/src/UI/SpecialVisualisations/TagApplyButton.svelte b/src/UI/SpecialVisualisations/TagApplyButton.svelte index d2a9be46d..350284f8b 100644 --- a/src/UI/SpecialVisualisations/TagApplyButton.svelte +++ b/src/UI/SpecialVisualisations/TagApplyButton.svelte @@ -24,12 +24,12 @@ const t = Translations.t.general.apply_button // THis button might be shown on MapRoulette-items, which might already have been applied // This will default to 'false' for non-maproulette challenges - let isMaprouletteAndApplied = tags?.data?.["mr_taskStatus"] !== undefined && - tags?.data?.["mr_taskStatus"] !== "Created" - + let isMaprouletteAndApplied = + tags?.data?.["mr_taskStatus"] !== undefined && tags?.data?.["mr_taskStatus"] !== "Created" let currentState: UIEventSource<"init" | "applying" | "applied"> = new UIEventSource( - isMaprouletteAndApplied ? "applied" : "init") + isMaprouletteAndApplied ? "applied" : "init" + ) async function apply() { currentState.set("applying") @@ -38,17 +38,20 @@ } - {#if $currentState === "init"} -