diff --git a/assets/layers/parking/parking.json b/assets/layers/parking/parking.json index d17a824109..d001503655 100644 --- a/assets/layers/parking/parking.json +++ b/assets/layers/parking/parking.json @@ -283,7 +283,7 @@ "if": "capacity:disabled=0", "then": { "en": "There are no disabled parking spots", - "nl": "Er zijn geen parkeerplaatsen voor gehandicapten", + "nl": "Er zijn geen parkeerplaatsen voor personen met een beperking", "de": "Es gibt keine barrierefreien Stellplätze", "fr": "Il n'y a pas de places de stationnement pour personnes à mobilité réduite", "ca": "No hi ha places d'aparcament per a persones amb mobilitat reduïda", @@ -295,7 +295,7 @@ ], "question": { "en": "How many disabled parking spots are there at this parking?", - "nl": "Hoeveel parkeerplaatsen voor gehandicapten zijn er op deze parking?", + "nl": "Hoeveel parkeerplaatsen voor personen met een beperking zijn er op deze parking?", "de": "Wie viele barrierefreie Stellplätze gibt es auf diesem Parkplatz?", "fr": "Combien y a-t-il de places de stationnement pour personnes à mobilité réduite dans ce parking ?", "ca": "Quantes places d'aparcament per a persones amb mobilitat reduïda hi ha al parking?", @@ -305,7 +305,7 @@ }, "render": { "en": "There are {capacity:disabled} disabled parking spots", - "nl": "Er zijn {capacity:disabled} parkeerplaatsen voor gehandicapten", + "nl": "Er zijn {capacity:disabled} parkeerplaatsen voor personen met een beperking", "de": "Es gibt {capacity:disabled} barrierefreie Stellplätze", "fr": "Il y a {capacity:disabled} places de stationnement pour personnes à mobilité réduite", "ca": "Hi ha {capacity:disabled} places d'aparcament per a discapacitats", diff --git a/assets/layers/usersettings/usersettings.json b/assets/layers/usersettings/usersettings.json index bdab1dc774..32953dcfe9 100644 --- a/assets/layers/usersettings/usersettings.json +++ b/assets/layers/usersettings/usersettings.json @@ -888,6 +888,14 @@ } ] }, + { + "id": "disabled-questions", + "render": { + "special": { + "type": "disabled_questions" + } + } + }, { "id": "title-privacy-legal", "render": { diff --git a/langs/ca.json b/langs/ca.json index bfce4eadcd..77b8ecfe1b 100644 --- a/langs/ca.json +++ b/langs/ca.json @@ -318,14 +318,6 @@ "skippedMultiple": "Heu saltat {skipped} pregutnes", "skippedOne": "Heu saltat una pregunta" }, - "questions": { - "emailIs": "L'adreça de correu d'aquesta {category} és {email}", - "emailOf": "Quina és l'adreça de correu-e de {category}?", - "phoneNumberIs": "El número de telèfon de {category} és {phone}", - "phoneNumberOf": "Quin és el telèfon de {category}?", - "websiteIs": "Pàgina web: {website}", - "websiteOf": "Quina és la pàgina web de {category}?" - }, "readYourMessages": "Per favor, llegeix tots els teus missatges d'OpenStreetMap abans d'afegir nous punts.", "removeLocationHistory": "Esborrar l'historial d'ubicació", "returnToTheMap": "Tornar al mapa", diff --git a/langs/cs.json b/langs/cs.json index 8bdc76d80e..a3dce422b4 100644 --- a/langs/cs.json +++ b/langs/cs.json @@ -387,14 +387,6 @@ "skippedMultiple": "Přeskočili jste {skipped} otázky", "skippedOne": "Vynechali jste jednu otázku" }, - "questions": { - "emailIs": "E-mailová adresa této {category} je {email}", - "emailOf": "Jaká je e-mailová adresa {category}?", - "phoneNumberIs": "Telefonní číslo této {category} je {phone}", - "phoneNumberOf": "Jaké je telefonní číslo na {category}?", - "websiteIs": "Web: {website}", - "websiteOf": "Jaká je webová stránka {category}?" - }, "readYourMessages": "Před přidáním nové funkce si prosím přečtěte všechny zprávy OpenStreetMap.", "removeLocationHistory": "Odstranit historii polohy", "retry": "Zkusit znovu", diff --git a/langs/da.json b/langs/da.json index a5e17c221a..10cd6ecfaf 100644 --- a/langs/da.json +++ b/langs/da.json @@ -274,14 +274,6 @@ "skippedMultiple": "Du sprang over {skipped} spørgsmål", "skippedOne": "Du sprang over ét spørgsmål" }, - "questions": { - "emailIs": "E-mailadressen for denne {category} er {email}", - "emailOf": "Hvad er e-mailadressen for {category}?", - "phoneNumberIs": "Telefonnummeret for denne/dette {category} er {phone}", - "phoneNumberOf": "Hvad er telefonnummeret for {category}?", - "websiteIs": "Hjemmeside: {website}", - "websiteOf": "Hvad er hjemmesiden for {category}?" - }, "readYourMessages": "Læs venligst alle dine OpenStreetMap beskeder før du tilføjer et nyt punkt.", "removeLocationHistory": "Slet placeringshistorikken", "returnToTheMap": "Vend tilbage til kortet", diff --git a/langs/de.json b/langs/de.json index b1d33f8e30..ca3b59392a 100644 --- a/langs/de.json +++ b/langs/de.json @@ -387,14 +387,6 @@ "skippedMultiple": "Du hast {skipped} Fragen übersprungen", "skippedOne": "Du hast eine Frage übersprungen" }, - "questions": { - "emailIs": "Die E-Mail-Adresse dieser {category} lautet {email}", - "emailOf": "Wie lautet die E-Mail-Adresse der {category}?", - "phoneNumberIs": "Die Telefonnummer dieser {category} lautet {phone}", - "phoneNumberOf": "Wie lautet die Telefonnummer der {category}?", - "websiteIs": "Webseite: {website}", - "websiteOf": "Wie lautet die Webseite der {category}?" - }, "readYourMessages": "Bitte lesen Sie alle Ihre OpenStreetMap-Nachrichten, bevor Sie ein neues Objekt hinzufügen.", "removeLocationHistory": "Standortverlauf löschen", "retry": "Wiederholen", diff --git a/langs/en.json b/langs/en.json index bad4e5e3d0..e52bf45e91 100644 --- a/langs/en.json +++ b/langs/en.json @@ -388,8 +388,13 @@ "skippedOne": "You skipped one question" }, "questions": { + "disable": "Do not ask this question again", + "disabledIntro": "You disabled some type of questions. To enable a question again, click them here", + "disabledTitle": "Disabled questions", "emailIs": "The email address of this {category} is {email}", "emailOf": "What is the email address of {category}?", + "enable": "Ask this question for all features", + "noneDisabled": "If you are not interested in a specific type of question, disable it. To disable a question, click the three dots in the upper-right corner and select 'disable'", "phoneNumberIs": "The phone number of this {category} is {phone}", "phoneNumberOf": "What is the phone number of {category}?", "websiteIs": "Website: {website}", diff --git a/langs/eo.json b/langs/eo.json index 71efe012f0..2a2f3ae4f0 100644 --- a/langs/eo.json +++ b/langs/eo.json @@ -41,9 +41,6 @@ "versionInfo": "v{version} - generita je {date}" }, "pickLanguage": "Elektu lingvon: ", - "questions": { - "websiteIs": "Retejo: {website}" - }, "returnToTheMap": "Reen al la mapo", "save": "Konservi", "search": { diff --git a/langs/fi.json b/langs/fi.json index ad4194fb59..06f1e13495 100644 --- a/langs/fi.json +++ b/langs/fi.json @@ -335,14 +335,6 @@ "skippedMultiple": "Ohitit {skipped} kysymystä", "skippedOne": "Ohitit yhden kysymyksen" }, - "questions": { - "emailIs": "Sähköpostiosoite kohteelle {category} on {email}", - "emailOf": "Mikä on sähköpostiosoite kohteelle {category}?", - "phoneNumberIs": "Puhelinnumero kohteelle {category} on {phone}", - "phoneNumberOf": "Mikä on puhelinnumero kohteelle {category}?", - "websiteIs": "Verkkosivusto: {website}", - "websiteOf": "Mikä on verkkosivu kohteelle {category}?" - }, "readYourMessages": "Luethan kaikki OpenStreetMap-viestisi ennen kuin lisäät uutta ominaisuutta.", "removeLocationHistory": "Poista sijaintihistoria", "returnToTheMap": "Palaa karttaan", diff --git a/langs/fil.json b/langs/fil.json index da1d53535f..7d13cbd7dc 100644 --- a/langs/fil.json +++ b/langs/fil.json @@ -92,9 +92,6 @@ "questionBox": { "answeredMultiple": "Sinagutan mo ang {answered} na tanong" }, - "questions": { - "emailOf": "Ano ba ang email address ng {category}?" - }, "returnToTheMap": "Bumalik sa mapa", "search": { "nothing": "Walang nahanap…" diff --git a/langs/fr.json b/langs/fr.json index 7f999532a9..a10f64c68d 100644 --- a/langs/fr.json +++ b/langs/fr.json @@ -300,14 +300,6 @@ "skippedMultiple": "Vous avez passé {skipped} questions", "skippedOne": "Vous avez passé une question" }, - "questions": { - "emailIs": "L'adresse électronique de {category} est {email}", - "emailOf": "Quelle est l'adresse électronique de {category} ?", - "phoneNumberIs": "Le numéro de téléphone de {category} est {phone}", - "phoneNumberOf": "Quel est le numéro de téléphone de {category} ?", - "websiteIs": "Site Web : {website}", - "websiteOf": "Quel est le site internet de {category} ?" - }, "readYourMessages": "Merci de lire tous vos messages sur OpenStreetMap avant d'ajouter un nouveau point.", "removeLocationHistory": "Supprimer l'historique des positions", "returnToTheMap": "Retourner sur la carte", diff --git a/langs/gl.json b/langs/gl.json index cdcb7bd7df..4a2bdd8dad 100644 --- a/langs/gl.json +++ b/langs/gl.json @@ -72,14 +72,6 @@ }, "osmLinkTooltip": "Ollar este obxecto no OpenStreetMap para ollar o historial e outras opcións de edición", "pickLanguage": "Escoller lingua: ", - "questions": { - "emailIs": "O enderezo de correo electrónico de {category} é {email}", - "emailOf": "Cal é o enderezo de correo electrónico de {category}?", - "phoneNumberIs": "O número de teléfono de {category} é {phone}", - "phoneNumberOf": "Cal é o número de teléfono de {category}?", - "websiteIs": "Páxina web: {website}", - "websiteOf": "Cal é a páxina web de {category}?" - }, "readYourMessages": "Le todos a túas mensaxes do OpenStreetMap antes de engadir novos puntos.", "returnToTheMap": "Voltar ó mapa", "save": "Gardar", diff --git a/langs/id.json b/langs/id.json index bae7ae74d2..b026bec576 100644 --- a/langs/id.json +++ b/langs/id.json @@ -96,11 +96,6 @@ "ph_open": "buka" }, "pickLanguage": "Pilih bahasa: ", - "questions": { - "emailOf": "Apa alamat email {category}?", - "phoneNumberOf": "Apakah nombor telepon {category} ini?", - "websiteIs": "Website: {website}" - }, "search": { "searching": "Sdg mencari…" }, diff --git a/langs/it.json b/langs/it.json index fecd93e449..2a95f92ec2 100644 --- a/langs/it.json +++ b/langs/it.json @@ -311,14 +311,6 @@ "answeredOne": "Hai risposto a una domanda", "done": "Non ci sono più domande! Grazie!" }, - "questions": { - "emailIs": "L’indirizzo email di questa {category} è {email}", - "emailOf": "Qual è l’indirizzo email di {category}?", - "phoneNumberIs": "Il numero di telefono di questa {category} è {phone}", - "phoneNumberOf": "Qual è il numero di telefono di {category}?", - "websiteIs": "Sito web: {website}", - "websiteOf": "Qual è il sito web di {category}?" - }, "readYourMessages": "Leggi tutti i tuoi messaggi OpenStreetMap prima di aggiungere un nuovo elemento.", "removeLocationHistory": "Elimina la cronologia di geolocalizzazione", "retry": "Riprova", diff --git a/langs/ja.json b/langs/ja.json index 0823819fef..20ddbcb254 100644 --- a/langs/ja.json +++ b/langs/ja.json @@ -72,14 +72,6 @@ }, "osmLinkTooltip": "履歴とその他の編集オプションについては、OpenStreetMapのこのオブジェクトを参照してください", "pickLanguage": "言語を選択します: ", - "questions": { - "emailIs": "この{category}の電子メール・アドレスは{email}です", - "emailOf": "{category} の電子メールアドレスは何ですか?", - "phoneNumberIs": "この {category} の電話番号は{phone}です。", - "phoneNumberOf": "{category} の電話番号は何番ですか?", - "websiteIs": "Webサイト:{website}", - "websiteOf": "{category} のウェブサイトはどこですか?" - }, "readYourMessages": "新しいポイントを追加する前に、OpenStreetMapのメッセージをすべて読んでください。", "returnToTheMap": "マップに戻る", "save": "保存", diff --git a/langs/layers/ca.json b/langs/layers/ca.json index dd5b6f42e6..87be37ed7c 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -7957,6 +7957,19 @@ "question": "En quina direcció geogràfica apunta aquesta càmera?", "render": "Grava en direcció {camera:direction}" }, + "camera_is_indoor": { + "mappings": { + "0": { + "then": "Aquesta càmera es troba a l'interior" + }, + "1": { + "then": "Aquesta càmera es troba a l'exterior" + }, + "2": { + "then": "Aquesta càmera probablement es troba a l'exterior" + } + } + }, "has_alpr": { "mappings": { "0": { @@ -7968,20 +7981,6 @@ }, "question": "Aquesta càmera pot detectar matrícules automàticament?", "questionHint": "Un ALPR (lector automàtic de matrícules, per les seves sigles en anglès) normalment té dues lents i una sèrie de LEDs infrarojos entremig." - }, - "is_indoor": { - "mappings": { - "0": { - "then": "Aquesta càmera es troba a l'interior" - }, - "1": { - "then": "Aquesta càmera es troba a l'exterior" - }, - "2": { - "then": "Aquesta càmera probablement es troba a l'exterior" - } - }, - "question": "L'espai públic vigilat per aquesta càmera és un espai interior o exterior?" } }, "title": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 31cc9d5f14..9f5afd0244 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -8591,6 +8591,19 @@ "question": "Ve kterém geografickém směru tato kamera snímá?", "render": "Snímané oblasti podle směru kompasu {camera:direction}" }, + "camera_is_indoor": { + "mappings": { + "0": { + "then": "Tato kamera je umístěna ve vnitřním prostoru" + }, + "1": { + "then": "Tato kamera je umístěna ve venkovním prostoru" + }, + "2": { + "then": "Tato kamera je pravděpodobně umístěna venku" + } + } + }, "has_alpr": { "mappings": { "0": { @@ -8602,20 +8615,6 @@ }, "question": "Dokáže tato kamera automaticky rozpoznat registrační značky?", "questionHint": "Automatická čtečka registračních značek (ALPR) má obvykle dvě čočky a mezi nimi soustavu infračervených diod LED." - }, - "is_indoor": { - "mappings": { - "0": { - "then": "Tato kamera je umístěna ve vnitřním prostoru" - }, - "1": { - "then": "Tato kamera je umístěna ve venkovním prostoru" - }, - "2": { - "then": "Tato kamera je pravděpodobně umístěna venku" - } - }, - "question": "Je veřejný prostor sledovaný touto kamerou vnitřní nebo venkovní prostor?" } }, "title": { diff --git a/langs/layers/da.json b/langs/layers/da.json index b792b89add..ba3c959fc7 100644 --- a/langs/layers/da.json +++ b/langs/layers/da.json @@ -2049,7 +2049,7 @@ "question": "I hvilken geografisk retning filmer dette kamera?", "render": "Filmer til en kompasretning af {camera:direction}" }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "0": { "then": "Dette kamera er placeret indendørs" @@ -2060,8 +2060,7 @@ "2": { "then": "Dette kamera er sandsynligvis placeret udendørs" } - }, - "question": "Er det offentlige rum, der overvåges af dette kamera, et indendørs eller udendørs rum?" + } } }, "title": { diff --git a/langs/layers/de.json b/langs/layers/de.json index 61672c5168..b5127e03f2 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -10612,6 +10612,19 @@ "question": "In welche Himmelsrichtung filmt diese Kamera?", "render": "filmt in Himmelsrichtung {camera:direction}" }, + "camera_is_indoor": { + "mappings": { + "0": { + "then": "Diese Kamera befindet sich im Innenraum" + }, + "1": { + "then": "Diese Kamera befindet sich im Freien" + }, + "2": { + "then": "Diese Kamera ist möglicherweise im Freien" + } + } + }, "has_alpr": { "mappings": { "0": { @@ -10623,20 +10636,6 @@ }, "question": "Dient diese Kamera der Nummernschilderkennung?", "questionHint": "Eine Kamera zur Nummernschilderkennung hat üblicherweise zwei Linsen mit dazwischenliegenden Infrarot-LEDs." - }, - "is_indoor": { - "mappings": { - "0": { - "then": "Diese Kamera befindet sich im Innenraum" - }, - "1": { - "then": "Diese Kamera befindet sich im Freien" - }, - "2": { - "then": "Diese Kamera ist möglicherweise im Freien" - } - }, - "question": "Handelt es sich bei dem von dieser Kamera überwachten öffentlichen Raum um einen Innen- oder Außenbereich?" } }, "title": { diff --git a/langs/layers/en.json b/langs/layers/en.json index a759f0687f..2126812e30 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -10227,6 +10227,398 @@ "title": "a sports centre" } }, + "tagRenderings": { + "sport_centre-sport": { + "mappings": { + "0": { + "then": "Nine-pin bowling" + }, + "1": { + "then": "Ten-pin bowling" + }, + "10": { + "then": "BASE jumping" + }, + "100": { + "then": "Skateboard" + }, + "101": { + "then": "Ski jumping" + }, + "102": { + "then": "Snooker" + }, + "103": { + "then": "Soccer" + }, + "104": { + "then": "Softball" + }, + "105": { + "then": "Motorcycle speedway" + }, + "106": { + "then": "Squash" + }, + "107": { + "then": "Sumo" + }, + "108": { + "then": "Surfing" + }, + "109": { + "then": "Swimming" + }, + "11": { + "then": "Baseball" + }, + "110": { + "then": "Table tennis" + }, + "111": { + "then": "Table soccer" + }, + "112": { + "then": "Taekwondo" + }, + "113": { + "then": "Tennis" + }, + "114": { + "then": "Teqball" + }, + "115": { + "then": "Toboggan" + }, + "116": { + "then": "Trampoline" + }, + "117": { + "then": "Ultimate frisbee" + }, + "118": { + "then": "Ultralight aviation" + }, + "119": { + "then": "Volleyball" + }, + "12": { + "then": "Basketball" + }, + "120": { + "then": "Wakeboarding" + }, + "121": { + "then": "Water polo" + }, + "122": { + "then": "Waterskiing" + }, + "123": { + "then": "Olympic weightlifting" + }, + "124": { + "then": "Windsurfing" + }, + "125": { + "then": "Wrestling" + }, + "126": { + "then": "Yoga" + }, + "127": { + "then": "Zurkhaneh sport" + }, + "13": { + "then": "Beachvolleyball" + }, + "14": { + "then": "Biathlon" + }, + "15": { + "then": "Cue sports" + }, + "16": { + "then": "BMX" + }, + "17": { + "then": "Bobsleigh" + }, + "18": { + "then": "Boules" + }, + "19": { + "then": "Bowls" + }, + "2": { + "then": "Aerobics" + }, + "20": { + "then": "Boxing" + }, + "21": { + "then": "Bullfighting" + }, + "22": { + "then": "Canadian football" + }, + "23": { + "then": "Canoe" + }, + "24": { + "then": "Chess" + }, + "25": { + "then": "Non-competitive diving" + }, + "26": { + "then": "Rock climbing" + }, + "27": { + "then": "Climbing Adventure" + }, + "28": { + "then": "Cockfighting" + }, + "29": { + "then": "Cricket" + }, + "3": { + "then": "American football" + }, + "30": { + "then": "CrossFit" + }, + "31": { + "then": "Croquet" + }, + "32": { + "then": "Curling" + }, + "33": { + "then": "Cycle Polo" + }, + "34": { + "then": "Cycling" + }, + "35": { + "then": "Dance" + }, + "36": { + "then": "Darts" + }, + "37": { + "then": "Dog agility" + }, + "38": { + "then": "Greyhound racing" + }, + "39": { + "then": "Dragon Boat" + }, + "4": { + "then": "Aikido" + }, + "40": { + "then": "Equestrianism" + }, + "41": { + "then": "Fencing" + }, + "42": { + "then": "Field hockey" + }, + "43": { + "then": "Fitness" + }, + "44": { + "then": "5 person soccer" + }, + "45": { + "then": "Floorball" + }, + "46": { + "then": "Four square" + }, + "47": { + "then": "Paragliding" + }, + "48": { + "then": "Futsal" + }, + "49": { + "then": "Gaelic games" + }, + "5": { + "then": "Archery" + }, + "50": { + "then": "Gaga ball" + }, + "51": { + "then": "Golf" + }, + "52": { + "then": "Gymnastics" + }, + "53": { + "then": "Handball" + }, + "54": { + "then": "Hapkido" + }, + "55": { + "then": "Hiking" + }, + "56": { + "then": "Horseshoes" + }, + "57": { + "then": "Horse racing" + }, + "58": { + "then": "Ice Hockey" + }, + "59": { + "then": "Ice skating" + }, + "6": { + "then": "Athletics" + }, + "60": { + "then": "Ice stock sport" + }, + "61": { + "then": "Judo" + }, + "62": { + "then": "Karate" + }, + "63": { + "then": "Kart racing" + }, + "64": { + "then": "Kickboxing" + }, + "65": { + "then": "Kitesurfing" + }, + "66": { + "then": "Korfball" + }, + "67": { + "then": "Krachtball" + }, + "68": { + "then": "Lacrosse" + }, + "69": { + "then": "Laser tag" + }, + "7": { + "then": "Australian rules football" + }, + "70": { + "then": "Martial arts" + }, + "71": { + "then": "Miniature golf" + }, + "72": { + "then": "Radio-controlled aircraft" + }, + "73": { + "then": "Motocross" + }, + "74": { + "then": "Motorsport" + }, + "75": { + "then": "Multiple kind of sports" + }, + "76": { + "then": "Netball" + }, + "77": { + "then": "Obstacle course" + }, + "78": { + "then": "Orienteering" + }, + "79": { + "then": "Paddle tennis" + }, + "8": { + "then": "Badminton" + }, + "80": { + "then": "Padel" + }, + "81": { + "then": "Paintball" + }, + "82": { + "then": "Parachuting" + }, + "83": { + "then": "Parkour" + }, + "84": { + "then": "Palota" + }, + "85": { + "then": "Pesäpallo" + }, + "86": { + "then": "Pickleball" + }, + "87": { + "then": "Pilates" + }, + "88": { + "then": "Pole dance" + }, + "89": { + "then": "Racquetball" + }, + "9": { + "then": "Bandy" + }, + "90": { + "then": "Radio-controlled car" + }, + "91": { + "then": "Roller skating" + }, + "92": { + "then": "Rowing" + }, + "93": { + "then": "Rugby league" + }, + "94": { + "then": "Rugby union" + }, + "95": { + "then": "Running" + }, + "96": { + "then": "Sailing" + }, + "97": { + "then": "Scuba diving" + }, + "98": { + "then": "Shooting" + }, + "99": { + "then": "Shot-put" + } + }, + "question": "What sports are played at this venue?", + "render": "Sports played here: {sport}" + } + }, "title": { "render": "Sports centre" } @@ -10612,19 +11004,7 @@ "question": "In which geographical direction does this camera film?", "render": "Films to a compass heading of {camera:direction}" }, - "has_alpr": { - "mappings": { - "0": { - "then": "This is a camera without number plate recognition." - }, - "1": { - "then": "This is an ALPR (Automatic License Plate Reader)" - } - }, - "question": "Can this camera automatically detect license plates?", - "questionHint": "An ALPR (Automatic License Plate Reader) typically has two lenses and an array of infrared LEDS in between." - }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "0": { "then": "This camera is located indoors" @@ -10636,7 +11016,19 @@ "then": "This camera is probably located outdoors" } }, - "question": "Is the public space surveilled by this camera an indoor or outdoor space?" + "question": "Is this camera located inside or outside?" + }, + "has_alpr": { + "mappings": { + "0": { + "then": "This is a camera without number plate recognition." + }, + "1": { + "then": "This is an ALPR (Automatic License Plate Reader)" + } + }, + "question": "Can this camera automatically detect license plates?", + "questionHint": "An ALPR (Automatic License Plate Reader) typically has two lenses and an array of infrared LEDS in between." } }, "title": { diff --git a/langs/layers/es.json b/langs/layers/es.json index 815acc431a..dd10559116 100644 --- a/langs/layers/es.json +++ b/langs/layers/es.json @@ -10575,6 +10575,19 @@ "question": "¿En qué dirección geográfica graba esta cámara?", "render": "Graba hacia un rumbo de brújula de {camera:direction}" }, + "camera_is_indoor": { + "mappings": { + "0": { + "then": "Esta cámara está ubicada en interiores" + }, + "1": { + "then": "Esta cámara está ubicada en exteriores" + }, + "2": { + "then": "Esta cámara probablemente está ubicada en exteriores" + } + } + }, "has_alpr": { "mappings": { "0": { @@ -10586,20 +10599,6 @@ }, "question": "¿Puede esta cámara detectar automáticamente las matrículas?", "questionHint": "Un ALPR (lector automático de matrículas) suele tener dos lentes y una serie de LED infrarrojos entre ellas." - }, - "is_indoor": { - "mappings": { - "0": { - "then": "Esta cámara está ubicada en interiores" - }, - "1": { - "then": "Esta cámara está ubicada en exteriores" - }, - "2": { - "then": "Esta cámara probablemente está ubicada en exteriores" - } - }, - "question": "¿El espacio público vigilado por esta cámara es interior o exterior?" } }, "title": { diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 80858a1a8c..44b0aeacec 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -6391,7 +6391,7 @@ "question": "Dans quelle direction géographique cette caméra filme-t-elle ?", "render": "Filme dans une direction {camera:direction}" }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "0": { "then": "Cette caméra est située à l'intérieur" @@ -6402,8 +6402,7 @@ "2": { "then": "Cette caméra est probablement située à l'extérieur" } - }, - "question": "L'espace public surveillé par cette caméra est-il un espace intérieur ou extérieur ?" + } } }, "title": { diff --git a/langs/layers/it.json b/langs/layers/it.json index a14974143a..30678c8193 100644 --- a/langs/layers/it.json +++ b/langs/layers/it.json @@ -2810,7 +2810,7 @@ "question": "In quale direzione geografica punta questa videocamera?", "render": "Punta in direzione {camera:direction}" }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "0": { "then": "Questa videocamera si trova al chiuso" @@ -2821,8 +2821,7 @@ "2": { "then": "Questa videocamera si trova probabilmente all'esterno" } - }, - "question": "Lo spazio pubblico sorvegliato da questa videocamera è all'aperto o al chiuso?" + } } }, "title": { diff --git a/langs/layers/nl.json b/langs/layers/nl.json index ebbb393ecd..50126e110a 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -1730,6 +1730,9 @@ }, "title": { "mappings": { + "0": { + "then": "{name}" + }, "1": { "then": "Vogelkijkhut {name}" }, @@ -5807,6 +5810,11 @@ } }, "title": { + "mappings": { + "0": { + "then": "{name}" + } + }, "render": "Natuurgebied" } }, @@ -6352,6 +6360,21 @@ "render": "Picknicktafel" } }, + "play_forest": { + "description": "Een speelbos is een vrij toegankelijke zone in een bos", + "name": "Speelbossen", + "title": { + "mappings": { + "0": { + "then": "{name}" + }, + "1": { + "then": "Speelbos {name}" + } + }, + "render": "Speelbos" + } + }, "playground": { "deletion": { "nonDeleteMappings": { @@ -7886,6 +7909,9 @@ }, "title": { "mappings": { + "0": { + "then": "{name}" + }, "1": { "then": "Voetpad" }, @@ -8435,7 +8461,7 @@ "question": "In welke geografische richting filmt deze camera?", "render": "Filmt in kompasrichting {camera:direction}" }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "0": { "then": "Deze camera bevindt zich binnen" @@ -8447,7 +8473,7 @@ "then": "Deze camera bevindt zich waarschijnlijk buiten" } }, - "question": "Bevindt de bewaakte publieke ruimte camera zich binnen of buiten?" + "question": "Bevindt de camera zich binnen of buiten?" } }, "title": { @@ -9898,13 +9924,25 @@ } }, "village_green": { - "description": "Een laag die dorpsgroen toont (gemeenschapsgroen, maar niet echt een park)" + "description": "Een laag die dorpsgroen toont (gemeenschapsgroen, maar niet echt een park)", + "name": "Speelweide", + "title": { + "mappings": { + "0": { + "then": "{name}" + } + }, + "render": "Speelweide" + } }, "visitor_information_centre": { "description": "Een bezoekerscentrum biedt informatie over een specifieke attractie of bezienswaardigheid waar het is gevestigd.", "name": "Bezoekerscentrum", "title": { "mappings": { + "0": { + "then": "{name:nl}" + }, "1": { "then": "{name}" } @@ -10134,4 +10172,4 @@ "render": "windturbine" } } -} +} \ No newline at end of file diff --git a/langs/layers/ru.json b/langs/layers/ru.json index 24d5ea5108..6fccd80e5f 100644 --- a/langs/layers/ru.json +++ b/langs/layers/ru.json @@ -1881,7 +1881,7 @@ "camera:mount": { "question": "Как расположена эта камера?" }, - "is_indoor": { + "camera_is_indoor": { "mappings": { "1": { "then": "Эта камера расположена снаружи" diff --git a/langs/layers/sl.json b/langs/layers/sl.json index d5f601a72a..48f362370c 100644 --- a/langs/layers/sl.json +++ b/langs/layers/sl.json @@ -390,6 +390,19 @@ "question": "V katero geografsko smer snema ta kamera?", "render": "Snema v smeri kompasa {camera:direction}" }, + "camera_is_indoor": { + "mappings": { + "0": { + "then": "Ta kamera je znotraj" + }, + "1": { + "then": "Ta kamera je zunaj" + }, + "2": { + "then": "Ta kamera je verjetno zunaj" + } + } + }, "has_alpr": { "mappings": { "0": { @@ -401,20 +414,6 @@ }, "question": "Ali ta kamera lahko samodejno prepoznava registrske tablice?", "questionHint": "Kamera za prepoznavo registrskih tablic ima običajno dve leči in med njima polje infrardečih LED svetil." - }, - "is_indoor": { - "mappings": { - "0": { - "then": "Ta kamera je znotraj" - }, - "1": { - "then": "Ta kamera je zunaj" - }, - "2": { - "then": "Ta kamera je verjetno zunaj" - } - }, - "question": "Ali je javni prostor, ki ga nadzoruje ta kamera, notranji ali zunanji?" } }, "title": { diff --git a/langs/nb_NO.json b/langs/nb_NO.json index 1b8b9c9143..78bcf77f85 100644 --- a/langs/nb_NO.json +++ b/langs/nb_NO.json @@ -212,14 +212,6 @@ }, "pickLanguage": "Velg språk: ", "poweredByOsm": "Med data fra OpenStreetMap", - "questions": { - "emailIs": "E-postadressen til {category} er {email}", - "emailOf": "Hva er e-postadressen til {category}?", - "phoneNumberIs": "Telefonnummeret til denne {category} er {phone}", - "phoneNumberOf": "Hva er telefonnummeret til {category}?", - "websiteIs": "Nettside: {website}", - "websiteOf": "Hva er nettsiden til {category}?" - }, "readYourMessages": "Les alle OpenStreetMap-meldingene dine før du legger til et nytt punkt.", "removeLocationHistory": "Slett posisjonshistorikken", "returnToTheMap": "Gå tilbake til kartet", diff --git a/langs/nl.json b/langs/nl.json index 6e6ec1d4d1..d749aaeafb 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -380,14 +380,6 @@ "skippedMultiple": "Je hebt {skipped} vragen overgeslaan", "skippedOne": "Je hebt één vraag beantwoord" }, - "questions": { - "emailIs": "Het email-adres van {category} is {email}", - "emailOf": "Wat is het email-adres van {category}?", - "phoneNumberIs": "Het telefoonnummer van {category} is {phone}", - "phoneNumberOf": "Wat is het telefoonnummer van {category}?", - "websiteIs": "Website: {website}", - "websiteOf": "Wat is de website van {category}?" - }, "readYourMessages": "Gelieve eerst je berichten op OpenStreetMap te lezen alvorens nieuwe objecten toe te voegen.", "removeLocationHistory": "Verwijder de geschiedenis aan locaties", "returnToTheMap": "Ga terug naar de kaart", diff --git a/langs/pl.json b/langs/pl.json index eaabe52bfb..3d41210e62 100644 --- a/langs/pl.json +++ b/langs/pl.json @@ -279,14 +279,6 @@ "skippedMultiple": "Pominąłeś {skipped} pytania", "skippedOne": "Pominąłeś jedno pytanie" }, - "questions": { - "emailIs": "Adres e-mail {category} to {email}", - "emailOf": "Jaki jest adres e-mail {category}?", - "phoneNumberIs": "Numer telefonu tej {category} to {phone}", - "phoneNumberOf": "Jaki jest numer telefonu do {category}?", - "websiteIs": "Strona internetowa: {website}", - "websiteOf": "Jaka jest strona internetowa {category}?" - }, "readYourMessages": "Proszę przeczytać wszystkie wiadomości OpenStreetMap przed dodaniem nowej funkcji.", "removeLocationHistory": "Usuń historię lokalizacji", "returnToTheMap": "Wróć do mapy", diff --git a/langs/pt.json b/langs/pt.json index 01d2beba7b..a26e7661b3 100644 --- a/langs/pt.json +++ b/langs/pt.json @@ -366,14 +366,6 @@ "skippedMultiple": "Saltou {skipped} questões", "skippedOne": "Saltou uma questão" }, - "questions": { - "emailIs": "O endereço de e-mail de {category} é {email}", - "emailOf": "Qual é o endereço de e-mail de {category}?", - "phoneNumberIs": "O número de telefone de {category} é {phone}", - "phoneNumberOf": "Qual é o número de telefone de {category}?", - "websiteIs": "Site: {website}", - "websiteOf": "Qual é o site de {category}?" - }, "readYourMessages": "Por favor, leia todas as suas mensagens do OpenStreetMap antes de adicionar um novo elemento.", "removeLocationHistory": "Eliminar o histórico de localização", "returnToTheMap": "Voltar ao mapa", diff --git a/langs/pt_BR.json b/langs/pt_BR.json index d847a272cc..b2d1007c4d 100644 --- a/langs/pt_BR.json +++ b/langs/pt_BR.json @@ -80,14 +80,6 @@ }, "osmLinkTooltip": "Veja este objeto no OpenStreetMap para histórico e mais opções de edição", "pickLanguage": "Escolha um idioma: ", - "questions": { - "emailIs": "O endereço de e-mail deste {category} é {email}", - "emailOf": "Qual é o endereço de e-mail de {category}?", - "phoneNumberIs": "O número de telefone deste {category} é {phone}", - "phoneNumberOf": "Qual é o número de telefone de {category}?", - "websiteIs": "Site: {website}", - "websiteOf": "Qual é o site de {category}?" - }, "readYourMessages": "Por favor, leia todas as suas mensagens do OpenStreetMap antes de adicionar um novo ponto.", "returnToTheMap": "Voltar ao mapa", "save": "Salvar", diff --git a/langs/ru.json b/langs/ru.json index ec8cbf8f8b..80202ab00a 100644 --- a/langs/ru.json +++ b/langs/ru.json @@ -124,14 +124,6 @@ }, "osmLinkTooltip": "Посмотрите этот объект на OpenStreetMap чтобы увидеть его историю или отредактировать", "pickLanguage": "Выберите язык: ", - "questions": { - "emailIs": "Адрес электронной почты у {category}: {email}", - "emailOf": "Какой адрес электронной почты у {category}?", - "phoneNumberIs": "Телефонный номер {category}: {phone}", - "phoneNumberOf": "Какой номер телефона у {category}?", - "websiteIs": "Сайт: {website}", - "websiteOf": "Какой сайт у {category}?" - }, "readYourMessages": "Пожалуйста, прочитайте все ваши сообщения на сайте OpenStreetMap перед тем как добавлять новую точку.", "returnToTheMap": "Вернуться на карту", "save": "Сохранить", diff --git a/langs/themes/nl.json b/langs/themes/nl.json index e976bb4969..266a9c76c1 100644 --- a/langs/themes/nl.json +++ b/langs/themes/nl.json @@ -653,8 +653,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} " } } }, @@ -671,8 +700,35 @@ } } } + }, + "5": { + "override": { + "tagRenderings+": { + "0": { + "mappings": { + "0": { + "then": "Geen omliggend OSM-gebouw gevonden" + } + } + }, + "3": { + "mappings": { + "0": { + "then": "Geen omliggend OSM-gebouw gevonden. Een omliggend gebouw is nodig om dit punt als adres punt toe te voegen.
Importeer eerst de gebouwen. Vernieuw dan de pagina om losse adressen toe te voegen
" + } + }, + "render": { + "special": { + "text": "Voeg dit adres als een nieuw adrespunt toe" + } + } + } + } + } } - } + }, + "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. ", @@ -1104,6 +1160,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", @@ -1177,6 +1238,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", @@ -1297,6 +1399,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", @@ -1410,9 +1516,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/langs/zh_Hant.json b/langs/zh_Hant.json index 2027183fcc..e257ff9bbf 100644 --- a/langs/zh_Hant.json +++ b/langs/zh_Hant.json @@ -373,14 +373,6 @@ "skippedMultiple": "你跳過 {skipped} 問題", "skippedOne": "你跳過一個問題" }, - "questions": { - "emailIs": "{category} 的電子郵件地址是{email}", - "emailOf": "{category} 的電子郵件地址是?", - "phoneNumberIs": "此 {category} 的電話號碼為 {phone}", - "phoneNumberOf": "{category} 的電話號碼是?", - "websiteIs": "網站:{website}", - "websiteOf": "{category} 的網站網址是?" - }, "readYourMessages": "請先閱讀開放街圖訊息之前再來新增新圖徵。", "removeLocationHistory": "刪除位置歷史", "retry": "重試", diff --git a/public/assets/source-sans-pro.regular.ttf b/public/assets/fonts/source-sans-pro.regular.ttf similarity index 100% rename from public/assets/source-sans-pro.regular.ttf rename to public/assets/fonts/source-sans-pro.regular.ttf diff --git a/public/css/index-tailwind-output.css b/public/css/index-tailwind-output.css index 6e8dbe4e4f..1ced5b6da7 100644 --- a/public/css/index-tailwind-output.css +++ b/public/css/index-tailwind-output.css @@ -5067,7 +5067,7 @@ input[type="range"].range-lg::-moz-range-thumb { @font-face { font-family: "Source Sans Pro"; - src: url("/assets/source-sans-pro.regular.ttf") format("woff"); + src: url("../assets/fonts/source-sans-pro.regular.ttf") format("woff"); } /***********************************************************************\ diff --git a/src/Logic/State/UserRelatedState.ts b/src/Logic/State/UserRelatedState.ts index 6700f26641..63d07567cf 100644 --- a/src/Logic/State/UserRelatedState.ts +++ b/src/Logic/State/UserRelatedState.ts @@ -562,4 +562,14 @@ export default class UserRelatedState { return amendedPrefs } + + + /** + * The disabled questions for this theme and layer + */ + public getThemeDisabled(themeId: string, layerId: string): UIEventSource { + const flatSource = this.osmConnection.getPreference("disabled-questions-" + themeId + "-" + layerId, "[]") + return UIEventSource.asObject(flatSource, []) + } + } diff --git a/src/UI/Base/DotMenu.svelte b/src/UI/Base/DotMenu.svelte index 2f0adb2464..b5197dcfd1 100644 --- a/src/UI/Base/DotMenu.svelte +++ b/src/UI/Base/DotMenu.svelte @@ -9,7 +9,7 @@ export let open = new UIEventSource(false) export let dotsSize = `w-6 h-6` export let dotsPosition = `top-0 right-0` - export let hideBackground = false + export let hideBackground: boolean = false let menuPosition = `` if (dotsPosition.indexOf("left-0") >= 0) { menuPosition = "left-0" @@ -50,7 +50,7 @@ } :global(.dots-menu > path) { - fill: var(--interactive-background); + fill: var(--button-background-hover); transition: fill 350ms linear; cursor: pointer; } @@ -73,9 +73,9 @@ background-color: white; } - .transition-background { - transition: background-color 150ms linear; - } + .transition-background { + transition: background-color 150ms linear; + } .transition-background.collapsed { background-color: #00000000; diff --git a/src/UI/Popup/DisabledQuestions.svelte b/src/UI/Popup/DisabledQuestions.svelte new file mode 100644 index 0000000000..b7a7b2c5aa --- /dev/null +++ b/src/UI/Popup/DisabledQuestions.svelte @@ -0,0 +1,27 @@ + + +

+ +

+{#if $allDisabled.length === 0} + +{:else} + + {#each layers as layer (layer.id)} + + {/each} +{/if} diff --git a/src/UI/Popup/DisabledQuestionsLayer.svelte b/src/UI/Popup/DisabledQuestionsLayer.svelte new file mode 100644 index 0000000000..82912b4dc1 --- /dev/null +++ b/src/UI/Popup/DisabledQuestionsLayer.svelte @@ -0,0 +1,45 @@ + + +{#if $disabledQuestions.length > 0} +
+ +

+
+ layer.defaultIcon()} /> +
+ +

+
+ {#each $disabledQuestions as id} + + {/each} +
+
+{/if} diff --git a/src/UI/Popup/TagRendering/Questionbox.svelte b/src/UI/Popup/TagRendering/Questionbox.svelte index 20a02d158e..002e13c881 100644 --- a/src/UI/Popup/TagRendering/Questionbox.svelte +++ b/src/UI/Popup/TagRendering/Questionbox.svelte @@ -43,11 +43,20 @@ } return true } + const baseQuestions = (layer?.tagRenderings ?? [])?.filter( - (tr) => allowed(tr.labels) && tr.question !== undefined + (tr) => allowed(tr.labels) && tr.question !== undefined, ) + + /** + * Ids of skipped questions + */ let skippedQuestions = new UIEventSource>(new Set()) + let layerDisabledForTheme = state.userRelatedState.getThemeDisabled(state.layout.id, layer.id) + layerDisabledForTheme.addCallbackAndRunD(disabled => { + skippedQuestions.set(new Set(disabled.concat(Array.from(skippedQuestions.data)))) + }) let questionboxElem: HTMLDivElement let questionsToAsk = tags.map( (tags) => { @@ -69,10 +78,10 @@ } return questionsToAsk }, - [skippedQuestions] + [skippedQuestions], ) let firstQuestion: UIEventSource = new UIEventSource( - undefined + undefined, ) let allQuestionsToAsk: UIEventSource = new UIEventSource< TagRenderingConfig[] @@ -95,6 +104,8 @@ let skipped: number = 0 let loginEnabled = state.featureSwitches.featureSwitchEnableLogin + let debug = state.featureSwitches.featureSwitchIsDebugging + function skip(question: { id: string }, didAnswer: boolean = false) { skippedQuestions.data.add(question.id) // Must use ID, the config object might be a copy of the original @@ -117,43 +128,84 @@ class="marker-questionbox-root" class:hidden={$questionsToAsk.length === 0 && skipped === 0 && answered === 0} > + {#if $showAllQuestionsAtOnce} +
+ {#each $allQuestionsToAsk as question (question.id)} + + {/each} +
+ {:else if $firstQuestion !== undefined} + { + skip($firstQuestion, true) + }} + > + + + {/if} + {#if $allQuestionsToAsk.length === 0} +
+ +
+ {/if} + +
+ {#if skipped + answered > 0} -
- -
- {#if answered === 0} - {#if skipped === 1} - - {:else} - - {/if} - {:else if answered === 1} - {#if skipped === 0} - +
+ {#if answered === 0} + {#if skipped === 1} + + {:else} + + {/if} + {:else if answered === 1} + {#if skipped === 0} + + {:else if skipped === 1} + + {:else} + + {/if} + {:else if skipped === 0} + {:else if skipped === 1} - + {:else} - {/if} - {:else if skipped === 0} - - {:else if skipped === 1} - - {:else} - - {/if} + /> + {/if} +
- {#if skipped > 0} + {#if skipped + $skippedQuestions.size > 0} + {/if} {/if} - {:else} -
- {#if $showAllQuestionsAtOnce} -
- {#each $allQuestionsToAsk as question (question.id)} - - {/each} -
- {:else if $firstQuestion !== undefined} - { - skip($firstQuestion, true) + + {#if $skippedQuestions.size - skipped > 0} + - - {/if} -
- {/if} + > + Show the disabled questions for this object + + + {/if} + {#if $debug} + Skipped questions are {Array.from($skippedQuestions).join(", ")} + {/if} +
{/if} diff --git a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte index 4fe9758a31..15a32b7ae6 100644 --- a/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte +++ b/src/UI/Popup/TagRendering/TagRenderingQuestion.svelte @@ -36,6 +36,8 @@ import { Modal } from "flowbite-svelte" import Popup from "../../Base/Popup.svelte" import If from "../../Base/If.svelte" + import DotMenu from "../../Base/DotMenu.svelte" + import SidebarUnit from "../../Base/SidebarUnit.svelte" export let config: TagRenderingConfig export let tags: UIEventSource> @@ -338,10 +340,41 @@ .then((changes) => state.changes.applyChanges(changes)) .catch(console.error) } + + let disabledInTheme = state.userRelatedState.getThemeDisabled(state.layout.id, layer?.id) + let menuIsOpened = new UIEventSource(false) + + function disableQuestion() { + const newList = Utils.Dedup([config.id, ...disabledInTheme.data]) + disabledInTheme.set(newList) + menuIsOpened.set(false) + } + + function enableQuestion() { + const newList = disabledInTheme.data?.filter(id => id !== config.id) + disabledInTheme.set(newList) + menuIsOpened.set(false) + } {#if question !== undefined}
+ + {#if layer.isNormal()} + + + {#if $disabledInTheme.indexOf(config.id) >= 0} + + {:else} + + {/if} + + + {/if}