forked from MapComplete/MapComplete
Add details rendering
This commit is contained in:
parent
8d8f2f6827
commit
befee4b546
4 changed files with 118 additions and 4 deletions
|
@ -6,7 +6,14 @@ export default class Constants {
|
||||||
|
|
||||||
public static ImgurApiKey = '7070e7167f0a25a'
|
public static ImgurApiKey = '7070e7167f0a25a'
|
||||||
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"
|
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"
|
||||||
// Currently there is no user-friendly way to get the user's API key. See https://github.com/maproulette/maproulette2/issues/476 for more information.
|
|
||||||
|
/**
|
||||||
|
* API key for Maproulette
|
||||||
|
*
|
||||||
|
* Currently there is no user-friendly way to get the user's API key.
|
||||||
|
* See https://github.com/maproulette/maproulette2/issues/476 for more information.
|
||||||
|
* Using an empty string however does work for most actions, but will attribute all actions to the Superuser.
|
||||||
|
*/
|
||||||
public static readonly MaprouletteApiKey = "";
|
public static readonly MaprouletteApiKey = "";
|
||||||
|
|
||||||
public static defaultOverpassUrls = [
|
public static defaultOverpassUrls = [
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {Store, UIEventSource} from "../Logic/UIEventSource";
|
import {Store, Stores, UIEventSource} from "../Logic/UIEventSource";
|
||||||
import {VariableUiElement} from "./Base/VariableUIElement";
|
import {VariableUiElement} from "./Base/VariableUIElement";
|
||||||
import LiveQueryHandler from "../Logic/Web/LiveQueryHandler";
|
import LiveQueryHandler from "../Logic/Web/LiveQueryHandler";
|
||||||
import {ImageCarousel} from "./Image/ImageCarousel";
|
import {ImageCarousel} from "./Image/ImageCarousel";
|
||||||
|
@ -57,6 +57,7 @@ import {SaveButton} from "./Popup/SaveButton";
|
||||||
import {MapillaryLink} from "./BigComponents/MapillaryLink";
|
import {MapillaryLink} from "./BigComponents/MapillaryLink";
|
||||||
import {CheckBox} from "./Input/Checkboxes";
|
import {CheckBox} from "./Input/Checkboxes";
|
||||||
import Slider from "./Input/Slider";
|
import Slider from "./Input/Slider";
|
||||||
|
import List from "./Base/List";
|
||||||
|
|
||||||
export interface SpecialVisualization {
|
export interface SpecialVisualization {
|
||||||
funcName: string,
|
funcName: string,
|
||||||
|
@ -1091,7 +1092,40 @@ export default class SpecialVisualizations {
|
||||||
}))
|
}))
|
||||||
},
|
},
|
||||||
new NearbyImageVis(),
|
new NearbyImageVis(),
|
||||||
new MapillaryLinkVis()
|
new MapillaryLinkVis(),
|
||||||
|
{
|
||||||
|
funcName: "maproulette_task",
|
||||||
|
args: [],
|
||||||
|
constr(state, tagSource, argument, guistate) {
|
||||||
|
let parentId = tagSource.data.mr_challengeId;
|
||||||
|
let challenge = Stores.FromPromise(Utils.downloadJsonCached(`https://maproulette.org/api/v2/challenge/${parentId}`,24*60*60*1000));
|
||||||
|
|
||||||
|
let details = new VariableUiElement( challenge.map(challenge => {
|
||||||
|
let listItems: BaseUIElement[] = [];
|
||||||
|
let title: BaseUIElement;
|
||||||
|
|
||||||
|
if (challenge?.name) {
|
||||||
|
title = new Title(challenge.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (challenge?.description) {
|
||||||
|
listItems.push(new FixedUiElement(challenge.description));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (challenge?.instruction) {
|
||||||
|
listItems.push(new FixedUiElement(challenge.instruction));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(listItems.length === 0) {
|
||||||
|
return undefined;
|
||||||
|
} else {
|
||||||
|
return [title, new List(listItems)];
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
return details;
|
||||||
|
},
|
||||||
|
docs: "Show details of a MapRoulette task"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
specialVisualizations.push(new AutoApplyButton(specialVisualizations))
|
specialVisualizations.push(new AutoApplyButton(specialVisualizations))
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
"en": "Item in MapRoulette"
|
"en": "Item in MapRoulette"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"titleIcons":[
|
"titleIcons": [
|
||||||
{
|
{
|
||||||
"id": "maproulette",
|
"id": "maproulette",
|
||||||
"render": "<a href='https://maproulette.org/challenge/{mr_challengeId}/task/{mr_taskId}' target='_blank'><img src='./assets/layers/maproulette/logomark.svg'/></a>"
|
"render": "<a href='https://maproulette.org/challenge/{mr_challengeId}/task/{mr_taskId}' target='_blank'><img src='./assets/layers/maproulette/logomark.svg'/></a>"
|
||||||
|
@ -67,6 +67,10 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
|
{
|
||||||
|
"id": "details",
|
||||||
|
"render": "{maproulette_task()}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "status",
|
"id": "status",
|
||||||
"render": "Current status: {status}",
|
"render": "Current status: {status}",
|
||||||
|
|
|
@ -4423,6 +4423,75 @@
|
||||||
"render": "MapRoulette Item: {parentName}"
|
"render": "MapRoulette Item: {parentName}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"maproulette_challenge": {
|
||||||
|
"description": "Layer showing tasks of a MapRoulette challenge",
|
||||||
|
"filter": {
|
||||||
|
"0": {
|
||||||
|
"options": {
|
||||||
|
"0": {
|
||||||
|
"question": "Show tasks with all statuses"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"question": "Show tasks that are created"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"question": "Show tasks that are fixed"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"question": "Show tasks that are false positives"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"question": "Show tasks that are skipped"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"question": "Show tasks that are deleted"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"question": "Show tasks that are already fixed"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"question": "Show tasks that are marked as too hard"
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"question": "Show tasks that are disabled"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tagRenderings": {
|
||||||
|
"status": {
|
||||||
|
"mappings": {
|
||||||
|
"0": {
|
||||||
|
"then": "Task is created"
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"then": "Task is fixed"
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"then": "Task is a false positive"
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"then": "Task is skipped"
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"then": "Task is deleted"
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"then": "Task is already fixed"
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"then": "Task is marked as too hard"
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"then": "Task is disabled"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"render": "Item in MapRoulette"
|
||||||
|
}
|
||||||
|
},
|
||||||
"maxspeed": {
|
"maxspeed": {
|
||||||
"description": "Shows the allowed speed for every road",
|
"description": "Shows the allowed speed for every road",
|
||||||
"name": "Maxspeed",
|
"name": "Maxspeed",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue