From 8212faa6e5ce55b38831ba7f17fa8fe7612586cf Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 6 Oct 2025 00:33:53 +0200 Subject: [PATCH] Themes(benches): improve openbenches support --- assets/themes/benches/benches.json | 5 +++-- scripts/importscripts/openbenches.ts | 15 +++++++++------ src/UI/MapRoulette/MaprouletteSetStatus.svelte | 8 ++++---- .../Popup/ImportButtons/PointImportButtonViz.ts | 2 +- .../DataImportSpecialVisualisations.ts | 6 ++++-- 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/assets/themes/benches/benches.json b/assets/themes/benches/benches.json index 0f5157498..d58d6e73a 100644 --- a/assets/themes/benches/benches.json +++ b/assets/themes/benches/benches.json @@ -90,9 +90,10 @@ }, "minzoom": 10, "source": { - "#": "Alternatively, if combined with `geojsonZoomLevel`, use geoJson with {y_min}, {y_max}, {x_min} and {x_max}. Only replace in the next string: `https://maproulette.org/api/v2/challenge/view/?bbox={x_min},{y_max},{x_max},{y_min}`", "geoJsonZoomLevel": 12, - "idKey": "", + "#": "The 'staging'-url is a test maproulette", + "#geoJson": "https://staging.maproulette.org/api/v2/challenge/view/70?bbox={x_min},{y_max},{x_max},{y_min}", + "geoJson": "https://maproulette.org/api/v2/challenge/view/53298?bbox={x_min},{y_max},{x_max},{y_min}" }, "calculatedTags": [ diff --git a/scripts/importscripts/openbenches.ts b/scripts/importscripts/openbenches.ts index 197ca717f..4d132abb2 100644 --- a/scripts/importscripts/openbenches.ts +++ b/scripts/importscripts/openbenches.ts @@ -14,6 +14,7 @@ import OsmChangeAction from "../../src/Logic/Osm/Actions/OsmChangeAction" import ChangeTagAction from "../../src/Logic/Osm/Actions/ChangeTagAction" import { Tag as OsmTag } from "../../src/Logic/Tags/Tag" import { Changes } from "../../src/Logic/Osm/Changes" +import ScriptUtils from "../ScriptUtils" /** * Note: @@ -264,10 +265,8 @@ class Openbenches extends Script { let createTest = false const osmData = await this.getAlreadyImported() - const openBenches = JSON.parse(readFileSync("openbenches_export_josm_.geojson", "utf-8")) - await this.conflate(osmData, openBenches) + // rmSync(dbFile) - /* if(!existsSync(dbFile)){ console.log("No database file found at "+dbFile+", recreating the database") await this.buildDatabase("/home/pietervdvn/git/openbenches.org/database", dbFile) @@ -312,13 +311,17 @@ class Openbenches extends Script { }, null, " "), "utf-8") const maproulette = features.map(f => { - f.properties = {tags: JSON.stringify(f.properties)} + const properties = {tags: JSON.stringify(f.properties)} + properties["id"] = "openbenches/"+f.properties["openbenches:id"] + return {...f, properties} }) - writeFileSync(`openbenches_export_maproulette_${createTest ? "_test" : ""}.geojson`, JSON.stringify({ + writeFileSync(`openbenches_export_maproulette${createTest ? "_test" : ""}.geojson`, JSON.stringify({ type: "FeatureCollection", features: maproulette, }, null, " "), "utf-8") - */ + + const openBenches = JSON.parse(readFileSync("openbenches_export_josm_.geojson", "utf-8")) + // await this.conflate(osmData, openBenches) } } diff --git a/src/UI/MapRoulette/MaprouletteSetStatus.svelte b/src/UI/MapRoulette/MaprouletteSetStatus.svelte index 1fa7b4dac..db91ae517 100644 --- a/src/UI/MapRoulette/MaprouletteSetStatus.svelte +++ b/src/UI/MapRoulette/MaprouletteSetStatus.svelte @@ -16,7 +16,7 @@ export let message: string export let image: string export let message_closed: string - export let statusToSet: string + export let statusToSet: number export let maproulette_id_key: string export let askFeedback: string = "" @@ -38,14 +38,14 @@ async function apply() { const maproulette_id = tags.data[maproulette_id_key] ?? tags.data.mr_taskId ?? tags.data.id try { - const statusIndex = Maproulette.codeToIndex(statusToSet) ?? Number(statusToSet) + const statusIndex: number = Maproulette.codeToIndex(""+statusToSet) ?? Number(statusToSet) if(statusIndex !== 0){ await Maproulette.singleton.closeTask(Number(maproulette_id), statusIndex, state, { comment: feedback, }) } tags.data["mr_taskStatus"] = maprouletteStatus[statusIndex] - tags.data.status = statusToSet + tags.data.status = ""+statusToSet tags.ping() } catch (e) { console.error(e) @@ -61,7 +61,7 @@ - {:else if $status === Maproulette.STATUS_OPEN || (statusToSet === ""+Maproulette.STATUS_OPEN && $status !== Maproulette.STATUS_OPEN)} + {:else if $status !== statusToSet && ($status === Maproulette.STATUS_OPEN || statusToSet === Maproulette.STATUS_OPEN)} {#if askFeedback !== "" && askFeedback !== undefined}

{askFeedback}

diff --git a/src/UI/Popup/ImportButtons/PointImportButtonViz.ts b/src/UI/Popup/ImportButtons/PointImportButtonViz.ts index d4f1fd74c..e747d878d 100644 --- a/src/UI/Popup/ImportButtons/PointImportButtonViz.ts +++ b/src/UI/Popup/ImportButtons/PointImportButtonViz.ts @@ -55,7 +55,7 @@ export class PointImportButtonViz extends SpecialVisualizationSvelte { feature = GeoOperations.centerpoint(feature) } else { return new SvelteUIElement(Tr, { - t: Translations.t.general.add.import.wrongType.SetClass("alert"), + t: Translations.t.general.add.import.wrongType, }) } } diff --git a/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts b/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts index ef13828a3..dc45b5627 100644 --- a/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts +++ b/src/UI/SpecialVisualisations/DataImportSpecialVisualisations.ts @@ -88,14 +88,16 @@ class MaprouletteSetStatusVis extends SpecialVisualizationSvelte { if (maproulette_id_key === "" || maproulette_id_key === undefined) { maproulette_id_key = "mr_taskId" } - statusToSet = statusToSet ?? "1" + if(statusToSet === ""){ + statusToSet = "1" + } return new SvelteUIElement(MaprouletteSetStatus, { state, tags, message, image, message_closed, - statusToSet, + statusToSet: Number(statusToSet ?? 1), maproulette_id_key, askFeedback, })