forked from MapComplete/MapComplete
93 lines
3 KiB
TypeScript
93 lines
3 KiB
TypeScript
|
|
import { SpecialVisualizationSvelte } from "../SpecialVisualization"
|
||
|
|
import Maproulette from "../../Logic/Maproulette"
|
||
|
|
import SvelteUIElement from "../Base/SvelteUIElement"
|
||
|
|
import MaprouletteSetStatus from "../MapRoulette/MaprouletteSetStatus.svelte"
|
||
|
|
|
||
|
|
export class MapRouletteSpecialVisualisations {
|
||
|
|
public static initList(): SpecialVisualizationSvelte[] {
|
||
|
|
return [
|
||
|
|
{
|
||
|
|
funcName: "maproulette_set_status",
|
||
|
|
group: "maproulette",
|
||
|
|
docs: "Change the status of the given MapRoulette task",
|
||
|
|
needsUrls: [Maproulette.defaultEndpoint],
|
||
|
|
example:
|
||
|
|
" The following example sets the status to '2' (false positive)\n" +
|
||
|
|
"\n" +
|
||
|
|
"```json\n" +
|
||
|
|
"{\n" +
|
||
|
|
" \"id\": \"mark_duplicate\",\n" +
|
||
|
|
" \"render\": {\n" +
|
||
|
|
" \"special\": {\n" +
|
||
|
|
" \"type\": \"maproulette_set_status\",\n" +
|
||
|
|
" \"message\": {\n" +
|
||
|
|
" \"en\": \"Mark as not found or false positive\"\n" +
|
||
|
|
" },\n" +
|
||
|
|
" \"status\": \"2\",\n" +
|
||
|
|
" \"image\": \"close\"\n" +
|
||
|
|
" }\n" +
|
||
|
|
" }\n" +
|
||
|
|
"}\n" +
|
||
|
|
"```",
|
||
|
|
args: [
|
||
|
|
{
|
||
|
|
name: "message",
|
||
|
|
doc: "A message to show to the user"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "image",
|
||
|
|
doc: "Image to show",
|
||
|
|
defaultValue: "confirm"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "message_confirm",
|
||
|
|
doc: "What to show when the task is closed, either by the user or was already closed."
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "status",
|
||
|
|
doc: "A statuscode to apply when the button is clicked. 1 = `close`, 2 = `false_positive`, 3 = `skip`, 4 = `deleted`, 5 = `already fixed` (on the map, e.g. for duplicates), 6 = `too hard`",
|
||
|
|
defaultValue: "1"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "maproulette_id",
|
||
|
|
doc: "The property name containing the maproulette id",
|
||
|
|
defaultValue: "mr_taskId"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
name: "ask_feedback",
|
||
|
|
doc: "If not an empty string, this will be used as question to ask some additional feedback. A text field will be added",
|
||
|
|
defaultValue: ""
|
||
|
|
}
|
||
|
|
],
|
||
|
|
|
||
|
|
constr: (state, tagsSource, args) => {
|
||
|
|
let [
|
||
|
|
message,
|
||
|
|
image,
|
||
|
|
message_closed,
|
||
|
|
statusToSet,
|
||
|
|
maproulette_id_key,
|
||
|
|
askFeedback
|
||
|
|
] = args
|
||
|
|
if (image === "") {
|
||
|
|
image = "confirm"
|
||
|
|
}
|
||
|
|
if (maproulette_id_key === "" || maproulette_id_key === undefined) {
|
||
|
|
maproulette_id_key = "mr_taskId"
|
||
|
|
}
|
||
|
|
statusToSet = statusToSet ?? "1"
|
||
|
|
return new SvelteUIElement(MaprouletteSetStatus, {
|
||
|
|
state,
|
||
|
|
tags: tagsSource,
|
||
|
|
message,
|
||
|
|
image,
|
||
|
|
message_closed,
|
||
|
|
statusToSet,
|
||
|
|
maproulette_id_key,
|
||
|
|
askFeedback
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}]
|
||
|
|
}
|
||
|
|
}
|