Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,51 @@ All notable changes to this project will be documented in this file.
The format is based on
[Keep a Changelog](http://keepachangelog.com/en/1.0.0/)

## [v3.18.0] - 2026-03-18

Released with [maproulette-backend_v4.8.5](https://github.com/maproulette/maproulette-backend/releases/tag/v4.8.5)

## What's Changed
* Bump lodash-es from 4.17.21 to 4.17.23 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2772
* Bump diff from 5.2.0 to 5.2.2 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2770
* Bump lodash from 4.17.21 to 4.17.23 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2773
* Add FUNDING.yml for custom funding link by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2781
* Make more strings translatable by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2774
* fix issue where feature layer gets messed up when locator overlay layer is added by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2775
* fix expected prop types in task history list and image marker layer by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2777
* fix component unmounting errors by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2778
* fix issue where taskBundleId is deleted after challenge is created by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2779
* fix user profile metric updates between users by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2783
* fix cloned challenge osmIdProperty issue by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2785
* change the get help footer element to say documentation by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2782
* Import leaflet and mapillary CSS from npm packages, not unpkg.com by @jake-low in https://github.com/maproulette/maproulette3/pull/2786
* fix markdown links and Mustache Tag Replacement by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2780
* Bump ajv from 6.12.6 to 6.14.0 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2790
* Update default editor messages in Profile component for clarity by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2805
* Add ScaleControl to various map components by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2802
* Add a copy tags to clipboard button to item popup in the map view. by @watmildon in https://github.com/maproulette/maproulette3/pull/2798
* Bump immutable from 4.3.4 to 4.3.8 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2795
* Bump minimatch by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2794
* Bump rollup from 4.41.0 to 4.59.0 by @dependabot[bot] in https://github.com/maproulette/maproulette3/pull/2793
* Enhance leaderboard functionality by deduplicating entries based on userId. by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2803
* Add recommended layout functionality to WidgetWorkspace by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2806
* Update translations and improve user prompts across multiple languages by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2807
* Add GeoJSON upload functionality to ChallengeDetail component by @CollinBeczak in https://github.com/maproulette/maproulette3/pull/2808

## MR2 Changes
* disable review on deleted disabled and skipped tasks by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1208
* Add CURRENT_MONTH constant and update SQL time clause for month duration 0 in LeaderboardHelper (#1206) by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1217
* Enhance ChallengeProvider error handling for task building failures by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1216
* Add leaderboard_opt_out parameter to LeaderboardService (#1206) by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1215
* Add polygon geometry check for bounding box validation in Challenge model by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1214
* fix "deletion already in-progress" bug by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1156
* add changeset source to submitOsmChange by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1186
* fix some task review status not found and locking bugs by @CollinBeczak in https://github.com/maproulette/maproulette-backend/pull/1207
* Fix bug where PUT /challenge/:id discarded the datasetUrl field by @jake-low in https://github.com/maproulette/maproulette-backend/pull/1213
* Ignore pidfile when running in Docker by @jake-low in https://github.com/maproulette/maproulette-backend/pull/1212

**Full Changelog**: https://github.com/maproulette/maproulette3/compare/v3.17.19...v3.18.0

## [v3.17.19] - 2025-12-16

Released with [maproulette-backend_v4.8.3](https://github.com/maproulette/maproulette-backend/releases/tag/v4.8.3)
Expand Down
6 changes: 6 additions & 0 deletions lang/af.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Drop GeoJSON file here or click to select file",
"Form.textUpload.promptJSON": "Drop JSON file here or click to select file",
"Form.textUpload.readonly": "Existing file will be used",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Global Activity",
"Grant.Role.admin": "Admin",
"Grant.Role.read": "Read",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks",
Expand Down
6 changes: 6 additions & 0 deletions lang/cs_CZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Drop GeoJSON file here or click to select file",
"Form.textUpload.promptJSON": "Drop JSON file here or click to select file",
"Form.textUpload.readonly": "Bude použit existující soubor",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Globální aktivita",
"Grant.Role.admin": "Administrátor",
"Grant.Role.read": "Čtení",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks",
Expand Down
6 changes: 6 additions & 0 deletions lang/da_DK.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Slip GeoJSON-filen her, eller klik for at vælge fil",
"Form.textUpload.promptJSON": "Slip JSON-filen her eller klik for at vælge fil",
"Form.textUpload.readonly": "Eksisterende fil vil blive brugt",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Global aktivitet",
"Grant.Role.admin": "Admin",
"Grant.Role.read": "Læs",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Søg",
"TaskClusterMap.controls.selectAllInView.label": "Vælg alt i visningen",
"TaskClusterMap.controls.toggleLegend.label": "Slå kortforklaring til/fra",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom ind",
"TaskClusterMap.controls.zoomOut.label": "Zoom ud",
"TaskClusterMap.message.moveMapToRefresh.label": "Klik for at vise opgaver",
Expand Down
6 changes: 6 additions & 0 deletions lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "GeoJSON-Datei hier ablegen oder klicken, um eine Datei auszuwählen",
"Form.textUpload.promptJSON": "JSON-Datei hier ablegen oder klicken, um eine Datei auszuwählen",
"Form.textUpload.readonly": "Vorhandene Datei wird verwendet",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Weltweite Aktivität",
"Grant.Role.admin": "Administrator",
"Grant.Role.read": "Lesen",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Klicke, um Aufgaben anzuzeigen",
Expand Down
6 changes: 6 additions & 0 deletions lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Arrastra el archivo GeoJSON aquí o haz clic para seleccionar el archivo",
"Form.textUpload.promptJSON": "Arrastra el archivo JSON aquí o haz clic para seleccionar el archivo",
"Form.textUpload.readonly": "Se utilizará el archivo existente",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Actividad global",
"Grant.Role.admin": "Administrador",
"Grant.Role.read": "Lectura",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Buscar",
"TaskClusterMap.controls.selectAllInView.label": "Seleccionar todo en la vista",
"TaskClusterMap.controls.toggleLegend.label": "Mostrar/ocultar leyenda",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Acercar zoom",
"TaskClusterMap.controls.zoomOut.label": "Alejar zoom",
"TaskClusterMap.message.moveMapToRefresh.label": "Haz clic para mostrar las tareas",
Expand Down
6 changes: 6 additions & 0 deletions lang/fa_IR.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Drop GeoJSON file here or click to select file",
"Form.textUpload.promptJSON": "Drop JSON file here or click to select file",
"Form.textUpload.readonly": "Existing file will be used",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Global Activity",
"Grant.Role.admin": "Admin",
"Grant.Role.read": "Read",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks",
Expand Down
6 changes: 6 additions & 0 deletions lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Drop GeoJSON file here or click to select file",
"Form.textUpload.promptJSON": "Drop JSON file here or click to select file",
"Form.textUpload.readonly": "Le fichier existant sera utilisé",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Activité mondiale",
"Grant.Role.admin": "Administrateur",
"Grant.Role.read": "Lire",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Cliquer pour montrer les tâches",
Expand Down
6 changes: 6 additions & 0 deletions lang/it_IT.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Rilascia il file GeoJSON qui o clicca per selezionare il file",
"Form.textUpload.promptJSON": "Rilascia il file JSON qui o clicca per selezionare il file",
"Form.textUpload.readonly": "Verrà utilizzato il file esistente",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "Attività globale",
"Grant.Role.admin": "Amministratore",
"Grant.Role.read": "Leggi",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Clicca per vedere i compiti",
Expand Down
6 changes: 6 additions & 0 deletions lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "Drop GeoJSON file here or click to select file",
"Form.textUpload.promptJSON": "Drop JSON file here or click to select file",
"Form.textUpload.readonly": "既存のファイルが使われます",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "世界の活動",
"Grant.Role.admin": "Admin",
"Grant.Role.read": "Read",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "Click to show tasks",
Expand Down
6 changes: 6 additions & 0 deletions lang/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -926,6 +926,11 @@
"Form.textUpload.promptGeoJSON": "GeoJSON 파일을 여기에 놓거나 클릭하여 파일 선택하기",
"Form.textUpload.promptJSON": "JSON 파일을 여기에 놓거나 클릭하여 파일 선택하기",
"Form.textUpload.readonly": "기존 파일이 사용됩니다",
"GeoJSONUploadModal.dropzone.label": "Drop a GeoJSON file here or click to upload",
"GeoJSONUploadModal.error.invalid": "Invalid GeoJSON: {error}",
"GeoJSONUploadModal.error.noPolygons": "No Polygon features found in file",
"GeoJSONUploadModal.header": "Create Virtual Challenge from GeoJSON",
"GeoJSONUploadModal.success.polygonsLoaded": "{count, plural, one {# polygon} other {# polygons}} loaded",
"GlobalActivity.title": "글로벌 활동",
"Grant.Role.admin": "관리자",
"Grant.Role.read": "읽기",
Expand Down Expand Up @@ -1394,6 +1399,7 @@
"TaskClusterMap.controls.search.label": "Search",
"TaskClusterMap.controls.selectAllInView.label": "Select All In View",
"TaskClusterMap.controls.toggleLegend.label": "Toggle Legend",
"TaskClusterMap.controls.uploadGeoJSON.label": "Upload GeoJSON",
"TaskClusterMap.controls.zoomIn.label": "Zoom In",
"TaskClusterMap.controls.zoomOut.label": "Zoom Out",
"TaskClusterMap.message.moveMapToRefresh.label": "임무를 보기 위해 클릭",
Expand Down
Loading
Loading