diff --git a/.env b/.env
index 006aefe35..3915cf5f0 100644
--- a/.env
+++ b/.env
@@ -72,9 +72,6 @@ REACT_APP_DEFAULT_MAP_LAYER_ID='MAPNIK'
# use, you need to define them in the `src/customLayers.json` file instead.
REACT_APP_ADDITIONAL_INDEX_LAYERS='tf-cycle'
-# URL for Bing map layer tile server
-REACT_APP_BING_MAP_TILESERVER_URL='https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}'
-
# Any API keys you wish to use for specific map layers. Should be structured as
# a JSON object with each key being the layer id as identified in the [OSM
# Editor Layer index](https://github.com/osmlab/editor-layer-index) (or the id
@@ -84,6 +81,10 @@ REACT_APP_BING_MAP_TILESERVER_URL='https://server.arcgisonline.com/ArcGIS/rest/s
# '{"tf-cycle": {"name": "apikey", "value": "yourapikey"}, "Mapbox": {"name": "access_token", "value": "yourapikey"}}'}'
REACT_APP_MAP_LAYER_API_KEYS=''
+# Mapillary client id. If not provided, the Mapillary image map layer will be
+# disabled.
+REACT_APP_MAPILLARY_API_KEY=''
+
# The number of minutes to offset the attic query date to allow for the delay in
# Overpass receiving the data.
REACT_APP_ATTIC_QUERY_OFFSET_MINUTES = 10
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 38aedba98..03d041d3d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,38 @@ The format is based on
This project adheres to
[Semantic Versioning](http://semver.org/spec/v2.0.0.html).
+## [v3.3.3] - 2019-07-24
+### Added
+- MapRoulette-specific tagging support for tasks ("MR Tags")
+- Option to select next nearby task to work on from map of nearby tasks
+- Export of challenges as GeoJSON from Create & Manage
+- Honor active filters when exporting CSV and GeoJSON files
+- Review Metrics widget for Create & Manage dashboards
+- Toggle for inclusion of challenges in metrics in Create & Manage area
+- Completion-progress indicators below each challenge in Create & Manage
+- Show name of challenge parent project in virtual-project challenge listings
+- Improved Mapillary integration and official Mapillary image viewer
+- "All Time" duration option to Review Stats
+- [internal] Upgrade various package dependencies, including React
+
+### Fixed
+- Bing map layer showing incorrect imagery
+- Malfunctioning reviewed-on date filter on Tasks Review table
+- Retrieval of next nearby task not honoring task priority
+- JOSM editing bounds in task review inconsistent with task completion
+- Task map in Create & Manage not resetting when all filters cleared
+- Broken user profile images
+- Broken links to top-challenges on leaderboards in some cases
+- Insufficient Overpass timeout on attic queries
+- Various minor visual fixes and adjustments
+
+### Changed
+- JOSM attic layer policy from locked to no upload and no download
+
+### Removed
+- Broken heatmap from Create & Manage project dashboard
+
+
## [v3.3.2] - 2019-06-20
### Added
- Virtual Projects
diff --git a/README.md b/README.md
index 2352f7e32..dee9369fe 100644
--- a/README.md
+++ b/README.md
@@ -149,6 +149,17 @@ file for documentation). For custom layers, an API key can also simply be
included in the specified layer url in `src/customLayers.json` if that is
simpler.
+### Enabling the Mapillary Map Layer
+
+MapRoulette has built-in support for a Mapillary map layer during task
+completion, allowing the mapper to make of use of available street-level
+imagery. To enable the layer, simply set the `REACT_APP_MAPILLARY_API_KEY` .env
+key to your Mapillary client id and restart your dev server (or rebuild your
+dev front-end for staging/production). If you don't have a client id, you can
+set one up through the
+[Mapillary Developer Tools](https://www.mapillary.com/developer)
+
+
# Development Notes
The project was bootstrapped with
diff --git a/package.json b/package.json
index 16da4f7af..1eda224b8 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "maproulette3",
- "version": "3.3.2",
+ "version": "3.3.3",
"private": true,
"dependencies": {
"@mapbox/geojsonhint": "^2.0.1",
@@ -23,17 +23,19 @@
"downshift": "^2.0.3",
"file-saver": "^2.0.2",
"fuse.js": "^3.1.0",
- "leaflet": "^1.3.0",
- "leaflet-vectoricon": "^0.2.0",
- "leaflet.markercluster": "^1.3.0",
+ "leaflet": "^1.5.1",
+ "leaflet-vectoricon": "https://github.com/nrotstan/Leaflet.VectorIcon.git#with-viewbox",
+ "leaflet.markercluster": "^1.4.1",
"localforage": "^1.5.2",
+ "mapillary-js": "^2.18.0",
"node-sass": "^4.11.0",
"normalize.css": "^7.0.0",
"normalizr": "^3.2.3",
+ "parse-link-header": "^1.0.1",
"piwik-react-router": "^0.12.1",
"prop-types": "^15.6.0",
"query-string": "^5.1.0",
- "react": "16.3.2",
+ "react": "^16.8.0",
"react-animate-height": "^2.0.7",
"react-burger-menu": "^2.4.4",
"react-calendar-heatmap": "^1.6.3",
@@ -41,23 +43,24 @@
"react-copy-to-clipboard": "^5.0.1",
"react-datepicker": "^2.3.0",
"react-delayed": "^0.2.0",
- "react-dom": "^16.0.0",
+ "react-dom": "^16.8.0",
"react-dom-confetti": "^0.0.10",
- "react-dropzone": "^4.2.3",
+ "react-dropzone": "^10.1.5",
"react-grid-layout": "^0.16.6",
- "react-intl": "^2.8.0",
+ "react-intl": "^2.9.0",
"react-intl-formatted-duration": "^3.0.0",
"react-jsonschema-form": "1.5.0",
"react-jsonschema-form-async": "^0.2.0",
- "react-leaflet": "^1.8.0",
- "react-leaflet-markercluster": "^1.1.7",
+ "react-leaflet": "^2.4.0",
+ "react-leaflet-bing": "^4.1.0",
+ "react-leaflet-markercluster": "^2.0.0-rc3",
"react-onclickoutside": "^6.6.3",
"react-redux": "^5.0.5",
"react-responsive": "^4.1.0",
"react-router-dom": "^4.2.2",
- "react-scripts": "2.1.8",
+ "react-scripts": "3.0.1",
"react-share": "^1.16.0",
- "react-syntax-highlighter": "^7.0.2",
+ "react-syntax-highlighter": "^10.3.0",
"react-table": "^6.7.6",
"react-tagsinput": "^3.19.0",
"react-transition-group": "^2.2.1",
@@ -108,5 +111,9 @@
"not dead",
"not ie <= 11",
"not op_mini all"
- ]
+ ],
+ "resolutions": {
+ "browserslist": "4.6.2",
+ "caniuse-lite": "1.0.30000974"
+ }
}
diff --git a/public/assets/images/user_no_image.png b/public/assets/images/user_no_image.png
deleted file mode 100644
index 8942fd745..000000000
Binary files a/public/assets/images/user_no_image.png and /dev/null differ
diff --git a/public/index.html b/public/index.html
index eaf91f3c1..defd7ce66 100644
--- a/public/index.html
+++ b/public/index.html
@@ -20,6 +20,7 @@
+