From 189b9ea82fd99d6a9ccf7b57df158f823ab9dd54 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 9 Apr 2022 07:31:29 +0000
Subject: [PATCH 01/19] Bump moment from 2.29.1 to 2.29.2
Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.1...2.29.2)
---
updated-dependencies:
- dependency-name: moment
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
package-lock.json | 14 +++++++-------
package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 34bf3624d1..e64e522b98 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -43,7 +43,7 @@
"libphonenumber-js": "^1.7.55",
"lz-string": "^1.4.4",
"mangrove-reviews": "^0.1.3",
- "moment": "^2.29.0",
+ "moment": "^2.29.2",
"opening_hours": "^3.6.0",
"osm-auth": "^1.0.2",
"osmtogeojson": "^3.0.0-beta.4",
@@ -9738,9 +9738,9 @@
}
},
"node_modules/moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+ "version": "2.29.2",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz",
+ "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg==",
"engines": {
"node": "*"
}
@@ -24294,9 +24294,9 @@
"integrity": "sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA=="
},
"moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ "version": "2.29.2",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz",
+ "integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg=="
},
"monotone-convex-hull-2d": {
"version": "1.0.1",
diff --git a/package.json b/package.json
index 8a84395bcf..cd3536ab8c 100644
--- a/package.json
+++ b/package.json
@@ -89,7 +89,7 @@
"libphonenumber-js": "^1.7.55",
"lz-string": "^1.4.4",
"mangrove-reviews": "^0.1.3",
- "moment": "^2.29.0",
+ "moment": "^2.29.2",
"opening_hours": "^3.6.0",
"osm-auth": "^1.0.2",
"osmtogeojson": "^3.0.0-beta.4",
From 49f26687e3465a631436f50658fdc75931466eb1 Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Sat, 9 Apr 2022 19:29:51 +0200
Subject: [PATCH 02/19] Zoom to geolocation automatically if within 60 seconds,
fix reading the previous map location from local storage if not initialized,
fix #724"
---
Logic/Actors/GeoLocationHandler.ts | 54 +++++++++++++++++++++---------
Logic/State/ElementsState.ts | 49 +++++++++++++++------------
Models/Constants.ts | 7 ++++
3 files changed, 72 insertions(+), 38 deletions(-)
diff --git a/Logic/Actors/GeoLocationHandler.ts b/Logic/Actors/GeoLocationHandler.ts
index 8eba88e44d..52f420f20d 100644
--- a/Logic/Actors/GeoLocationHandler.ts
+++ b/Logic/Actors/GeoLocationHandler.ts
@@ -6,6 +6,7 @@ import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig";
import {QueryParameters} from "../Web/QueryParameters";
import FeatureSource from "../FeatureSource/FeatureSource";
import {BBox} from "../BBox";
+import Constants from "../../Models/Constants";
export interface GeoLocationPointProperties {
id: "gps",
@@ -25,13 +26,11 @@ export default class GeoLocationHandler extends VariableUiElement {
/**
* Wether or not the geolocation is active, aka the user requested the current location
- * @private
*/
private readonly _isActive: UIEventSource;
/**
* Wether or not the geolocation is locked, aka the user requested the current location and wants the crosshair to follow the user
- * @private
*/
private readonly _isLocked: UIEventSource;
@@ -54,9 +53,8 @@ export default class GeoLocationHandler extends VariableUiElement {
/**
* The date when the user requested the geolocation. If we have a location, it'll autozoom to it the first 30 secs
- * @private
*/
- private _lastUserRequest: Date;
+ private _lastUserRequest: UIEventSource;
/**
* A small flag on localstorage. If the user previously granted the geolocation, it will be set.
@@ -80,6 +78,8 @@ export default class GeoLocationHandler extends VariableUiElement {
) {
const currentGPSLocation = new UIEventSource(undefined, "GPS-coordinate")
const leafletMap = state.leafletMap
+ const initedAt = new Date()
+ let autozoomDone = false;
const hasLocation = currentGPSLocation.map(
(location) => location !== undefined
);
@@ -97,13 +97,30 @@ export default class GeoLocationHandler extends VariableUiElement {
const timeDiff = (new Date().getTime() - lastClick.getTime()) / 1000
return timeDiff <= 3
})
+
+ const latLonGiven = QueryParameters.wasInitialized("lat") && QueryParameters.wasInitialized("lon")
+ const willFocus = lastClick.map(lastUserRequest => {
+ const timeDiffInited = (new Date().getTime() - initedAt.getTime()) / 1000
+ console.log("TimeDiff with initedAtt is ", timeDiffInited)
+ if (!latLonGiven && !autozoomDone && timeDiffInited < Constants.zoomToLocationTimeout) {
+ return true
+ }
+ if (lastUserRequest === undefined) {
+ return false;
+ }
+ const timeDiff = (new Date().getTime() - lastUserRequest.getTime()) / 1000
+ console.log("TimeDiff with lastClick is ", timeDiff)
+ return timeDiff <= Constants.zoomToLocationTimeout
+ })
+
lastClick.addCallbackAndRunD(_ => {
window.setTimeout(() => {
- if (lastClickWithinThreeSecs.data) {
+ if (lastClickWithinThreeSecs.data || willFocus.data) {
lastClick.ping()
}
}, 500)
})
+
super(
hasLocation.map(
(hasLocationData) => {
@@ -116,7 +133,8 @@ export default class GeoLocationHandler extends VariableUiElement {
}
if (!hasLocationData) {
// Position not yet found but we are active: we spin to indicate activity
- const icon = Svg.location_empty_svg()
+ // If will focus is active too, we indicate this differently
+ const icon = willFocus.data ? Svg.location_svg() : Svg.location_empty_svg()
icon.SetStyle("animation: spin 4s linear infinite;")
return icon;
}
@@ -130,7 +148,7 @@ export default class GeoLocationHandler extends VariableUiElement {
// We have a location, so we show a dot in the center
return Svg.location_svg();
},
- [isActive, isLocked, permission, lastClickWithinThreeSecs]
+ [isActive, isLocked, permission, lastClickWithinThreeSecs, willFocus]
)
);
this.SetClass("mapcontrol")
@@ -142,6 +160,7 @@ export default class GeoLocationHandler extends VariableUiElement {
this._leafletMap = leafletMap;
this._layoutToUse = state.layoutToUse;
this._hasLocation = hasLocation;
+ this._lastUserRequest = lastClick
const self = this;
const currentPointer = this._isActive.map(
@@ -183,8 +202,7 @@ export default class GeoLocationHandler extends VariableUiElement {
self.init(true, true);
});
- const latLonGiven = QueryParameters.wasInitialized("lat") && QueryParameters.wasInitialized("lon")
-
+
const doAutoZoomToLocation = !latLonGiven && state.featureSwitchGeolocation.data && state.selectedElement.data !== undefined
this.init(false, doAutoZoomToLocation);
@@ -221,8 +239,12 @@ export default class GeoLocationHandler extends VariableUiElement {
self.currentLocation?.features?.setData([{feature, freshness: new Date()}])
const timeSinceRequest =
- (new Date().getTime() - (self._lastUserRequest?.getTime() ?? 0)) / 1000;
- if (timeSinceRequest < 30) {
+ (new Date().getTime() - (self._lastUserRequest.data?.getTime() ?? 0)) / 1000;
+
+ if (willFocus.data) {
+ console.log("Zooming to user location: willFocus is set")
+ willFocus.setData(false)
+ autozoomDone = true;
self.MoveToCurrentLocation(16);
} else if (self._isLocked.data) {
self.MoveToCurrentLocation();
@@ -239,8 +261,8 @@ export default class GeoLocationHandler extends VariableUiElement {
self.MoveToCurrentLocation(16);
return;
}
-
- if(typeof navigator === "undefined"){
+
+ if (typeof navigator === "undefined") {
return
}
@@ -271,7 +293,7 @@ export default class GeoLocationHandler extends VariableUiElement {
/**
* Moves to the currently loaded location.
- *
+ *
* // Should move to any location
* let resultingLocation = undefined
* let resultingzoom = 1
@@ -321,7 +343,7 @@ export default class GeoLocationHandler extends VariableUiElement {
*/
private MoveToCurrentLocation(targetZoom?: number) {
const location = this._currentGPSLocation.data;
- this._lastUserRequest = undefined;
+ this._lastUserRequest.setData(undefined);
if (
this._currentGPSLocation.data.latitude === 0 &&
@@ -356,7 +378,7 @@ export default class GeoLocationHandler extends VariableUiElement {
private StartGeolocating(zoomToGPS = true) {
const self = this;
- this._lastUserRequest = zoomToGPS ? new Date() : new Date(0);
+ this._lastUserRequest.setData(zoomToGPS ? new Date() : new Date(0))
if (self._permission.data === "denied") {
self._previousLocationGrant.setData("");
self._isActive.setData(false)
diff --git a/Logic/State/ElementsState.ts b/Logic/State/ElementsState.ts
index c7fc1dbbf4..f92891358b 100644
--- a/Logic/State/ElementsState.ts
+++ b/Logic/State/ElementsState.ts
@@ -43,29 +43,34 @@ export default class ElementsState extends FeatureSwitchState {
constructor(layoutToUse: LayoutConfig) {
super(layoutToUse);
+
+
+ function localStorageSynced(key: string, deflt: number, docs: string ): UIEventSource{
+ const localStorage = LocalStorageSource.Get(key)
+ const previousValue = localStorage.data
+ const src = UIEventSource.asFloat(
+ QueryParameters.GetQueryParameter(
+ key,
+ "" + deflt,
+ docs
+ ).syncWith(localStorage)
+ );
+
+ if(src.data === deflt){
+ const prev = Number(previousValue)
+ if(!isNaN(prev)){
+ src.setData(prev)
+ }
+ }
+
+ return src;
+ }
// -- Location control initialization
- const zoom = UIEventSource.asFloat(
- QueryParameters.GetQueryParameter(
- "z",
- "" + (layoutToUse?.startZoom ?? 1),
- "The initial/current zoom level"
- ).syncWith(LocalStorageSource.Get("zoom"))
- );
- const lat = UIEventSource.asFloat(
- QueryParameters.GetQueryParameter(
- "lat",
- "" + (layoutToUse?.startLat ?? 0),
- "The initial/current latitude"
- ).syncWith(LocalStorageSource.Get("lat"))
- );
- const lon = UIEventSource.asFloat(
- QueryParameters.GetQueryParameter(
- "lon",
- "" + (layoutToUse?.startLon ?? 0),
- "The initial/current longitude of the app"
- ).syncWith(LocalStorageSource.Get("lon"))
- );
+ const zoom = localStorageSynced("z",(layoutToUse?.startZoom ?? 1),"The initial/current zoom level")
+ const lat = localStorageSynced("lat",(layoutToUse?.startLat ?? 0),"The initial/current latitude")
+ const lon = localStorageSynced("lon",(layoutToUse?.startLon ?? 0),"The initial/current longitude of the app")
+
this.locationControl.setData({
zoom: Utils.asFloat(zoom.data),
@@ -73,7 +78,7 @@ export default class ElementsState extends FeatureSwitchState {
lon: Utils.asFloat(lon.data),
})
this.locationControl.addCallback((latlonz) => {
- // Sync th location controls
+ // Sync the location controls
zoom.setData(latlonz.zoom);
lat.setData(latlonz.lat);
lon.setData(latlonz.lon);
diff --git a/Models/Constants.ts b/Models/Constants.ts
index 117f31cd01..09053fea3b 100644
--- a/Models/Constants.ts
+++ b/Models/Constants.ts
@@ -62,6 +62,13 @@ export default class Constants {
*/
static distanceToChangeObjectBins = [25, 50, 100, 500, 1000, 5000, Number.MAX_VALUE]
static themeOrder = ["personal", "cyclofix", "waste" , "etymology", "food","cafes_and_pubs", "playgrounds", "hailhydrant", "toilets", "aed", "bookcases"];
+ /**
+ * Upon initialization, the GPS will search the location.
+ * If the location is found within the given timout, it'll automatically fly to it.
+ *
+ * In seconds
+ */
+ static zoomToLocationTimeout = 60;
private static isRetina(): boolean {
if (Utils.runningFromConsole) {
From a63fed178b49732fe6d561981e9502567b3cb697 Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Sat, 9 Apr 2022 21:44:37 +0200
Subject: [PATCH 03/19] Attempt to fix #683
---
assets/layers/charging_station/csvToJson.ts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/assets/layers/charging_station/csvToJson.ts b/assets/layers/charging_station/csvToJson.ts
index 5bd1e956a9..04aedcfe31 100644
--- a/assets/layers/charging_station/csvToJson.ts
+++ b/assets/layers/charging_station/csvToJson.ts
@@ -1,6 +1,5 @@
import {readFileSync, writeFileSync} from "fs";
import {Utils} from "../../../Utils";
-import {TagRenderingConfigJson} from "../../../Models/ThemeConfig/Json/TagRenderingConfigJson";
import ScriptUtils from "../../../scripts/ScriptUtils";
import {LayerConfigJson} from "../../../Models/ThemeConfig/Json/LayerConfigJson";
import FilterConfigJson from "../../../Models/ThemeConfig/Json/FilterConfigJson";
@@ -8,7 +7,7 @@ import {QuestionableTagRenderingConfigJson} from "../../../Models/ThemeConfig/Js
function colonSplit(value: string): string[] {
- return value.split(";").map(v => v.replace(/"/g, '').trim().toLowerCase()).filter(s => s !== "");
+ return value.split(";").map(v => v.replace(/"/g, '').trim()).filter(s => s !== "");
}
function loadCsv(file): {
From f5d5f304aed77e2087bd059f3904f014974f6294 Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Sat, 9 Apr 2022 21:44:52 +0200
Subject: [PATCH 04/19] Version bump
---
Models/Constants.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Models/Constants.ts b/Models/Constants.ts
index 09053fea3b..431aacf2ce 100644
--- a/Models/Constants.ts
+++ b/Models/Constants.ts
@@ -2,7 +2,7 @@ import {Utils} from "../Utils";
export default class Constants {
- public static vNumber = "0.18.0";
+ public static vNumber = "0.19.0-alpha";
public static ImgurApiKey = '7070e7167f0a25a'
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"
From e391c1ce2059cfc2f892172168f65540feede3f8 Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Wed, 13 Apr 2022 01:19:28 +0200
Subject: [PATCH 05/19] Add typings to translations, move Subs into
'TypedTranslations', cleanup of duplicate parts in translation files, fix
#752
---
Models/ThemeConfig/TagRenderingConfig.ts | 23 +++--
UI/BigComponents/CopyrightPanel.ts | 4 +-
UI/BigComponents/TranslatorsPanel.ts | 5 +-
UI/Reviews/ReviewElement.ts | 2 +-
UI/Wikipedia/WikidataPreviewBox.ts | 4 +-
UI/i18n/Translation.ts | 46 +++++----
UI/i18n/Translations.ts | 10 +-
langs/gl.json | 5 -
langs/nl.json | 28 -----
langs/pl.json | 112 --------------------
langs/zh_Hant.json | 124 -----------------------
scripts/generateTranslations.ts | 19 +++-
12 files changed, 64 insertions(+), 318 deletions(-)
diff --git a/Models/ThemeConfig/TagRenderingConfig.ts b/Models/ThemeConfig/TagRenderingConfig.ts
index 0f2aa3fdb9..aa9f05eb89 100644
--- a/Models/ThemeConfig/TagRenderingConfig.ts
+++ b/Models/ThemeConfig/TagRenderingConfig.ts
@@ -1,4 +1,4 @@
-import {Translation} from "../../UI/i18n/Translation";
+import {Translation, TypedTranslation} from "../../UI/i18n/Translation";
import {TagsFilter} from "../../Logic/Tags/TagsFilter";
import Translations from "../../UI/i18n/Translations";
import {TagUtils} from "../../Logic/Tags/TagUtils";
@@ -22,8 +22,8 @@ export default class TagRenderingConfig {
public readonly id: string;
public readonly group: string;
- public readonly render?: Translation;
- public readonly question?: Translation;
+ public readonly render?: TypedTranslation
The project uses data of the OpenStreetMap project.
",
+ "descriptionTail": "The climbing map was originally made by Christian Neumann. Please get in touch if you have feedback or questions.The project uses data of the OpenStreetMap project.
",
"overrideAll": {
"tagRenderings+": {
"0": {
diff --git a/scripts/automoveTranslations.ts b/scripts/automoveTranslations.ts
index 27fd922283..662b91fb0f 100644
--- a/scripts/automoveTranslations.ts
+++ b/scripts/automoveTranslations.ts
@@ -18,8 +18,8 @@ function fixSection(section, referenceSection, language: string) {
for (const subkey of Object.keys(referenceSection)) {
const subreference = referenceSection[subkey]
if(subreference[key] !== undefined){
- if(section[subkey][key] !== undefined) {
- console.log(`${subkey}${key} is alrady defined... Looking furhter`)
+ if(section[subkey] !== undefined && section[subkey][key] !== undefined) {
+ console.log(`${subkey}${key} is already defined... Looking furhter`)
continue
}
if(typeof section[subkey] === "string"){
From b4ade5de1da049e8beb3797e13eb5c652690ee6f Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Mon, 18 Apr 2022 22:23:14 +0200
Subject: [PATCH 17/19] Fix typo
---
Docs/theme-template.json | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/Docs/theme-template.json b/Docs/theme-template.json
index 9ead97d564..8d904d0aad 100644
--- a/Docs/theme-template.json
+++ b/Docs/theme-template.json
@@ -22,9 +22,8 @@
"#": "For more options and configuration, see the documentation in LayoutConfig.json",
"#layers": "The list of layers is where most of the content will be. Either reuse an already existing layer by simply calling it's ID or define a whole new layer. An overview of builtin layers is at https://github.com/pietervdvn/MapComplete/blob/develop/Docs/BuiltinLayers.md#normal-layers",
"layers": [
- "bench",
{
- "id": "a singular nound describing the feature, in english",
+ "id": "a singular noun describing the feature, in english",
"source": {
"osmTags": {
"#": "For a description on which tags are possible, see https://github.com/pietervdvn/MapComplete/blob/develop/Docs/Tags_format.md",
From b1e304e05c6cb66eea59a8d8ba41e9df1cccca40 Mon Sep 17 00:00:00 2001
From: pietervdvn
Date: Tue, 19 Apr 2022 00:57:18 +0200
Subject: [PATCH 18/19] Add more guidelines on themes
---
Docs/FilterFunctionality.gif | Bin 0 -> 7688817 bytes
Docs/FilteredByDepth.gif | Bin 0 -> 6582456 bytes
Docs/Making_Your_Own_Theme.md | 218 ++++++++++++++++++++++++++++++++--
3 files changed, 210 insertions(+), 8 deletions(-)
create mode 100644 Docs/FilterFunctionality.gif
create mode 100644 Docs/FilteredByDepth.gif
diff --git a/Docs/FilterFunctionality.gif b/Docs/FilterFunctionality.gif
new file mode 100644
index 0000000000000000000000000000000000000000..69b826dc4b6933cd60984ec60cf74aac19a2bc51
GIT binary patch
literal 7688817
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%0D!am6rUj*=oo%G%SP!yY96#FSW)jtWa
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