diff --git a/src/public/index.html b/src/public/index.html
index fca5e31..5ab3e43 100644
--- a/src/public/index.html
+++ b/src/public/index.html
@@ -1195,6 +1195,28 @@
+
+
+
+
Waypoints not updated within this time are hidden. Reload to update map.
+
+
+
@@ -1321,6 +1343,19 @@
}
}
+ function getConfigWaypointsMaxAgeInSeconds() {
+ const value = localStorage.getItem("config_waypoints_max_age_in_seconds");
+ return value != null ? parseInt(value) : null;
+ }
+
+ function setConfigWaypointsMaxAgeInSeconds(value) {
+ if(value != null){
+ return localStorage.setItem("config_waypoints_max_age_in_seconds", value);
+ } else {
+ return localStorage.removeItem("config_waypoints_max_age_in_seconds");
+ }
+ }
+
function getConfigNeighboursMaxDistanceInMeters() {
const value = localStorage.getItem("config_neighbours_max_distance_in_meters");
return value != null ? parseInt(value) : null;
@@ -1353,6 +1388,7 @@
configNodesMaxAgeInSeconds: window.getConfigNodesMaxAgeInSeconds(),
configNodesOfflineAgeInSeconds: window.getConfigNodesOfflineAgeInSeconds(),
+ configWaypointsMaxAgeInSeconds: window.getConfigWaypointsMaxAgeInSeconds(),
configNeighboursMaxDistanceInMeters: window.getConfigNeighboursMaxDistanceInMeters(),
configZoomLevelGoToNode: window.getConfigZoomLevelGoToNode(),
configAutoUpdatePositionInUrl: window.getConfigAutoUpdatePositionInUrl(),
@@ -1783,6 +1819,9 @@
configNodesOfflineAgeInSeconds() {
window.setConfigNodesOfflineAgeInSeconds(this.configNodesOfflineAgeInSeconds);
},
+ configWaypointsMaxAgeInSeconds() {
+ window.setConfigWaypointsMaxAgeInSeconds(this.configWaypointsMaxAgeInSeconds);
+ },
configNeighboursMaxDistanceInMeters() {
window.setConfigNeighboursMaxDistanceInMeters(this.configNeighboursMaxDistanceInMeters);
},
@@ -2327,6 +2366,16 @@
// add nodes
for(var waypoint of updatedWaypoints){
+ // skip waypoints older than configured waypoint max age
+ const now = moment();
+ const configWaypointsMaxAgeInSeconds = getConfigWaypointsMaxAgeInSeconds();
+ if(configWaypointsMaxAgeInSeconds){
+ const lastUpdatedAgeInMillis = now.diff(moment(waypoint.updated_at));
+ if(lastUpdatedAgeInMillis > configWaypointsMaxAgeInSeconds * 1000){
+ continue;
+ }
+ }
+
// skip expired waypoints
if(waypoint.expire < Date.now() / 1000){
continue;