forked from MapComplete/MapComplete
Themes: disable 'disused' from delete config, delete less fast for shops but use softdeletion instead
This commit is contained in:
parent
53ea4273df
commit
28e737ed2e
5 changed files with 37 additions and 13 deletions
|
@ -637,12 +637,27 @@
|
||||||
"softDeletionTags": {
|
"softDeletionTags": {
|
||||||
"and": [
|
"and": [
|
||||||
"shop=",
|
"shop=",
|
||||||
|
"phone=",
|
||||||
|
"website=",
|
||||||
|
"email=",
|
||||||
|
"opening_hours=",
|
||||||
"disused:shop:={shop}"
|
"disused:shop:={shop}"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"extraDeleteReasons": [
|
"omitDefaultDeleteReasons": ["disused"],
|
||||||
|
"nonDeleteMappings": [
|
||||||
{
|
{
|
||||||
"explanation": {
|
"if": {
|
||||||
|
"and": [
|
||||||
|
"shop=",
|
||||||
|
"phone=",
|
||||||
|
"website=",
|
||||||
|
"email=",
|
||||||
|
"opening_hours=",
|
||||||
|
"disused:shop:={shop}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"then": {
|
||||||
"nl": "{title()} is permanent gestopt",
|
"nl": "{title()} is permanent gestopt",
|
||||||
"en": "{title()} has closed down permanently",
|
"en": "{title()} has closed down permanently",
|
||||||
"de": "{title()} wurde dauerhaft geschlossen",
|
"de": "{title()} wurde dauerhaft geschlossen",
|
||||||
|
@ -650,8 +665,7 @@
|
||||||
"fr": "{title()} a fermé définitivement",
|
"fr": "{title()} a fermé définitivement",
|
||||||
"ca": "{title()} ha tancat permanentment",
|
"ca": "{title()} ha tancat permanentment",
|
||||||
"cs": "{title()} je trvale uzavřen"
|
"cs": "{title()} je trvale uzavřen"
|
||||||
},
|
}
|
||||||
"changesetMessage": "shop_closed"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
@ -35,11 +35,9 @@ export default class DeleteConfig {
|
||||||
explanation: TypedTranslation<object> | Translation
|
explanation: TypedTranslation<object> | Translation
|
||||||
changesetMessage: string
|
changesetMessage: string
|
||||||
}[]
|
}[]
|
||||||
|
|
||||||
private readonly nonDeleteMappings?: { if: TagConfigJson; then: Translation }[]
|
|
||||||
|
|
||||||
public readonly softDeletionTags?: TagsFilter
|
public readonly softDeletionTags?: TagsFilter
|
||||||
public readonly neededChangesets?: number
|
public readonly neededChangesets?: number
|
||||||
|
private readonly nonDeleteMappings?: { if: TagConfigJson; then: Translation }[]
|
||||||
|
|
||||||
constructor(json: DeleteConfigJson, context: string) {
|
constructor(json: DeleteConfigJson, context: string) {
|
||||||
this.deleteReasons = (json.extraDeleteReasons ?? []).map((reason, i) => {
|
this.deleteReasons = (json.extraDeleteReasons ?? []).map((reason, i) => {
|
||||||
|
@ -53,8 +51,17 @@ export default class DeleteConfig {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!json.omitDefaultDeleteReasons) {
|
{
|
||||||
for (const defaultDeleteReason of DeleteConfig.defaultDeleteReasons) {
|
let deleteReasons = DeleteConfig.defaultDeleteReasons
|
||||||
|
if (json.omitDefaultDeleteReasons === true) {
|
||||||
|
deleteReasons = []
|
||||||
|
} else if (json.omitDefaultDeleteReasons) {
|
||||||
|
const forbidden = <string[]>json.omitDefaultDeleteReasons
|
||||||
|
deleteReasons = deleteReasons.filter(
|
||||||
|
(dl) => forbidden.indexOf(dl.changesetMessage) < 0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
for (const defaultDeleteReason of deleteReasons) {
|
||||||
this.deleteReasons.push({
|
this.deleteReasons.push({
|
||||||
changesetMessage: defaultDeleteReason.changesetMessage,
|
changesetMessage: defaultDeleteReason.changesetMessage,
|
||||||
explanation:
|
explanation:
|
||||||
|
@ -117,6 +124,7 @@ export default class DeleteConfig {
|
||||||
mappings,
|
mappings,
|
||||||
id: "why-delete",
|
id: "why-delete",
|
||||||
}
|
}
|
||||||
|
console.log("Delete config", config)
|
||||||
return new TagRenderingConfig(config)
|
return new TagRenderingConfig(config)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import { TagConfigJson } from "./TagConfigJson"
|
import { TagConfigJson } from "./TagConfigJson"
|
||||||
|
import { UploadableTag } from "../../../Logic/Tags/TagUtils"
|
||||||
|
|
||||||
export interface DeleteConfigJson {
|
export interface DeleteConfigJson {
|
||||||
/***
|
/***
|
||||||
|
@ -100,5 +101,5 @@ export interface DeleteConfigJson {
|
||||||
* iffalse: Show the default delete reasons
|
* iffalse: Show the default delete reasons
|
||||||
* ifunset: Show the default delete reasons (default behaviour)
|
* ifunset: Show the default delete reasons (default behaviour)
|
||||||
*/
|
*/
|
||||||
omitDefaultDeleteReasons?: false | boolean
|
omitDefaultDeleteReasons?: false | boolean | ("disused" | string)[]
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
import type { Feature } from "geojson"
|
import type { Feature } from "geojson"
|
||||||
import { UIEventSource } from "../../../Logic/UIEventSource"
|
import { UIEventSource } from "../../../Logic/UIEventSource"
|
||||||
import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
|
import LayerConfig from "../../../Models/ThemeConfig/LayerConfig"
|
||||||
import { TagsFilter } from "../../../Logic/Tags/TagsFilter"
|
import { TagUtils } from "../../../Logic/Tags/TagUtils"
|
||||||
import { TagUtils } from "../../../Logic/Tags/TagUtils"
|
import type { UploadableTag } from "../../../Logic/Tags/TagUtils"
|
||||||
import OsmChangeAction from "../../../Logic/Osm/Actions/OsmChangeAction"
|
import OsmChangeAction from "../../../Logic/Osm/Actions/OsmChangeAction"
|
||||||
import DeleteAction from "../../../Logic/Osm/Actions/DeleteAction"
|
import DeleteAction from "../../../Logic/Osm/Actions/DeleteAction"
|
||||||
import ChangeTagAction from "../../../Logic/Osm/Actions/ChangeTagAction"
|
import ChangeTagAction from "../../../Logic/Osm/Actions/ChangeTagAction"
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
|
|
||||||
const t = Translations.t.delete
|
const t = Translations.t.delete
|
||||||
|
|
||||||
let selectedTags: TagsFilter
|
let selectedTags: UploadableTag
|
||||||
let changedProperties = undefined
|
let changedProperties = undefined
|
||||||
$: changedProperties = TagUtils.changeAsProperties(selectedTags?.asChange(tags?.data ?? {}) ?? [])
|
$: changedProperties = TagUtils.changeAsProperties(selectedTags?.asChange(tags?.data ?? {}) ?? [])
|
||||||
let isHardDelete = undefined
|
let isHardDelete = undefined
|
||||||
|
|
|
@ -988,6 +988,7 @@ export default class SpecialVisualizations {
|
||||||
return undefined
|
return undefined
|
||||||
}
|
}
|
||||||
return new SvelteUIElement(SpecialTranslation, {
|
return new SvelteUIElement(SpecialTranslation, {
|
||||||
|
t: title,
|
||||||
tags: tagsSource,
|
tags: tagsSource,
|
||||||
state,
|
state,
|
||||||
feature,
|
feature,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue