diff --git a/src/components/yeti/map-layers/DataAvalancheLayer.vue b/src/components/yeti/map-layers/DataAvalancheLayer.vue index 196ecd275..1fcd808e5 100644 --- a/src/components/yeti/map-layers/DataAvalancheLayer.vue +++ b/src/components/yeti/map-layers/DataAvalancheLayer.vue @@ -106,10 +106,12 @@ export default { this.overlay.date = null; }, dateValid(date, days) { - return (new Date() - new Date(date)) / 1000 < 60 * 60 * 24 * days; + let todayString = this.$dateUtils.toLocalizedString(new Date(), 'YYYY-MM-DD'); + return (new Date(todayString) - new Date(date)) / 1000 < 60 * 60 * 24 * days; }, differenceDays(date) { - return Math.round((new Date() - new Date(date)) / 1000 / 60 / 60 / 24); + let todayString = this.$dateUtils.toLocalizedString(new Date(), 'YYYY-MM-DD'); + return Math.round((new Date(todayString) - new Date(date)) / 1000 / 60 / 60 / 24); }, onFeatures(features) { this.features = features; diff --git a/src/components/yeti/map-layers/RouteLayer.vue b/src/components/yeti/map-layers/RouteLayer.vue index 78c085559..8c923d382 100644 --- a/src/components/yeti/map-layers/RouteLayer.vue +++ b/src/components/yeti/map-layers/RouteLayer.vue @@ -628,10 +628,6 @@ export default { ol.extent.extend(extent, this.featuresLayerSource.getExtent()); this.view.fit(extent, { size: this.map.getSize() }); - - let actualZoom = Math.round(new ol.View().getZoomForResolution(this.map.getView().getResolution()) * 10) / 10; - // set a minimum zoom level - this.view.setZoom(Math.max(this.validMinimumMapZoom, actualZoom) / this.zoomDelta); }, fitMapToGeom(geom) { let feature = new ol.format.GeoJSON().readFeature(geom); diff --git a/src/components/yeti/map-layers/WinterRouteLayer.vue b/src/components/yeti/map-layers/WinterRouteLayer.vue index 5a98fdf55..d1abe179f 100644 --- a/src/components/yeti/map-layers/WinterRouteLayer.vue +++ b/src/components/yeti/map-layers/WinterRouteLayer.vue @@ -22,7 +22,6 @@ export default { checked: this.showWinterRoute, action: this.onShowWinterRoute, image: 'winter-route.png', - country: 'fr', contentComponent: WinterRouteLayerContent, contentTitleComponent: WinterRouteLayerContentTitle, }; diff --git a/src/views/portals/YetiView.vue b/src/views/portals/YetiView.vue index c20d92877..ab0fa5e69 100644 --- a/src/views/portals/YetiView.vue +++ b/src/views/portals/YetiView.vue @@ -193,6 +193,54 @@ export default { tabs() { return Yetix.tabs; }, + localTabs() { + let tabs = []; + + // layer tab + let tabLayer = { + id: 'layer', + icon: 'layer-group', + title: this.$gettext('Layers'), + }; + tabs.push(tabLayer); + + // risk tab + let tabRisk = { + id: 'risk', + name: this.$gettext('Risk'), + icon: 'bolt', + }; + tabs.push(tabRisk); + + // route tab + let tabRoute = { + id: 'route', + name: this.$gettext('My outing'), + icon: 'route', + }; + if (this.hasFeatures && !this.validSimplifyTolerance) { + tabRoute.counter = { + text: this.featuresLength, + title: this.$gettext('Route on map'), + }; + } + if (this.validSimplifyTolerance) { + tabRoute.problemIcon = { + title: this.$gettext('Not simplified yet'), + }; + } + tabs.push(tabRoute); + + // meteo tab + let tabMeteo = { + id: 'meteo', + name: this.$gettext('Meteo'), + icon: 'sun', + }; + tabs.push(tabMeteo); + + return tabs; + }, errors() { return { area: { @@ -252,6 +300,13 @@ export default { 'method.potentialDanger': 'check', mapZoom: 'check', areaOk: 'check', + localTabs: { + deep: true, // nested + immediate: true, // also when created + handler(tabs) { + Yetix.setTabs(tabs); + }, + }, }, created() { @@ -263,10 +318,6 @@ export default { Yetix.setDefault(); // remove all previous events (navigating from other c2c pages) Yetix.$off(); - - // build tabs - let tabs = this.setTabs(); - Yetix.setTabs(tabs); }, mounted() { @@ -274,54 +325,6 @@ export default { }, methods: { - setTabs() { - let tabs = []; - - // layer tab - let tabLayer = { - id: 'layer', - icon: 'layer-group', - title: this.$gettext('Layers'), - }; - tabs.push(tabLayer); - - // risk tab - let tabRisk = { - id: 'risk', - name: this.$gettext('Risk'), - icon: 'bolt', - }; - tabs.push(tabRisk); - - // route tab - let tabRoute = { - id: 'route', - name: this.$gettext('My outing'), - icon: 'route', - }; - if (this.hasFeatures && !this.validSimplifyTolerance) { - tabRoute.counter = { - text: this.featuresLength, - title: this.$gettext('Route on map'), - }; - } - if (this.validSimplifyTolerance) { - tabRoute.problemIcon = { - title: this.$gettext('Not simplified yet'), - }; - } - tabs.push(tabRoute); - - // meteo tab - let tabMeteo = { - id: 'meteo', - name: this.$gettext('Meteo'), - icon: 'sun', - }; - tabs.push(tabMeteo); - - return tabs; - }, check() { if (!this.areaOk) { this.formError = 'area';