Fix: fix reverse tabnabbing in most cases, add rel=noopener to most links to untrusted content

This commit is contained in:
Pieter Vander Vennet 2023-09-02 00:55:07 +02:00
parent fd39f66e2e
commit d9b8257e47
25 changed files with 462 additions and 77 deletions

View file

@ -184,14 +184,20 @@
"ca": "En quina pàgina web es pot trobar més informació sobre la bicicleta blanca o l'accident?"
},
"render": {
"en": "<a href='{source}' target='_blank'>More info available</a>",
"nl": "<a href='{source}' target='_blank'>Meer informatie</a>",
"de": "<a href='{source}' target='_blank'>Mehr Informationen</a>",
"it": "<a href='{source}' target='_blank'>Sono disponibili ulteriori informazioni</a>",
"ru": "<a href='{source}' target='_blank'>Доступна более подробная информация</a>",
"fr": "<a href='{source}' target='_blank'>Plus d'informations sont disponibles</a>",
"id": "<a href='{source}' target='_blank'>Informasi lanjut tersedia</a>",
"ca": "<a href='{source}' target='_blank'>Més informació disponible</a>"
"special": {
"type": "link",
"href": "{source}",
"text": {
"en": "More info available",
"nl": "Meer informatie",
"de": "Mehr Informationen",
"it": "Sono disponibili ulteriori informazioni",
"ru": "Доступна более подробная информация",
"fr": "Plus d'informations sont disponibles",
"id": "Informasi lanjut tersedia",
"ca": "Més informació disponible"
}
}
},
"freeform": {
"type": "url",

View file

@ -12,7 +12,7 @@
"labels": [
"defaults"
],
"render": "<a href='https://wikipedia.org/wiki/{wikipedia}' target='_blank'><img src='./assets/svg/wikipedia.svg' textmode='📖' alt='Wikipedia'/></a>",
"render": "<a href='https://wikipedia.org/wiki/{wikipedia}' target='_blank' rel='noopener'><img src='./assets/svg/wikipedia.svg' textmode='📖' alt='Wikipedia'/></a>",
"condition": {
"or": [
"wikipedia~*",
@ -23,7 +23,7 @@
{
"#": "ignore-image-in-then",
"if": "wikipedia=",
"then": "<a href='https://www.wikidata.org/wiki/{wikidata}' target='_blank'><img src='./assets/svg/wikidata.svg' alt='WD'/></a>"
"then": "<a href='https://www.wikidata.org/wiki/{wikidata}' target='_blank' rel='noopener'><img src='./assets/svg/wikidata.svg' alt='WD'/></a>"
}
]
},
@ -106,7 +106,7 @@
"labels": [
"defaults"
],
"render": "<a href='{website}' target='_blank'><img textmode='🌐' alt='website' src='./assets/layers/icons/website.svg'/></a>",
"render": "<a href='{website}' target='_blank' rel='noopener'><img textmode='🌐' alt='website' src='./assets/layers/icons/website.svg'/></a>",
"condition": "website~*"
},
{
@ -140,7 +140,7 @@
"labels": [
"defaults"
],
"render": "<a href='https://openstreetmap.org/{id}' target='_blank'><img alt='on osm' textmode='🗺️' src='./assets/svg/osm-logo-us.svg'/></a>",
"render": "<a href='https://openstreetmap.org/{id}' target='_blank' rel='noopener'><img alt='on osm' textmode='🗺️' src='./assets/svg/osm-logo-us.svg'/></a>",
"mappings": [
{
"if": "id~.*/-.*",
@ -149,7 +149,7 @@
{
"#": "ignore-image-in-then",
"if": "_backend~*",
"then": "<a href='{_backend}/{id}' target='_blank'><img src='./assets/svg/osm-logo-us.svg'/></a>"
"then": "<a href='{_backend}/{id}' target='_blank' rel='noopener'><img src='./assets/svg/osm-logo-us.svg'/></a>"
}
],
"condition": "id~(node|way|relation)/[0-9]*"

View file

@ -438,13 +438,19 @@
},
{
"render": {
"en": "More info on <a href='{website}' target='_blank'>the website</a>",
"nl": "Meer info op <a href='{website}' target='_blank'>de website</a>",
"de": "Weitere Informationen auf <a href='{website}' target='_blank'>der Webseite</a>",
"fr": "Plus d'infos sur <a href='{website}' target='_blank'>le site web</a>",
"ru": "Более подробная информация <a href='{website}' target='_blank'>на сайте</a>",
"it": "Maggiori informazioni sul <a href='{website}' target='_blank'>sito web</a>",
"hu": "További információ <a href='{website}' target='_blank'>ezen a weboldalon</a>"
"special": {
"type": "link",
"href": "{website}",
"text": {
"en": "More info on the website",
"nl": "Meer info op de website",
"de": "Weitere Informationen auf der Webseite",
"fr": "Plus d'infos sur le site web",
"ru": "Более подробная информация на сайте",
"it": "Maggiori informazioni sul sito web",
"hu": "További információ ezen a weboldalon"
}
}
},
"question": {
"en": "Is there a website with more information about this public bookcase?",

View file

@ -1,13 +1,21 @@
{
"id": "mapcomplete-changes",
"title": {
"en": "Changes made with MapComplete"
"en": "Changes made with MapComplete",
"de": "Mit MapComplete erstellte Änderungen",
"fr": "Changements faits avec MapComplete",
"nl": "Wijzigingen gemaakt met MapComplete"
},
"shortDescription": {
"en": "Shows changes made by MapComplete"
"en": "Show changes made with MapComplete",
"de": "Mit MapComplete erstellte Änderungen anzeigen",
"nl": "Toon wijzigingen gemaakt met MapComplete"
},
"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",
"fr": "Cette carte montre tous les changements faits avec MapComplete",
"nl": "Deze kaart toont alle wijzigingen die met MapComplete gemaakt werden"
},
"icon": "./assets/svg/logo.svg",
"hideFromOverview": true,
@ -20,7 +28,9 @@
{
"id": "mapcomplete-changes",
"name": {
"en": "Changeset centers"
"en": "Changeset centers",
"de": "Zentrum der Änderungssätze",
"nl": "Centerpunt van changeset"
},
"minzoom": 0,
"source": {
@ -31,41 +41,57 @@
},
"title": {
"render": {
"en": "Changeset for {theme}"
"en": "Changeset for {theme}",
"de": "Änderungssatz für {theme}",
"fr": "Groupe de modifications pour {theme}"
}
},
"description": {
"en": "Shows all MapComplete changes"
"en": "Show all MapComplete changes",
"de": "Alle MapComplete-Änderungen anzeigen",
"nl": "Toon alle MapComplete wijzigingen"
},
"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>",
"fr": "Groupe de modifications <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
}
},
{
"id": "contributor",
"question": {
"en": "What contributor did make this change?"
"en": "Which contributor made this change?",
"de": "Welcher Mitwirkende hat diese Änderung vorgenommen?",
"fr": "Quel contributeur a fait cette modification ?",
"nl": "Welke bijdrager maakte deze wijziging?"
},
"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 gemacht von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>",
"fr": "Modification faite par <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>",
"nl": "Wijziging gemaakt door <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?",
"fr": "Quel thème a été utilisé pour faire cette modification ?"
},
"freeform": {
"key": "theme"
},
"render": {
"en": "Change with theme <a href='https://mapcomplete.org/{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>",
"fr": "Modifié avec le thème <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
}
},
{
@ -74,19 +100,29 @@
"key": "locale"
},
"question": {
"en": "What locale (language) was this change made in?"
"en": "What locale (language) was this change made in?",
"de": "In welcher Sprache wurde diese Änderung vorgenommen?",
"fr": "En quelle langue est-ce que ce changement a été fait ?",
"nl": "In welke locale (taal) werd deze wijziging gemaakt?"
},
"render": {
"en": "User locale is {locale}"
"en": "User locale is {locale}",
"de": "Usersprache ist {locale}",
"nl": "De gebruikerstaal is {locale}"
}
},
{
"id": "host",
"render": {
"en": "Change with with <a href='{host}'>{host}</a>"
"en": "Change made with <a href='{host}'>{host}</a>",
"de": "Änderung vorgenommen mit <a href='{host}'>{host}</a>",
"fr": "Modification faite avec <a href='{host}'>{host}</a>",
"nl": "Wijziging gemaakt met <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": "Mit welchem Host / welcher Website wurde diese Änderung gemacht?",
"nl": "Met welke host (website) werd deze wijziging gemaakt?"
},
"freeform": {
"key": "host"
@ -107,10 +143,14 @@
{
"id": "version",
"question": {
"en": "What version of MapComplete was used to make this change?"
"en": "What version of MapComplete was used to make this change?",
"de": "Mit welcher Version von MapComplete wurde diese Änderung gemacht?",
"fr": "Quelle version de MapComplete a été utilisée pour faire cette modification ?"
},
"render": {
"en": "Made with {editor}"
"en": "Made with {editor}",
"de": "Erstellt mit {editor}",
"fr": "Fait avec {editor}"
},
"freeform": {
"key": "editor"
@ -452,7 +492,9 @@
}
],
"question": {
"en": "Themename contains {search}"
"en": "Theme name contains {search}",
"de": "Themenname enthält {search}",
"nl": "Themenaam bevat {search}"
}
}
]
@ -468,7 +510,9 @@
}
],
"question": {
"en": "Made by contributor {search}"
"en": "Made by contributor {search}",
"de": "Erstellt von {search}",
"nl": "Gemaakt door bijdrager {search}"
}
}
]
@ -484,7 +528,9 @@
}
],
"question": {
"en": "<b>Not</b> made by contributor {search}"
"en": "<b>Not</b> made by contributor {search}",
"de": "<b>Nicht</b> erstellt von {search}",
"nl": "<b>Niet</b> gemaakt door bijdrager {search}"
}
}
]
@ -501,7 +547,9 @@
}
],
"question": {
"en": "Made before {search}"
"en": "Made before {search}",
"de": "Erstellt vor {search}",
"nl": "Gemaakt voor {search}"
}
}
]
@ -518,7 +566,9 @@
}
],
"question": {
"en": "Made after {search}"
"en": "Made after {search}",
"de": "Erstellt nach {search}",
"nl": "Gemaakt na {search}"
}
}
]
@ -534,7 +584,10 @@
}
],
"question": {
"en": "User language (iso-code) {search}"
"en": "User language (iso-code) {search}",
"de": "Benutzersprache (ISO-Code) {search}",
"fr": "Langage utilisateur (code-ISO) {search}",
"nl": "De taal van de bijdrager is {search}"
}
}
]
@ -550,7 +603,9 @@
}
],
"question": {
"en": "Made with host {search}"
"en": "Made with host {search}",
"de": "Erstellt mit Host {search}",
"nl": "Gemaakt met host {search}"
}
}
]
@ -561,7 +616,10 @@
{
"osmTags": "add-image>0",
"question": {
"en": "Changeset added at least one image"
"en": "Changeset added at least one image",
"de": "Changeset fügte mindestens ein Bild hinzu",
"fr": "Le groupe de modifications a ajouté au moins une image",
"nl": "Changeset bevat minstens één afbeelding"
}
}
]
@ -576,7 +634,9 @@
{
"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": "Mehr Statistiken gibt es <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>",
"fr": "D'autres statistiques sont disponibles <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>ici</a>"
}
},
{
@ -606,4 +666,4 @@
}
}
]
}
}

View file

@ -3160,7 +3160,11 @@
},
"ghost_bike-source": {
"question": "En quina pàgina web es pot trobar més informació sobre la bicicleta blanca o l'accident?",
"render": "<a href='{source}' target='_blank'>Més informació disponible</a>"
"render": {
"special": {
"text": "Més informació disponible"
}
}
}
},
"title": {

View file

@ -5151,7 +5151,11 @@
},
"ghost_bike-source": {
"question": "Auf welcher Webseite kann man mehr Informationen über das Geisterrad oder den Unfall finden?",
"render": "<a href='{source}' target='_blank'>Mehr Informationen</a>"
"render": {
"special": {
"text": "Mehr Informationen"
}
}
},
"ghost_bike-start_date": {
"question": "Wann wurde dieses Geisterrad aufgestellt?",
@ -7101,7 +7105,11 @@
},
"public_bookcase-website": {
"question": "Auf welcher Webseite findet man Informationen zu diesem Bücherschrank?",
"render": "Weitere Informationen auf <a href='{website}' target='_blank'>der Webseite</a>"
"render": {
"special": {
"text": "Weitere Informationen auf der Webseite"
}
}
}
},
"title": {

View file

@ -5171,7 +5171,11 @@
},
"ghost_bike-source": {
"question": "On what webpage can one find more info about the ghost bike or the accident?",
"render": "<a href='{source}' target='_blank'>More info available</a>"
"render": {
"special": {
"text": "More info available"
}
}
},
"ghost_bike-start_date": {
"question": "When was this Ghost bike installed?",
@ -7135,7 +7139,11 @@
},
"public_bookcase-website": {
"question": "Is there a website with more information about this public bookcase?",
"render": "More info on <a href='{website}' target='_blank'>the website</a>"
"render": {
"special": {
"text": "More info on the website"
}
}
}
},
"title": {

View file

@ -3584,7 +3584,11 @@
},
"ghost_bike-source": {
"question": "Sur quelle page web peut-on trouver plus d'informations sur le Vélo fantôme ou l'accident ?",
"render": "<a href='{source}' target='_blank'>Plus d'informations sont disponibles</a>"
"render": {
"special": {
"text": "Plus d'informations sont disponibles"
}
}
},
"ghost_bike-start_date": {
"question": "Quand ce vélo fantôme a-t-il été installée ?",
@ -4265,7 +4269,11 @@
},
"public_bookcase-website": {
"question": "Y a-t-il un site web avec plus d'informations sur cette microbibliothèque ?",
"render": "Plus d'infos sur <a href='{website}' target='_blank'>le site web</a>"
"render": {
"special": {
"text": "Plus d'infos sur le site web"
}
}
}
},
"title": {

View file

@ -752,7 +752,11 @@
},
"public_bookcase-website": {
"question": "Van-e olyan weboldal, ahol további információ található erről a nyilvános könyvespolcról?",
"render": "További információ <a href='{website}' target='_blank'>ezen a weboldalon</a>"
"render": {
"special": {
"text": "További információ ezen a weboldalon"
}
}
}
},
"title": {

View file

@ -341,7 +341,11 @@
"render": "<i>{inscription}</i>"
},
"ghost_bike-source": {
"render": "<a href='{source}' target='_blank'>Informasi lanjut tersedia</a>"
"render": {
"special": {
"text": "Informasi lanjut tersedia"
}
}
}
}
},

View file

@ -1344,7 +1344,11 @@
},
"ghost_bike-source": {
"question": "In quale pagina web si possono trovare informazioni sulla bici fantasma o lincidente?",
"render": "<a href='{source}' target='_blank'>Sono disponibili ulteriori informazioni</a>"
"render": {
"special": {
"text": "Sono disponibili ulteriori informazioni"
}
}
},
"ghost_bike-start_date": {
"question": "Quando è stata installata questa bici fantasma?",
@ -1759,7 +1763,11 @@
},
"public_bookcase-website": {
"question": "C'è un sito web con maggiori informazioni su questa microbiblioteca?",
"render": "Maggiori informazioni sul <a href='{website}' target='_blank'>sito web</a>"
"render": {
"special": {
"text": "Maggiori informazioni sul sito web"
}
}
}
},
"title": {

View file

@ -4851,7 +4851,11 @@
},
"ghost_bike-source": {
"question": "Op welke website kan men meer informatie vinden over de Witte fiets of over het ongeval?",
"render": "<a href='{source}' target='_blank'>Meer informatie</a>"
"render": {
"special": {
"text": "Meer informatie"
}
}
},
"ghost_bike-start_date": {
"question": "Wanneer werd deze witte fiets geplaatst?",
@ -6667,7 +6671,11 @@
},
"public_bookcase-website": {
"question": "Is er een website over dit boekenruilkastje?",
"render": "Meer info op <a href='{website}' target='_blank'>de website</a>"
"render": {
"special": {
"text": "Meer info op de website"
}
}
}
},
"title": {

View file

@ -996,7 +996,11 @@
"render": "В знак памяти о {subject}"
},
"ghost_bike-source": {
"render": "<a href='{source}' target='_blank'>Доступна более подробная информация</a>"
"render": {
"special": {
"text": "Доступна более подробная информация"
}
}
},
"ghost_bike-start_date": {
"render": "Установлен {start_date}"
@ -1515,7 +1519,11 @@
},
"public_bookcase-website": {
"question": "Есть ли веб-сайт с более подробной информацией об этом общественном книжном шкафе?",
"render": "Более подробная информация <a href='{website}' target='_blank'>на сайте</a>"
"render": {
"special": {
"text": "Более подробная информация на сайте"
}
}
}
},
"title": {

View file

@ -854,6 +854,112 @@
},
"title": "Bordsteine und Überwege"
},
"mapcomplete-changes": {
"description": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
"layers": {
"0": {
"description": "Alle MapComplete-Änderungen anzeigen",
"filter": {
"0": {
"options": {
"0": {
"question": "Themenname 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": "Changeset fügte mindestens ein Bild hinzu"
}
}
}
},
"name": "Zentrum der Änderungssätze",
"tagRenderings": {
"contributor": {
"question": "Welcher Mitwirkende hat diese Änderung vorgenommen?",
"render": "Änderung gemacht von <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
},
"host": {
"question": "Mit welchem Host / welcher Website wurde diese Änderung gemacht?",
"render": "Änderung vorgenommen mit <a href='{host}'>{host}</a>"
},
"locale": {
"question": "In welcher Sprache wurde diese Änderung vorgenommen?",
"render": "Usersprache 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>"
},
"version": {
"question": "Mit welcher Version von MapComplete wurde diese Änderung gemacht?",
"render": "Erstellt mit {editor}"
}
},
"title": {
"render": "Änderungssatz für {theme}"
}
},
"1": {
"override": {
"tagRenderings+": {
"0": {
"render": "Mehr Statistiken gibt es <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>hier</a>"
}
}
}
}
},
"shortDescription": "Mit MapComplete erstellte Änderungen anzeigen",
"title": "Mit MapComplete erstellte Änderungen"
},
"maproulette": {
"description": "Thema mit MapRoulette-Aufgaben, die Sie suchen, filtern und beheben können.",
"title": "MapRoulette-Aufgaben"

View file

@ -858,12 +858,12 @@
"description": "This maps shows all the changes made with MapComplete",
"layers": {
"0": {
"description": "Shows all MapComplete changes",
"description": "Show all MapComplete changes",
"filter": {
"0": {
"options": {
"0": {
"question": "Themename contains {search}"
"question": "Theme name contains {search}"
}
}
},
@ -920,12 +920,12 @@
"name": "Changeset centers",
"tagRenderings": {
"contributor": {
"question": "What contributor did make this change?",
"question": "Which contributor made this change?",
"render": "Change made by <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
},
"host": {
"question": "What host (website) was this change made with?",
"render": "Change with with <a href='{host}'>{host}</a>"
"render": "Change made with <a href='{host}'>{host}</a>"
},
"locale": {
"question": "What locale (language) was this change made in?",
@ -936,7 +936,7 @@
},
"theme-id": {
"question": "What theme was used to make this change?",
"render": "Change with theme <a href='https://mapcomplete.org/{theme}'>{theme}</a>"
"render": "Change with theme <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
},
"version": {
"question": "What version of MapComplete was used to make this change?",
@ -957,7 +957,7 @@
}
}
},
"shortDescription": "Shows changes made by MapComplete",
"shortDescription": "Show changes made with MapComplete",
"title": "Changes made with MapComplete"
},
"maproulette": {

View file

@ -844,6 +844,65 @@
},
"title": "Ressauts et traversées"
},
"mapcomplete-changes": {
"description": "Cette carte montre tous les changements faits avec MapComplete",
"layers": {
"0": {
"filter": {
"5": {
"options": {
"0": {
"question": "Langage utilisateur (code-ISO) {search}"
}
}
},
"7": {
"options": {
"0": {
"question": "Le groupe de modifications a ajouté au moins une image"
}
}
}
},
"tagRenderings": {
"contributor": {
"question": "Quel contributeur a fait cette modification ?",
"render": "Modification faite par <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
},
"host": {
"render": "Modification faite avec <a href='{host}'>{host}</a>"
},
"locale": {
"question": "En quelle langue est-ce que ce changement a été fait ?"
},
"show_changeset_id": {
"render": "Groupe de modifications <a href='https://openstreetmap.org/changeset/{id}' target='_blank'>{id}</a>"
},
"theme-id": {
"question": "Quel thème a été utilisé pour faire cette modification ?",
"render": "Modifié avec le thème <a href='https://mapcomplete.osm.be/{theme}'>{theme}</a>"
},
"version": {
"question": "Quelle version de MapComplete a été utilisée pour faire cette modification ?",
"render": "Fait avec {editor}"
}
},
"title": {
"render": "Groupe de modifications pour {theme}"
}
},
"1": {
"override": {
"tagRenderings+": {
"0": {
"render": "D'autres statistiques sont disponibles <a href='https://github.com/pietervdvn/MapComplete/tree/develop/Docs/Tools/graphs' target='_blank'>ici</a>"
}
}
}
}
},
"title": "Changements faits avec MapComplete"
},
"maproulette": {
"description": "Thème MapRoulette permettant dafficher, rechercher, filtrer et résoudre les tâches.",
"title": "Tâches MapRoulette"

View file

@ -936,6 +936,89 @@
},
"title": "Stoepranden en oversteekplaatsen"
},
"mapcomplete-changes": {
"description": "Deze kaart toont alle wijzigingen die met MapComplete gemaakt werden",
"layers": {
"0": {
"description": "Toon alle MapComplete wijzigingen",
"filter": {
"0": {
"options": {
"0": {
"question": "Themenaam bevat {search}"
}
}
},
"1": {
"options": {
"0": {
"question": "Gemaakt door bijdrager {search}"
}
}
},
"2": {
"options": {
"0": {
"question": "<b>Niet</b> gemaakt door bijdrager {search}"
}
}
},
"3": {
"options": {
"0": {
"question": "Gemaakt voor {search}"
}
}
},
"4": {
"options": {
"0": {
"question": "Gemaakt na {search}"
}
}
},
"5": {
"options": {
"0": {
"question": "De taal van de bijdrager is {search}"
}
}
},
"6": {
"options": {
"0": {
"question": "Gemaakt met host {search}"
}
}
},
"7": {
"options": {
"0": {
"question": "Changeset bevat minstens één afbeelding"
}
}
}
},
"name": "Centerpunt van changeset",
"tagRenderings": {
"contributor": {
"question": "Welke bijdrager maakte deze wijziging?",
"render": "Wijziging gemaakt door <a href='https://openstreetmap.org/user/{user}' target='_blank'>{user}</a>"
},
"host": {
"question": "Met welke host (website) werd deze wijziging gemaakt?",
"render": "Wijziging gemaakt met <a href='{host}'>{host}</a>"
},
"locale": {
"question": "In welke locale (taal) werd deze wijziging gemaakt?",
"render": "De gebruikerstaal is {locale}"
}
}
}
},
"shortDescription": "Toon wijzigingen gemaakt met MapComplete",
"title": "Wijzigingen gemaakt met MapComplete"
},
"maproulette": {
"description": "Thema met MapRoulette taken, waar je ze kunt zoeken, filteren en ze oplossen.",
"title": "MapRoulette taken"

View file

@ -1,10 +1,10 @@
import { existsSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from "fs"
import ScriptUtils from "./ScriptUtils"
import { Utils } from "../Utils"
import { Utils } from "../src/Utils"
import Script from "./Script"
import { GeoOperations } from "../Logic/GeoOperations"
import { GeoOperations } from "../src/Logic/GeoOperations"
import { Feature, Polygon } from "geojson"
import { Tiles } from "../Models/TileRange"
import { Tiles } from "../src/Models/TileRange"
class StatsDownloader {
private readonly urlTemplate =

View file

@ -1,13 +1,16 @@
import { Utils } from "../Utils"
import * as meta from "../../package.json"
import { Utils } from "../Utils"
export type PriviligedLayerType = (typeof Constants.priviliged_layers)[number]
export default class Constants {
static {
console.log("Meta (package:json)", meta)
}
public static vNumber = meta.version
public static ImgurApiKey = meta.config.api_keys.imgur
public static readonly mapillary_client_token_v4 =meta.config.api_keys.mapillary_v4
public static readonly mapillary_client_token_v4 = meta.config.api_keys.mapillary_v4
/**
* API key for Maproulette

View file

@ -242,7 +242,7 @@ export default class TagRenderingConfig {
if (txt === "") {
throw context + " Rendering for language " + ln + " is empty"
}
if (txt.indexOf("{" + this.freeform.key + "}") >= 0) {
if (txt.indexOf("{" + this.freeform.key + "}") >= 0 || txt.indexOf("&LBRACE" + this.freeform.key + "&RBRACE") ) {
continue
}
if (txt.indexOf("{" + this.freeform.key + ":") >= 0) {

View file

@ -34,6 +34,7 @@
class={twMerge(options.extraClasses, "button text-ellipsis")}
{href}
target={newTab ? "_blank" : undefined}
rel={newTab ? "noopener" : undefined}
>
<slot name="image">
{#if imageUrl !== undefined}

View file

@ -35,7 +35,7 @@
src={`https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/community_index/${resource.type}.svg`}
/>
<div class="flex flex-col">
<a href={resource.resolved.url} target="_blank" rel="noreferrer nofollow" class="font-bold">
<a href={resource.resolved.url} target="_blank" rel="noreferrer nofollow noopener" class="font-bold">
{resource.resolved.name ?? resource.resolved.url}
</a>
{resource.resolved?.description}

View file

@ -102,7 +102,7 @@ export default class CopyrightPanel extends Combine {
let bgAttr: BaseUIElement | string = undefined
if (attrText && attrUrl) {
bgAttr =
"<a href='" + attrUrl + "' target='_blank'>" + attrText + "</a>"
"<a href='" + attrUrl + "' target='_blank' rel='noopener'>" + attrText + "</a>"
} else if (attrUrl) {
bgAttr = attrUrl
} else {

View file

@ -37,6 +37,7 @@
<a
href={osmConnection.Backend() + "/profile/edit"}
target="_blank"
rel="noopener"
class="link-no-underline flex items-center self-end"
>
<PencilAltIcon slot="image" class="h-8 w-8 p-2" />

View file

@ -1250,7 +1250,7 @@ export default class SpecialVisualizations {
},
{
funcName: "link",
docs: "Construct a link. By using the 'special' visualisation notation, translation should be easier",
docs: "Construct a link. By using the 'special' visualisation notation, translations should be easier",
args: [
{
name: "text",