annotate client/src/components/layers/Layers.vue @ 5736:55892008ec96 default tip

Fixed a bunch of corner cases in WG import.
author Sascha Wilde <wilde@sha-bang.de>
date Wed, 29 May 2024 19:02:42 +0200
parents fbffb3d7e336
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 <template>
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
2 <div
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
3 :class="[
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
4 'box ui-element rounded bg-white text-nowrap',
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
5 { expanded: showLayers }
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
6 ]"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1402
diff changeset
7 >
4981
9f0830a1845d squashed the total layout to enable display of long fm importnames
Thomas Junk <thomas.junk@intevation.de>
parents: 4942
diff changeset
8 <div class="position-relative" style="width: 17rem; min-height: 350px;">
3167
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
9 <UIBoxHeader
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
10 icon="layer-group"
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
11 :title="label"
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
12 :closeCallback="close"
3177
fc008b32c593 client: layers: loading animation for refreshing layer sources
Markus Kottlaender <markus@intevation.de>
parents: 3167
diff changeset
13 :actions="[
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
14 {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
15 callback: refreshLayers,
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
16 icon: sourcesLoading ? 'spinner' : 'sync'
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
17 }
3177
fc008b32c593 client: layers: loading animation for refreshing layer sources
Markus Kottlaender <markus@intevation.de>
parents: 3167
diff changeset
18 ]"
3167
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
19 />
3055
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
20 <div class="small" v-if="openLayersMaps.length">
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
21 <Layerselect layerId="OPENSTREETMAP" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
22 <Layerselect layerId="INLANDECDIS" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
23 <Layerselect layerId="WATERWAYAREA" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
24 <Layerselect layerId="STRETCHES" />
3309
80037790032d client: fully implemented sections
Markus Kottlaender <markus@intevation.de>
parents: 3181
diff changeset
25 <Layerselect layerId="SECTIONS" />
4600
75d1126f7299 Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents: 4401
diff changeset
26 <Layerselect layerId="BOTTLENECKS" />
75d1126f7299 Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents: 4401
diff changeset
27 <Layerselect layerId="BOTTLENECKISOLINE" />
75d1126f7299 Reordered layers so that features are not covered by new filled morphology.
Sascha Wilde <wilde@intevation.de>
parents: 4401
diff changeset
28 <Layerselect layerId="DIFFERENCES" />
3055
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
29 <Layerselect layerId="FAIRWAYDIMENSIONSLOS3" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
30 <Layerselect layerId="FAIRWAYDIMENSIONSLOS2" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
31 <Layerselect layerId="FAIRWAYDIMENSIONSLOS1" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
32 <Layerselect layerId="WATERWAYAXIS" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
33 <Layerselect layerId="WATERWAYPROFILES" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
34 <Layerselect layerId="BOTTLENECKSTATUS" />
3335
59db0b5921c5 client: added layer for fairway availability diagrams with demo diagrams
Markus Kottlaender <markus@intevation.de>
parents: 3309
diff changeset
35 <Layerselect layerId="BOTTLENECKFAIRWAYAVAILABILITY" />
5147
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
36 <Layerselect v-if="!showTimeSlider" layerId="DATAAVAILABILITY" />
3055
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
37 <Layerselect layerId="DISTANCEMARKS" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
38 <Layerselect layerId="DISTANCEMARKSAXIS" />
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
39 <Layerselect layerId="GAUGES" />
4942
c4d84be3a476 add fairwaymarks layer
Thomas Junk <thomas.junk@intevation.de>
parents: 4600
diff changeset
40 <Layerselect layerId="FAIRWAYMARKS" />
4368
e9d2573329da import_overview: make layer for review togglable (currently only for development visible)
Thomas Junk <thomas.junk@intevation.de>
parents: 4271
diff changeset
41 <Layerselect v-if="reviewActive" layerId="FDREVIEWLAYER" />
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
42 </div>
3055
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
43 <UISpinnerOverlay v-else style="top: 34px;" />
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
44 </div>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
45 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
46 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
47
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
48 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1361
diff changeset
49 /* This is Free Software under GNU Affero General Public License v >= 3.0
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
50 * without warranty, see README.md and license for details.
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
51 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
52 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
53 * License-Filename: LICENSES/AGPL-3.0.txt
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
54 *
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
55 * Copyright (C) 2018 by via donau
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
56 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
57 * Software engineering by Intevation GmbH
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
58 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
59 * Author(s):
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
60 * Thomas Junk <thomas.junk@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
61 * Markus Kottländer <markus.kottlaender@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
62 */
4374
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
63 import { mapState, mapGetters } from "vuex";
2870
35f6e4383161 layer structure overhaul
Thomas Junk <thomas.junk@intevation.de>
parents: 2851
diff changeset
64
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
65 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
66 components: {
1669
16fb9667ddf8 refac: use dynamic imports for components
Thomas Junk <thomas.junk@intevation.de>
parents: 1558
diff changeset
67 Layerselect: () => import("./Layerselect")
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
68 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
69 computed: {
5147
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
70 ...mapState("application", ["showLayers", "showTimeSlider"]),
4368
e9d2573329da import_overview: make layer for review togglable (currently only for development visible)
Thomas Junk <thomas.junk@intevation.de>
parents: 4271
diff changeset
71 ...mapState("map", ["openLayersMaps", "reviewActive"]),
4374
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
72 ...mapGetters("map", ["openLayersMap"]),
3055
b3c24c47931c client: layers legend: support multiple maps
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
73 label() {
3425
cb2f67a07400 client: toolbar/dialogs: unified toolbar tooltips and dialog titles
Markus Kottlaender <markus@intevation.de>
parents: 3409
diff changeset
74 return this.$gettext("Map Layers");
3181
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
75 },
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
76 sourcesLoading() {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
77 let counter = 0;
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
78 this.openLayersMaps.forEach(map => {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
79 let layers = map.getLayers().getArray();
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
80 for (let i = 0; i < layers.length; i++) {
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
81 if (layers[i].getSource().loading) counter++;
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
82 }
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
83 });
c122a064fd5e client: map: fixed loading animation for layers
Markus Kottlaender <markus@intevation.de>
parents: 3177
diff changeset
84 return counter;
2754
d0f6c222f4f9 client:correct a set of strings marking
Fadi Abbud <fadi.abbud@intevation.de>
parents: 2534
diff changeset
85 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
86 },
4374
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
87 watch: {
5147
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
88 showTimeSlider() {
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
89 if (!this.showTimeSlider) return;
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
90 const availabilityLayer = this.openLayersMap().getLayer(
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
91 "DATAAVAILABILITY"
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
92 );
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
93 availabilityLayer.setVisible(false);
fbffb3d7e336 hide data_availability_layer when timeslide is activated
Thomas Junk <thomas.junk@intevation.de>
parents: 5085
diff changeset
94 },
4374
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
95 reviewActive() {
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
96 if (!this.reviewActive) {
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
97 const fairwaydimensionLayer = this.openLayersMap().getLayer(
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
98 "FDREVIEWLAYER"
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
99 );
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
100 fairwaydimensionLayer.setVisible(false);
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
101 }
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
102 }
ad2bf9580696 importoverview: review of fairwaydimensions improved
Thomas Junk <thomas.junk@intevation.de>
parents: 4368
diff changeset
103 },
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
104 methods: {
2387
f185503ef35a client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents: 2260
diff changeset
105 close() {
f185503ef35a client: unified box's header styles by creating a reusable component
Markus Kottlaender <markus@intevation.de>
parents: 2260
diff changeset
106 this.$store.commit("application/showLayers", false);
3167
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
107 },
85734c763652 client: layers: moved refresh button from zoom controls to layers dialog
Markus Kottlaender <markus@intevation.de>
parents: 3055
diff changeset
108 refreshLayers() {
5085
fe63733750d7 client: correct refresh layers request time
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5075
diff changeset
109 this.$store.commit("application/setLayerRefreshedTime", new Date());
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4122
diff changeset
110 this.$store.commit("map/startRefreshLayers");
4122
d85d8de8c28c refresh layers deletes nashsutcliffecache
Thomas Junk <thomas.junk@intevation.de>
parents: 3434
diff changeset
111 this.$store.commit("gauges/deleteNashSutcliffeCache");
3409
c0f5f62343c9 client: import review: refresh map layers after accepting/declining imports
Markus Kottlaender <markus@intevation.de>
parents: 3335
diff changeset
112 this.$store.dispatch("map/refreshLayers");
4271
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4122
diff changeset
113 this.$nextTick(() => {
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4122
diff changeset
114 this.$store.commit("map/finishRefreshLayers");
315474a66589 Map: refreshing layers triggers reloading of styles
Thomas Junk <thomas.junk@intevation.de>
parents: 4122
diff changeset
115 });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
116 }
2957
b74ebeb2bdc8 client: layers: improved structure of layer configuration
Markus Kottlaender <markus@intevation.de>
parents: 2952
diff changeset
117 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
118 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
119 </script>