diff --git a/UI/Popup/DeleteWizard.ts b/UI/Popup/DeleteWizard.ts index 5bcb5a23be..478737a9ed 100644 --- a/UI/Popup/DeleteWizard.ts +++ b/UI/Popup/DeleteWizard.ts @@ -117,7 +117,18 @@ export default class DeleteWizard extends Toggle { deleteButton, confirm), - new VariableUiElement(deleteAbility.canBeDeleted.map(cbd => new Combine([cbd.reason.Clone(), t.useSomethingElse.Clone()]))), + new VariableUiElement(deleteAbility.canBeDeleted.map(cbd => + + new Combine([ + Svg.delete_not_allowed_svg().SetStyle("height: 2rem; width: auto").SetClass("mr-2"), + new Combine([ + t.cannotBeDeleted.Clone(), + cbd.reason.Clone().SetClass("subtle"), + t.useSomethingElse.Clone().SetClass("subtle")]).SetClass("flex flex-col") + ]).SetClass("flex m-2 p-2 rounded-lg bg-gray-200 bg-gray-200"))) + + + , deleteAbility.canBeDeleted.map(cbd => allowSoftDeletion || cbd.canBeDeleted !== false)), t.loginToDelete.Clone().onClick(State.state.osmConnection.AttemptLogin), diff --git a/UI/Popup/MoveWizard.ts b/UI/Popup/MoveWizard.ts index 4698d3743b..81f8a850f8 100644 --- a/UI/Popup/MoveWizard.ts +++ b/UI/Popup/MoveWizard.ts @@ -210,11 +210,11 @@ export default class MoveWizard extends Toggle { super( moveFlow, new Combine([ - Svg.move_not_allowed_svg().SetStyle("height: 2rem"), + Svg.move_not_allowed_svg().SetStyle("height: 2rem").SetClass("m-2"), new Combine([t.cannotBeMoved.Clone(), new VariableUiElement(moveDisallowedReason).SetClass("subtle") ]).SetClass("flex flex-col") - ]).SetClass("flex"), + ]).SetClass("flex m-2 p-2 rounded-lg bg-gray-200"), moveDisallowedReason.map(r => r === undefined) ) } diff --git a/assets/layers/artwork/artwork.json b/assets/layers/artwork/artwork.json index f8f1ddba08..b89f83df75 100644 --- a/assets/layers/artwork/artwork.json +++ b/assets/layers/artwork/artwork.json @@ -1,398 +1,398 @@ { - "id": "artwork", - "name": { - "en": "Artworks", - "nl": "Kunstwerken", - "fr": "Œuvres d'art", - "de": "Kunstwerke", - "id": "Karya seni", - "it": "Opere d’arte", - "ru": "Произведения искусства", - "es": "Obras de arte", - "ja": "美術品", - "zh_Hant": "藝術品", - "nb_NO": "Kunstverk" - }, - "source": { - "osmTags": "tourism=artwork" - }, - "title": { - "render": { - "en": "Artwork", - "nl": "Kunstwerk", - "fr": "Œuvre d'art", - "de": "Kunstwerk", - "id": "Karya seni", - "it": "Opera d’arte", - "ru": "Художественная работа", - "es": "Obra de arte", - "ja": "アートワーク", - "zh_Hant": "藝術品", - "nb_NO": "Kunstverk" - }, - "mappings": [ - { - "if": "name~*", - "then": { - "en": "Artwork {name}", - "nl": "Kunstwerk {name}", - "fr": "Œuvre d'art {name}", - "de": "Kunstwerk {name}", - "id": "Karya seni {name}", - "it": "Opera {name}", - "ru": "Художественная работа {name}", - "es": "Obra de arte {nombre}", - "ja": "アートワーク {name}", - "zh_Hant": "藝術品{name}" - } - } - ] - }, - "icon": { - "render": "./assets/themes/artwork/artwork.svg" - }, - "color": { - "render": "#0000ff" - }, - "width": { - "render": "10" - }, - "description": { - "en": "Diverse pieces of artwork", - "nl": "Verschillende soorten kunstwerken", - "fr": "Diverses œuvres d'art", - "de": "Verschiedene Kunstwerke", - "it": "Diverse opere d’arte", - "ru": "Разнообразные произведения искусства", - "es": "Diversas piezas de obras de arte", - "ja": "多様な作品", - "zh_Hant": "不同類型的藝術品" - }, - "minzoom": 12, - "wayHandling": 2, - "presets": [ - { - "tags": [ - "tourism=artwork" - ], - "title": { - "en": "Artwork", - "nl": "Kunstwerk", - "fr": "Œuvre d'art", - "de": "Kunstwerk", - "it": "Opera d’arte", - "ru": "Художественная работа", - "es": "Obra de arte", - "ja": "アートワーク", + "id": "artwork", + "name": { + "en": "Artworks", + "nl": "Kunstwerken", + "fr": "Œuvres d'art", + "de": "Kunstwerke", + "id": "Karya seni", + "it": "Opere d’arte", + "ru": "Произведения искусства", + "es": "Obras de arte", + "ja": "美術品", "zh_Hant": "藝術品", "nb_NO": "Kunstverk" - } - } - ], - "tagRenderings": [ - "images", - { - "render": { - "en": "This is a {artwork_type}", - "nl": "Dit is een {artwork_type}", - "fr": "Type d'œuvre : {artwork_type}", - "de": "Dies ist ein {artwork_type}", - "it": "Si tratta di un {artwork_type}", - "ru": "Это {artwork_type}", - "es": "Esta es un {artwork_type}", - "ja": "これは{artwork_type}です", - "zh_Hant": "這是 {artwork_type}", - "nb_NO": "Dette er et kunstverk av typen {artwork_type}" - }, - "question": { - "en": "What is the type of this artwork?", - "nl": "Wat voor soort kunstwerk is dit?", - "fr": "Quel est le type de cette œuvre d'art?", - "de": "Was ist die Art dieses Kunstwerks?", - "it": "Che tipo di opera d’arte è questo?", - "ru": "К какому типу относится эта работа?", - "es": "Cuál es el tipo de esta obra de arte?", - "ja": "この作品の種類は何ですか?", - "zh_Hant": "這是什麼類型的藝術品?", - "nb_NO": "Hvilken type kunstverk er dette?" - }, - "freeform": { - "key": "artwork_type", - "addExtraTags": [ - "fixme=Artowrk type was added with the freeform, might need another check" + }, + "source": { + "osmTags": "tourism=artwork" + }, + "title": { + "render": { + "en": "Artwork", + "nl": "Kunstwerk", + "fr": "Œuvre d'art", + "de": "Kunstwerk", + "id": "Karya seni", + "it": "Opera d’arte", + "ru": "Художественная работа", + "es": "Obra de arte", + "ja": "アートワーク", + "zh_Hant": "藝術品", + "nb_NO": "Kunstverk" + }, + "mappings": [ + { + "if": "name~*", + "then": { + "en": "Artwork {name}", + "nl": "Kunstwerk {name}", + "fr": "Œuvre d'art {name}", + "de": "Kunstwerk {name}", + "id": "Karya seni {name}", + "it": "Opera {name}", + "ru": "Художественная работа {name}", + "es": "Obra de arte {nombre}", + "ja": "アートワーク {name}", + "zh_Hant": "藝術品{name}" + } + } ] - }, - "mappings": [ + }, + "icon": { + "render": "./assets/themes/artwork/artwork.svg" + }, + "color": { + "render": "#0000ff" + }, + "width": { + "render": "10" + }, + "description": { + "en": "Diverse pieces of artwork", + "nl": "Verschillende soorten kunstwerken", + "fr": "Diverses œuvres d'art", + "de": "Verschiedene Kunstwerke", + "it": "Diverse opere d’arte", + "ru": "Разнообразные произведения искусства", + "es": "Diversas piezas de obras de arte", + "ja": "多様な作品", + "zh_Hant": "不同類型的藝術品" + }, + "minzoom": 12, + "wayHandling": 2, + "presets": [ { - "if": "artwork_type=architecture", - "then": { - "en": "Architecture", - "nl": "Architectuur", - "fr": "Architecture", - "de": "Architektur", - "it": "Architettura", - "ru": "Архитектура", - "ja": "建物", - "zh_Hant": "建築物", - "nb_NO": "Arkitektur" - } - }, - { - "if": "artwork_type=mural", - "then": { - "en": "Mural", - "nl": "Muurschildering", - "fr": "Peinture murale", - "de": "Wandbild", - "it": "Murale", - "ru": "Фреска", - "ja": "壁画", - "zh_Hant": "壁畫", - "nb_NO": "Veggmaleri" - } - }, - { - "if": "artwork_type=painting", - "then": { - "en": "Painting", - "nl": "Schilderij", - "fr": "Peinture", - "de": "Malerei", - "it": "Dipinto", - "ru": "Живопись", - "ja": "絵画", - "zh_Hant": "繪畫", - "nb_NO": "Maleri" - } - }, - { - "if": "artwork_type=sculpture", - "then": { - "en": "Sculpture", - "nl": "Beeldhouwwerk", - "fr": "Sculpture", - "de": "Skulptur", - "it": "Scultura", - "ru": "Скульптура", - "ja": "彫刻", - "zh_Hant": "雕塑", - "nb_NO": "Skulptur" - } - }, - { - "if": "artwork_type=statue", - "then": { - "en": "Statue", - "nl": "Standbeeld", - "fr": "Statue", - "de": "Statue", - "it": "Statua", - "ru": "Статуя", - "ja": "彫像", - "zh_Hant": "雕像", - "nb_NO": "Statue" - } - }, - { - "if": "artwork_type=bust", - "then": { - "en": "Bust", - "nl": "Buste", - "fr": "Buste", - "de": "Büste", - "it": "Busto", - "ru": "Бюст", - "ja": "胸像", - "zh_Hant": "半身像", - "nb_NO": "Byste" - } - }, - { - "if": "artwork_type=stone", - "then": { - "en": "Stone", - "nl": "Steen", - "fr": "Rocher", - "de": "Stein", - "it": "Masso", - "ru": "Камень", - "ja": "石", - "zh_Hant": "石頭", - "nb_NO": "Stein" - } - }, - { - "if": "artwork_type=installation", - "then": { - "en": "Installation", - "nl": "Installatie", - "fr": "Installation", - "de": "Installation", - "it": "Istallazione", - "ru": "Инсталляция", - "ja": "インスタレーション", - "zh_Hant": "安裝", - "nb_NO": "Installasjon" - } - }, - { - "if": "artwork_type=graffiti", - "then": { - "en": "Graffiti", - "nl": "Graffiti", - "fr": "Graffiti", - "de": "Graffiti", - "it": "Graffiti", - "ru": "Граффити", - "ja": "落書き", - "zh_Hant": "塗鴨", - "nb_NO": "Graffiti" - } - }, - { - "if": "artwork_type=relief", - "then": { - "en": "Relief", - "nl": "Reliëf", - "fr": "Relief", - "de": "Relief", - "it": "Rilievo", - "ru": "Рельеф", - "ja": "レリーフ", - "zh_Hant": "寬慰", - "nb_NO": "Relieff" - } - }, - { - "if": "artwork_type=azulejo", - "then": { - "en": "Azulejo (Spanish decorative tilework)", - "nl": "Azulejo (Spaanse siertegels)", - "fr": "Azulejo (faïence latine)", - "de": "Azulejo (spanische dekorative Fliesenarbeit)", - "it": "Azulejo (ornamento decorativo piastrellato spagnolo)", - "ru": "Азуле́жу (испанская роспись глазурованной керамической плитки)", - "ja": "Azulejo (スペインの装飾タイル)", - "zh_Hant": "Azulejo (西班牙雕塑作品名稱)", - "nb_NO": "Azulejo (Spansk dekorativt flisverk)" - } - }, - { - "if": "artwork_type=tilework", - "then": { - "en": "Tilework", - "nl": "Tegelwerk", - "fr": "Carrelage", - "de": "Fliesenarbeit", - "it": "Mosaico di piastrelle", - "ru": "Плитка (мозаика)", - "ja": "タイルワーク", - "zh_Hant": "瓷磚", - "nb_NO": "Flisarbeid" - } + "tags": [ + "tourism=artwork" + ], + "title": { + "en": "Artwork", + "nl": "Kunstwerk", + "fr": "Œuvre d'art", + "de": "Kunstwerk", + "it": "Opera d’arte", + "ru": "Художественная работа", + "es": "Obra de arte", + "ja": "アートワーク", + "zh_Hant": "藝術品", + "nb_NO": "Kunstverk" + } } - ], - "id": "artwork-artwork_type" + ], + "tagRenderings": [ + "images", + { + "render": { + "en": "This is a {artwork_type}", + "nl": "Dit is een {artwork_type}", + "fr": "Type d'œuvre : {artwork_type}", + "de": "Dies ist ein {artwork_type}", + "it": "Si tratta di un {artwork_type}", + "ru": "Это {artwork_type}", + "es": "Esta es un {artwork_type}", + "ja": "これは{artwork_type}です", + "zh_Hant": "這是 {artwork_type}", + "nb_NO": "Dette er et kunstverk av typen {artwork_type}" + }, + "question": { + "en": "What is the type of this artwork?", + "nl": "Wat voor soort kunstwerk is dit?", + "fr": "Quel est le type de cette œuvre d'art?", + "de": "Was ist die Art dieses Kunstwerks?", + "it": "Che tipo di opera d’arte è questo?", + "ru": "К какому типу относится эта работа?", + "es": "Cuál es el tipo de esta obra de arte?", + "ja": "この作品の種類は何ですか?", + "zh_Hant": "這是什麼類型的藝術品?", + "nb_NO": "Hvilken type kunstverk er dette?" + }, + "freeform": { + "key": "artwork_type", + "addExtraTags": [ + "fixme=Artowrk type was added with the freeform, might need another check" + ] + }, + "mappings": [ + { + "if": "artwork_type=architecture", + "then": { + "en": "Architecture", + "nl": "Architectuur", + "fr": "Architecture", + "de": "Architektur", + "it": "Architettura", + "ru": "Архитектура", + "ja": "建物", + "zh_Hant": "建築物", + "nb_NO": "Arkitektur" + } + }, + { + "if": "artwork_type=mural", + "then": { + "en": "Mural", + "nl": "Muurschildering", + "fr": "Peinture murale", + "de": "Wandbild", + "it": "Murale", + "ru": "Фреска", + "ja": "壁画", + "zh_Hant": "壁畫", + "nb_NO": "Veggmaleri" + } + }, + { + "if": "artwork_type=painting", + "then": { + "en": "Painting", + "nl": "Schilderij", + "fr": "Peinture", + "de": "Malerei", + "it": "Dipinto", + "ru": "Живопись", + "ja": "絵画", + "zh_Hant": "繪畫", + "nb_NO": "Maleri" + } + }, + { + "if": "artwork_type=sculpture", + "then": { + "en": "Sculpture", + "nl": "Beeldhouwwerk", + "fr": "Sculpture", + "de": "Skulptur", + "it": "Scultura", + "ru": "Скульптура", + "ja": "彫刻", + "zh_Hant": "雕塑", + "nb_NO": "Skulptur" + } + }, + { + "if": "artwork_type=statue", + "then": { + "en": "Statue", + "nl": "Standbeeld", + "fr": "Statue", + "de": "Statue", + "it": "Statua", + "ru": "Статуя", + "ja": "彫像", + "zh_Hant": "雕像", + "nb_NO": "Statue" + } + }, + { + "if": "artwork_type=bust", + "then": { + "en": "Bust", + "nl": "Buste", + "fr": "Buste", + "de": "Büste", + "it": "Busto", + "ru": "Бюст", + "ja": "胸像", + "zh_Hant": "半身像", + "nb_NO": "Byste" + } + }, + { + "if": "artwork_type=stone", + "then": { + "en": "Stone", + "nl": "Steen", + "fr": "Rocher", + "de": "Stein", + "it": "Masso", + "ru": "Камень", + "ja": "石", + "zh_Hant": "石頭", + "nb_NO": "Stein" + } + }, + { + "if": "artwork_type=installation", + "then": { + "en": "Installation", + "nl": "Installatie", + "fr": "Installation", + "de": "Installation", + "it": "Istallazione", + "ru": "Инсталляция", + "ja": "インスタレーション", + "zh_Hant": "安裝", + "nb_NO": "Installasjon" + } + }, + { + "if": "artwork_type=graffiti", + "then": { + "en": "Graffiti", + "nl": "Graffiti", + "fr": "Graffiti", + "de": "Graffiti", + "it": "Graffiti", + "ru": "Граффити", + "ja": "落書き", + "zh_Hant": "塗鴨", + "nb_NO": "Graffiti" + } + }, + { + "if": "artwork_type=relief", + "then": { + "en": "Relief", + "nl": "Reliëf", + "fr": "Relief", + "de": "Relief", + "it": "Rilievo", + "ru": "Рельеф", + "ja": "レリーフ", + "zh_Hant": "寬慰", + "nb_NO": "Relieff" + } + }, + { + "if": "artwork_type=azulejo", + "then": { + "en": "Azulejo (Spanish decorative tilework)", + "nl": "Azulejo (Spaanse siertegels)", + "fr": "Azulejo (faïence latine)", + "de": "Azulejo (spanische dekorative Fliesenarbeit)", + "it": "Azulejo (ornamento decorativo piastrellato spagnolo)", + "ru": "Азуле́жу (испанская роспись глазурованной керамической плитки)", + "ja": "Azulejo (スペインの装飾タイル)", + "zh_Hant": "Azulejo (西班牙雕塑作品名稱)", + "nb_NO": "Azulejo (Spansk dekorativt flisverk)" + } + }, + { + "if": "artwork_type=tilework", + "then": { + "en": "Tilework", + "nl": "Tegelwerk", + "fr": "Carrelage", + "de": "Fliesenarbeit", + "it": "Mosaico di piastrelle", + "ru": "Плитка (мозаика)", + "ja": "タイルワーク", + "zh_Hant": "瓷磚", + "nb_NO": "Flisarbeid" + } + } + ], + "id": "artwork-artwork_type" + }, + { + "question": { + "en": "Which artist created this?", + "nl": "Welke kunstenaar creëerde dit kunstwerk?", + "fr": "Quel artiste a créé cette œuvre ?", + "de": "Welcher Künstler hat das geschaffen?", + "it": "Quale artista ha creato quest’opera?", + "ru": "Какой художник создал это?", + "ja": "どのアーティストが作ったんですか?", + "zh_Hant": "創造這個的藝術家是誰?", + "nb_NO": "Hvilken artist lagde dette?" + }, + "render": { + "en": "Created by {artist_name}", + "nl": "Gecreëerd door {artist_name}", + "fr": "Créé par {artist_name}", + "de": "Erstellt von {artist_name}", + "it": "Creato da {artist_name}", + "ru": "Создано {artist_name}", + "ja": "作成者:{artist_name}", + "zh_Hant": "{artist_name} 創作", + "nb_NO": "Laget av {artist_name}" + }, + "freeform": { + "key": "artist_name" + }, + "id": "artwork-artist_name" + }, + { + "question": { + "en": "Is there a website with more information about this artwork?", + "nl": "Is er een website met meer informatie over dit kunstwerk?", + "fr": "Existe-t-il un site web où trouver plus d'informations sur cette œuvre d'art ?", + "de": "Gibt es eine Website mit weiteren Informationen über dieses Kunstwerk?", + "it": "Esiste un sito web con maggiori informazioni su quest’opera?", + "ru": "Есть ли сайт с более подробной информацией об этой работе?", + "ja": "この作品についての詳しい情報はどのウェブサイトにありますか?", + "zh_Hant": "在那個網站能夠找到更多藝術品的資訊?", + "nb_NO": "Finnes det en nettside med mer info om dette kunstverket?" + }, + "render": { + "en": "More information on this website", + "nl": "Meer informatie op deze website", + "fr": "Plus d'info sûr ce site web", + "de": "Weitere Informationen auf dieser Webseite", + "id": "Info lanjut tersedia di laman web ini.", + "it": "Ulteriori informazioni su questo sito web", + "ru": "Больше информации на этом сайте", + "ja": "Webサイトに詳細情報がある", + "zh_Hant": "這個網站有更多資訊", + "nb_NO": "Mer info er å finne på denne nettsiden" + }, + "freeform": { + "key": "website", + "type": "url" + }, + "id": "artwork-website" + }, + { + "question": { + "en": "Which Wikidata-entry corresponds with this artwork?", + "nl": "Welk Wikidata-item beschrijft dit kunstwerk?", + "fr": "Quelle entrée Wikidata correspond à cette œuvre d'art ?", + "de": "Welcher Wikidata-Eintrag entspricht diesem Kunstwerk?", + "it": "Quale elemento Wikidata corrisponde a quest’opera d’arte?", + "ru": "Какая запись в Wikidata соответсвует этой работе?", + "ja": "このアートワークに関するWikidataのエントリーはどれですか?", + "zh_Hant": "這個藝術品有那個對應的 Wikidata 項目?", + "nb_NO": "Hvilken Wikipedia-oppføring samsvarer med dette kunstverket?" + }, + "render": { + "en": "Corresponds with {wikidata}", + "nl": "Komt overeen met {wikidata}", + "fr": "Correspond à {wikidata}", + "de": "Entspricht {wikidata}", + "it": "Corrisponde a {wikidata}", + "ru": "Запись об этой работе в wikidata: {wikidata}", + "ja": "{wikidata}に関連する", + "zh_Hant": "與 {wikidata}對應", + "nb_NO": "Samsvarer med {wikidata}" + }, + "freeform": { + "key": "wikidata", + "type": "wikidata" + }, + "id": "artwork-wikidata" + } + ], + "deletion": { + "softDeletionTags": { + "and": [ + "razed:tourism=artwork", + "tourism=" + ] + }, + "neededChangesets": 5 }, - { - "question": { - "en": "Which artist created this?", - "nl": "Welke kunstenaar creëerde dit kunstwerk?", - "fr": "Quel artiste a créé cette œuvre ?", - "de": "Welcher Künstler hat das geschaffen?", - "it": "Quale artista ha creato quest’opera?", - "ru": "Какой художник создал это?", - "ja": "どのアーティストが作ったんですか?", - "zh_Hant": "創造這個的藝術家是誰?", - "nb_NO": "Hvilken artist lagde dette?" - }, - "render": { - "en": "Created by {artist_name}", - "nl": "Gecreëerd door {artist_name}", - "fr": "Créé par {artist_name}", - "de": "Erstellt von {artist_name}", - "it": "Creato da {artist_name}", - "ru": "Создано {artist_name}", - "ja": "作成者:{artist_name}", - "zh_Hant": "{artist_name} 創作", - "nb_NO": "Laget av {artist_name}" - }, - "freeform": { - "key": "artist_name" - }, - "id": "artwork-artist_name" - }, - { - "question": { - "en": "Is there a website with more information about this artwork?", - "nl": "Is er een website met meer informatie over dit kunstwerk?", - "fr": "Existe-t-il un site web où trouver plus d'informations sur cette œuvre d'art ?", - "de": "Gibt es eine Website mit weiteren Informationen über dieses Kunstwerk?", - "it": "Esiste un sito web con maggiori informazioni su quest’opera?", - "ru": "Есть ли сайт с более подробной информацией об этой работе?", - "ja": "この作品についての詳しい情報はどのウェブサイトにありますか?", - "zh_Hant": "在那個網站能夠找到更多藝術品的資訊?", - "nb_NO": "Finnes det en nettside med mer info om dette kunstverket?" - }, - "render": { - "en": "More information on this website", - "nl": "Meer informatie op deze website", - "fr": "Plus d'info sûr ce site web", - "de": "Weitere Informationen auf dieser Webseite", - "id": "Info lanjut tersedia di laman web ini.", - "it": "Ulteriori informazioni su questo sito web", - "ru": "Больше информации на этом сайте", - "ja": "Webサイトに詳細情報がある", - "zh_Hant": "這個網站有更多資訊", - "nb_NO": "Mer info er å finne på denne nettsiden" - }, - "freeform": { - "key": "website", - "type": "url" - }, - "id": "artwork-website" - }, - { - "question": { - "en": "Which Wikidata-entry corresponds with this artwork?", - "nl": "Welk Wikidata-item beschrijft dit kunstwerk?", - "fr": "Quelle entrée Wikidata correspond à cette œuvre d'art ?", - "de": "Welcher Wikidata-Eintrag entspricht diesem Kunstwerk?", - "it": "Quale elemento Wikidata corrisponde a quest’opera d’arte?", - "ru": "Какая запись в Wikidata соответсвует этой работе?", - "ja": "このアートワークに関するWikidataのエントリーはどれですか?", - "zh_Hant": "這個藝術品有那個對應的 Wikidata 項目?", - "nb_NO": "Hvilken Wikipedia-oppføring samsvarer med dette kunstverket?" - }, - "render": { - "en": "Corresponds with {wikidata}", - "nl": "Komt overeen met {wikidata}", - "fr": "Correspond à {wikidata}", - "de": "Entspricht {wikidata}", - "it": "Corrisponde a {wikidata}", - "ru": "Запись об этой работе в wikidata: {wikidata}", - "ja": "{wikidata}に関連する", - "zh_Hant": "與 {wikidata}對應", - "nb_NO": "Samsvarer med {wikidata}" - }, - "freeform": { - "key": "wikidata", - "type": "wikidata" - }, - "id": "artwork-wikidata" + "allowMove": { + "enableRelocation": false, + "enableImproveAccuraccy": true } - ], - "deletion": { - "softDeletionTags": { - "and": [ - "razed:tourism=artwork", - "tourism=" - ] - }, - "neededChangesets": 5 - }, - "allowMove": { - "enableRelocation": false, - "enableImproveAccuraccy": true - } } \ No newline at end of file diff --git a/assets/layers/cafe_pub/cafe_pub.json b/assets/layers/cafe_pub/cafe_pub.json index a815bd6d98..639b68d080 100644 --- a/assets/layers/cafe_pub/cafe_pub.json +++ b/assets/layers/cafe_pub/cafe_pub.json @@ -184,7 +184,10 @@ ], "deletion": { "softDeletionTags": { - "and": ["amenity=","disused:amenity:={amenity}"] + "and": [ + "amenity=", + "disused:amenity:={amenity}" + ] } }, "allowMove": true diff --git a/assets/layers/food/food.json b/assets/layers/food/food.json index 79b0015fcc..1d8c330dbc 100644 --- a/assets/layers/food/food.json +++ b/assets/layers/food/food.json @@ -627,7 +627,10 @@ ], "deletion": { "softDeletionTags": { - "and": ["amenity=","disused:amenity:={amenity}"] + "and": [ + "amenity=", + "disused:amenity:={amenity}" + ] } }, "allowMove": true diff --git a/assets/layers/information_board/information_board.json b/assets/layers/information_board/information_board.json index 2634f1df31..53611dbc78 100644 --- a/assets/layers/information_board/information_board.json +++ b/assets/layers/information_board/information_board.json @@ -58,7 +58,7 @@ "softDeletionTags": { "and": [ "disused:tourism:=information", - "tourism=" , + "tourism=", "razed:information=board", "information=" ] diff --git a/assets/layers/playground/playground.json b/assets/layers/playground/playground.json index 9e7daea5e3..1baaab7cce 100644 --- a/assets/layers/playground/playground.json +++ b/assets/layers/playground/playground.json @@ -527,5 +527,13 @@ } } ], - "wayHandling": 2 + "wayHandling": 2, + "deletion": { + "softDeletionTags": { + "and": [ + "disused:leisure=playground", + "leisure=" + ] + } + } } \ No newline at end of file diff --git a/assets/layers/shops/shops.json b/assets/layers/shops/shops.json index f9cf85710f..1e5679d483 100644 --- a/assets/layers/shops/shops.json +++ b/assets/layers/shops/shops.json @@ -1,323 +1,326 @@ { - "id": "shops", - "name": { - "en": "Shop", - "fr": "Magasin", - "ru": "Магазин", - "ja": "店", - "nl": "Winkel" - }, - "minzoom": 16, - "source": { - "osmTags": { - "and": [ - "shop~*" - ] - } - }, - "title": { - "render": { - "en": "Shop", - "fr": "Magasin", - "ru": "Магазин", - "ja": "店", - "nl": "Winkel" - }, - "mappings": [ - { - "if": { - "and": [ - "name~*" - ] - }, - "then": { - "en": "{name}", - "fr": "{name}", - "ru": "{name}", - "ja": "{name}" - } - }, - { - "if": { - "and": [ - "shop!~yes" - ] - }, - "then": { - "en": "{shop}", - "fr": "{shop}", - "ru": "{shop}", - "ja": "{shop}" - } - } - ] - }, - "description": { - "en": "A shop", - "fr": "Un magasin", - "ja": "ショップ", - "nl": "Een winkel", - "ru": "Магазин" - }, - "tagRenderings": [ - "images", - { - "question": { - "en": "What is the name of this shop?", - "fr": "Qu'est-ce que le nom de ce magasin?", - "ru": "Как называется этот магазин?", - "ja": "このお店の名前は何ですか?", - "nl": "Wat is de naam van deze winkel?" - }, - "render": "This shop is called {name}", - "freeform": { - "key": "name" - }, - "id": "shops-name" - }, - { - "render": { - "en": "This shop sells {shop}", - "fr": "Ce magasin vends {shop}", - "ja": "こちらのお店では{shop}を販売しております" - }, - "question": { - "en": "What does this shop sell?", - "fr": "Que vends ce magasin ?", - "ja": "このお店では何を売っていますか?", - "ru": "Что продаётся в этом магазине?" - }, - "freeform": { - "key": "shop" - }, - "mappings": [ - { - "if": { - "and": [ - "shop=convenience" - ] - }, - "then": { - "en": "Convenience store", - "fr": "Épicerie/superette", - "ja": "コンビニエンスストア" - } - }, - { - "if": { - "and": [ - "shop=supermarket" - ] - }, - "then": { - "en": "Supermarket", - "fr": "Supermarché", - "ru": "Супермаркет", - "ja": "スーパーマーケット", - "nl": "Supermarkt" - } - }, - { - "if": { - "and": [ - "shop=clothes" - ] - }, - "then": { - "en": "Clothing store", - "fr": "Magasin de vêtements", - "ru": "Магазин одежды", - "ja": "衣料品店" - } - }, - { - "if": { - "and": [ - "shop=hairdresser" - ] - }, - "then": { - "en": "Hairdresser", - "fr": "Coiffeur", - "ru": "Парикмахерская", - "ja": "理容師", - "nl": "Kapper" - } - }, - { - "if": { - "and": [ - "shop=bakery" - ] - }, - "then": { - "en": "Bakery", - "fr": "Boulangerie", - "ja": "ベーカリー", - "nl": "Bakkerij" - } - }, - { - "if": { - "and": [ - "shop=car_repair" - ] - }, - "then": { - "en": "Car repair (garage)", - "fr": "Garagiste", - "ja": "自動車修理(ガレージ)" - } - }, - { - "if": { - "and": [ - "shop=car" - ] - }, - "then": { - "en": "Car dealer", - "fr": "Concessionnaire", - "ru": "Автосалон", - "ja": "自動車ディーラー" - } - } - ], - "id": "shops-shop" - }, - { - "render": { - "en": "{phone}", - "fr": "{phone}", - "ca": "{phone}", - "id": "{phone}", - "ru": "{phone}", - "ja": "{phone}" - }, - "question": { - "en": "What is the phone number?", - "fr": "Quel est le numéro de téléphone ?", - "ja": "電話番号は何番ですか?", - "nl": "Wat is het telefoonnummer?", - "ru": "Какой телефон?" - }, - "freeform": { - "key": "phone", - "type": "phone" - }, - "id": "shops-phone" - }, - { - "render": { - "en": "{website}", - "fr": "{website}", - "ca": "{website}", - "id": "{website}", - "ru": "{website}", - "ja": "{website}" - }, - "question": { - "en": "What is the website of this shop?", - "fr": "Quel est le site internet de ce magasin ?", - "ja": "このお店のホームページは何ですか?", - "nl": "Wat is de website van deze winkel?", - "ru": "Какой веб-сайт у этого магазина?" - }, - "freeform": { - "key": "website", - "type": "url" - }, - "id": "shops-website" - }, - { - "render": { - "en": "{email}", - "fr": "{email}", - "id": "{email}", - "ru": "{email}", - "ja": "{email}" - }, - "question": { - "en": "What is the email address of this shop?", - "fr": "Quelle est l'adresse électronique de ce magasin ?", - "ja": "このお店のメールアドレスは何ですか?", - "ru": "Каков адрес электронной почты этого магазина?", - "nl": "Wat is het e-mailadres van deze winkel?" - }, - "freeform": { - "key": "email", - "type": "email" - }, - "id": "shops-email" - }, - { - "render": { - "en": "{opening_hours_table(opening_hours)}", - "fr": "{opening_hours_table(opening_hours)}", - "ru": "{opening_hours_table(opening_hours)}", - "ja": "{opening_hours_table(opening_hours)}" - }, - "question": { - "en": "What are the opening hours of this shop?", - "fr": "Quels sont les horaires d'ouverture de ce magasin ?", - "ja": "この店の営業時間は何時から何時までですか?", - "nl": "Wat zijn de openingsuren van deze winkel?", - "ru": "Каковы часы работы этого магазина?" - }, - "freeform": { - "key": "opening_hours", - "type": "opening_hours" - }, - "id": "shops-opening_hours" - }, - "questions", - "reviews" - ], - "icon": { - "render": "./assets/themes/shops/shop.svg" - }, - "iconOverlays": [ - { - "if": "opening_hours~*", - "then": "isOpen", - "badge": true - } - ], - "width": { - "render": "8" - }, - "iconSize": { - "render": "40,40,center" - }, - "color": { - "render": "#00f" - }, - "presets": [ - { - "tags": [ - "shop=yes" - ], - "title": { + "id": "shops", + "name": { "en": "Shop", "fr": "Magasin", "ru": "Магазин", "ja": "店", "nl": "Winkel" - }, - "description": { - "en": "Add a new shop", - "fr": "Ajouter un nouveau magasin", - "ru": "Добавить новый магазин", - "ja": "新しい店を追加する", - "nl": "Voeg een nieuwe winkel toe" - } - } - ], - "wayHandling": 2, - "deletion": { - "softDeletionTags": { - "and": ["amenity=","disused:amenity:={amenity}"] - } - }, - "allowMove": true + }, + "minzoom": 16, + "source": { + "osmTags": { + "and": [ + "shop~*" + ] + } + }, + "title": { + "render": { + "en": "Shop", + "fr": "Magasin", + "ru": "Магазин", + "ja": "店", + "nl": "Winkel" + }, + "mappings": [ + { + "if": { + "and": [ + "name~*" + ] + }, + "then": { + "en": "{name}", + "fr": "{name}", + "ru": "{name}", + "ja": "{name}" + } + }, + { + "if": { + "and": [ + "shop!~yes" + ] + }, + "then": { + "en": "{shop}", + "fr": "{shop}", + "ru": "{shop}", + "ja": "{shop}" + } + } + ] + }, + "description": { + "en": "A shop", + "fr": "Un magasin", + "ja": "ショップ", + "nl": "Een winkel", + "ru": "Магазин" + }, + "tagRenderings": [ + "images", + { + "question": { + "en": "What is the name of this shop?", + "fr": "Qu'est-ce que le nom de ce magasin?", + "ru": "Как называется этот магазин?", + "ja": "このお店の名前は何ですか?", + "nl": "Wat is de naam van deze winkel?" + }, + "render": "This shop is called {name}", + "freeform": { + "key": "name" + }, + "id": "shops-name" + }, + { + "render": { + "en": "This shop sells {shop}", + "fr": "Ce magasin vends {shop}", + "ja": "こちらのお店では{shop}を販売しております" + }, + "question": { + "en": "What does this shop sell?", + "fr": "Que vends ce magasin ?", + "ja": "このお店では何を売っていますか?", + "ru": "Что продаётся в этом магазине?" + }, + "freeform": { + "key": "shop" + }, + "mappings": [ + { + "if": { + "and": [ + "shop=convenience" + ] + }, + "then": { + "en": "Convenience store", + "fr": "Épicerie/superette", + "ja": "コンビニエンスストア" + } + }, + { + "if": { + "and": [ + "shop=supermarket" + ] + }, + "then": { + "en": "Supermarket", + "fr": "Supermarché", + "ru": "Супермаркет", + "ja": "スーパーマーケット", + "nl": "Supermarkt" + } + }, + { + "if": { + "and": [ + "shop=clothes" + ] + }, + "then": { + "en": "Clothing store", + "fr": "Magasin de vêtements", + "ru": "Магазин одежды", + "ja": "衣料品店" + } + }, + { + "if": { + "and": [ + "shop=hairdresser" + ] + }, + "then": { + "en": "Hairdresser", + "fr": "Coiffeur", + "ru": "Парикмахерская", + "ja": "理容師", + "nl": "Kapper" + } + }, + { + "if": { + "and": [ + "shop=bakery" + ] + }, + "then": { + "en": "Bakery", + "fr": "Boulangerie", + "ja": "ベーカリー", + "nl": "Bakkerij" + } + }, + { + "if": { + "and": [ + "shop=car_repair" + ] + }, + "then": { + "en": "Car repair (garage)", + "fr": "Garagiste", + "ja": "自動車修理(ガレージ)" + } + }, + { + "if": { + "and": [ + "shop=car" + ] + }, + "then": { + "en": "Car dealer", + "fr": "Concessionnaire", + "ru": "Автосалон", + "ja": "自動車ディーラー" + } + } + ], + "id": "shops-shop" + }, + { + "render": { + "en": "{phone}", + "fr": "{phone}", + "ca": "{phone}", + "id": "{phone}", + "ru": "{phone}", + "ja": "{phone}" + }, + "question": { + "en": "What is the phone number?", + "fr": "Quel est le numéro de téléphone ?", + "ja": "電話番号は何番ですか?", + "nl": "Wat is het telefoonnummer?", + "ru": "Какой телефон?" + }, + "freeform": { + "key": "phone", + "type": "phone" + }, + "id": "shops-phone" + }, + { + "render": { + "en": "{website}", + "fr": "{website}", + "ca": "{website}", + "id": "{website}", + "ru": "{website}", + "ja": "{website}" + }, + "question": { + "en": "What is the website of this shop?", + "fr": "Quel est le site internet de ce magasin ?", + "ja": "このお店のホームページは何ですか?", + "nl": "Wat is de website van deze winkel?", + "ru": "Какой веб-сайт у этого магазина?" + }, + "freeform": { + "key": "website", + "type": "url" + }, + "id": "shops-website" + }, + { + "render": { + "en": "{email}", + "fr": "{email}", + "id": "{email}", + "ru": "{email}", + "ja": "{email}" + }, + "question": { + "en": "What is the email address of this shop?", + "fr": "Quelle est l'adresse électronique de ce magasin ?", + "ja": "このお店のメールアドレスは何ですか?", + "ru": "Каков адрес электронной почты этого магазина?", + "nl": "Wat is het e-mailadres van deze winkel?" + }, + "freeform": { + "key": "email", + "type": "email" + }, + "id": "shops-email" + }, + { + "render": { + "en": "{opening_hours_table(opening_hours)}", + "fr": "{opening_hours_table(opening_hours)}", + "ru": "{opening_hours_table(opening_hours)}", + "ja": "{opening_hours_table(opening_hours)}" + }, + "question": { + "en": "What are the opening hours of this shop?", + "fr": "Quels sont les horaires d'ouverture de ce magasin ?", + "ja": "この店の営業時間は何時から何時までですか?", + "nl": "Wat zijn de openingsuren van deze winkel?", + "ru": "Каковы часы работы этого магазина?" + }, + "freeform": { + "key": "opening_hours", + "type": "opening_hours" + }, + "id": "shops-opening_hours" + }, + "questions", + "reviews" + ], + "icon": { + "render": "./assets/themes/shops/shop.svg" + }, + "iconOverlays": [ + { + "if": "opening_hours~*", + "then": "isOpen", + "badge": true + } + ], + "width": { + "render": "8" + }, + "iconSize": { + "render": "40,40,center" + }, + "color": { + "render": "#00f" + }, + "presets": [ + { + "tags": [ + "shop=yes" + ], + "title": { + "en": "Shop", + "fr": "Magasin", + "ru": "Магазин", + "ja": "店", + "nl": "Winkel" + }, + "description": { + "en": "Add a new shop", + "fr": "Ajouter un nouveau magasin", + "ru": "Добавить новый магазин", + "ja": "新しい店を追加する", + "nl": "Voeg een nieuwe winkel toe" + } + } + ], + "wayHandling": 2, + "deletion": { + "softDeletionTags": { + "and": [ + "amenity=", + "disused:amenity:={amenity}" + ] + } + }, + "allowMove": true } \ No newline at end of file diff --git a/assets/layers/waste_basket/waste_basket.json b/assets/layers/waste_basket/waste_basket.json index f187916110..7ff67e1fb5 100644 --- a/assets/layers/waste_basket/waste_basket.json +++ b/assets/layers/waste_basket/waste_basket.json @@ -75,6 +75,50 @@ } } ] + }, + { + "id": "dispensing_dog_bags", + "question": { + "en": "Does this waste basket have a dispenser for dog excrement bags?" + }, + "condition": { + "or": [ + "waste=dog_excrement", + "waste=trash", + "waste=" + ] + }, + "mappings": [ + { + "if": { + "and": [ + "vending=dog_excrement_bag", + "not:vending=" + ] + }, + "then": { + "en": "This waste basket has a dispenser for (dog) excrement bags" + } + }, + { + "if": { + "and": [ + "not:vending=dog_excrement_bag", + "vending=" + ] + }, + "then": { + "en": "This waste basket does not have a dispenser for (dog) excrement bags" + } + }, + { + "if": "vending=", + "then": { + "en": "This waste basket does not have a dispenser for (dog) excrement bags" + }, + "hideInAnwer": true + } + ] } ], "icon": { diff --git a/assets/svg/delete_not_allowed.svg b/assets/svg/delete_not_allowed.svg new file mode 100644 index 0000000000..6f1b3a4865 --- /dev/null +++ b/assets/svg/delete_not_allowed.svg @@ -0,0 +1,86 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/assets/svg/delete_not_allowed.svg.license_info.json b/assets/svg/delete_not_allowed.svg.license_info.json new file mode 100644 index 0000000000..b1e80899c7 --- /dev/null +++ b/assets/svg/delete_not_allowed.svg.license_info.json @@ -0,0 +1,8 @@ +{ + "authors": [ + "Pieter Vander Vennet" + ], + "path": "delete_not_allowed.svg", + "license": "CC0", + "sources": [] +} \ No newline at end of file diff --git a/assets/themes/shops/shops.json b/assets/themes/shops/shops.json index ee02f6e59f..878225a90e 100644 --- a/assets/themes/shops/shops.json +++ b/assets/themes/shops/shops.json @@ -37,6 +37,6 @@ "widenFactor": 3, "socialImage": "", "layers": [ -"shops" + "shops" ] } \ No newline at end of file diff --git a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json index 489c36ed7d..733b94d9f8 100644 --- a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json +++ b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json @@ -54,6 +54,15 @@ "minzoom": 14 } }, + { + "builtin": [ + "playground" + ], + "override": { + "minzoom": 14, + "iconSize": "25,25,center" + } + }, { "builtin": [ "binocular", diff --git a/css/index-tailwind-output.css b/css/index-tailwind-output.css index de5a7e0c94..a53874c2e5 100644 --- a/css/index-tailwind-output.css +++ b/css/index-tailwind-output.css @@ -1074,10 +1074,6 @@ video { width: 1.5rem; } -.w-1\/2 { - width: 50%; -} - .w-max { width: -webkit-max-content; width: -moz-max-content; diff --git a/langs/en.json b/langs/en.json index 73936f503f..11af03dd40 100644 --- a/langs/en.json +++ b/langs/en.json @@ -40,6 +40,7 @@ "delete": "Delete", "cancel": "Cancel", "isDeleted": "This feature is deleted", + "cannotBeDeleted": "This feature can not be deleted", "loginToDelete": "You must be logged in to delete a point", "safeDelete": "This point can be safely deleted.", "isntAPoint": "Only points can be deleted, the selected feature is a way, area or relation.", diff --git a/langs/layers/en.json b/langs/layers/en.json index ef215b598c..ca6f90845b 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -3855,6 +3855,20 @@ } }, "tagRenderings": { + "dispensing_dog_bags": { + "mappings": { + "0": { + "then": "This waste basket has a dispenser for (dog) excrement bags" + }, + "1": { + "then": "This waste basket does not have a dispenser for (dog) excrement bags" + }, + "2": { + "then": "This waste basket does not have a dispenser for (dog) excrement bags" + } + }, + "question": "Does this waste basket have a dispenser for dog excrement bags?" + }, "waste-basket-waste-types": { "mappings": { "0": {