Mercurial > gemma
annotate client/src/components/systemconfiguration/MapLayers.vue @ 3856:0b8b62fd8cea
client: configuration: added tint icon to classbreak color selection
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Tue, 09 Jul 2019 14:22:01 +0200 |
parents | 32d7bb1afdc9 |
children | 91b4ca03174e |
rev | line source |
---|---|
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
1 <template> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
2 <div class="d-flex flex-column pb-4 border-bottom"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
3 <h5 class="py-2 px-3 mb-2 m-0"><translate>Map Layers</translate></h5> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
4 <div class="px-3 container-fluid"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
5 <div class="row"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
6 <div class="col-sm-6"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
7 <div class="form-group"> |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
8 <label for="ecdis-url" class="font-weight-bold"> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
9 ECDIS WMS URL |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
10 </label> |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
11 <input |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
12 type="url" |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
13 class="form-control" |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
14 placeholder="https://..." |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
15 @input="lookupWMSCapabilities()" |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
16 v-model="config.ecdis_wms_url" |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
17 /> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
18 </div> |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
19 <label for="ecdis-layers"> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
20 <translate>Layers</translate> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
21 <transition name="fade" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
22 ><font-awesome-icon |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
23 icon="spinner" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
24 spin |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
25 v-if="availableWMSLayersLoading" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
26 class="ml-2" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
27 /></transition> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
28 </label> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
29 <div class="container-fluid"> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
30 <div class="row"> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
31 <div |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
32 class="custom-control custom-checkbox col-sm-4" |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
33 v-for="layer in availableWMSLayers" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
34 :key="'layer-' + layer" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
35 > |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
36 <input |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
37 type="checkbox" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
38 class="custom-control-input" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
39 v-model="selectedWMSLayers" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
40 :id="'layer-' + layer" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
41 :value="layer" |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
42 /> |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
43 <label |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
44 class="custom-control-label text-break" |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
45 :for="'layer-' + layer" |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
46 > |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
47 {{ layer }} |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
48 </label> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
49 </div> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
50 </div> |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
51 </div> |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
52 </div> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
53 </div> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
54 </div> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
55 <div class="mt-4 px-3"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
56 <a @click.prevent="submit" class="btn btn-info btn-sm text-white"> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
57 <translate>Send</translate> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
58 </a> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
59 </div> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
60 </div> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
61 </template> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
62 |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
63 <script> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
64 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
65 * without warranty, see README.md and license for details. |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
66 * |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
67 * SPDX-License-Identifier: AGPL-3.0-or-later |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
68 * License-Filename: LICENSES/AGPL-3.0.txt |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
69 * |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
70 * Copyright (C) 2018 by via donau |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
71 * – Österreichische Wasserstraßen-Gesellschaft mbH |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
72 * Software engineering by Intevation GmbH |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
73 * |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
74 * Author(s): |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
75 * Markus Kottländer <markus@intevation.de> |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
76 */ |
3622
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
77 import { mapState } from "vuex"; |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
78 import WMSCapabilities from "ol/format/WMSCapabilities"; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
79 import { HTTP } from "@/lib/http"; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
80 |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
81 const WMSCapabilitiesParser = new WMSCapabilities(); |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
82 |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
83 export default { |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
84 data() { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
85 return { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
86 selectedWMSLayers: [], |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
87 availableWMSLayers: [], |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
88 availableWMSLayersLoading: false, |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
89 lookupWMSCapabilitiesTimeout: null, |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
90 wmsVersion: "" |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
91 }; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
92 }, |
3622
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
93 computed: { |
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
94 ...mapState("application", ["config"]) |
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
95 }, |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
96 methods: { |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
97 lookupWMSCapabilities() { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
98 if (this.lookupWMSCapabilitiesTimeout) { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
99 clearTimeout(this.lookupWMSCapabilitiesTimeout); |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
100 } |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
101 this.lookupWMSCapabilitiesTimeout = setTimeout(() => { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
102 let url; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
103 try { |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
104 let urlParts = new URL(this.config.ecdis_wms_url); |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
105 url = |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
106 urlParts.protocol + |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
107 "//" + |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
108 urlParts.host + |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
109 urlParts.pathname.trim("/") + |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
110 "/"; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
111 } catch (e) { |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
112 url = this.config.ecdis_wms_url; |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
113 } |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
114 this.availableWMSLayersLoading = true; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
115 HTTP.get(url + "?request=GetCapabilities&service=WMS") |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
116 .then(response => { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
117 let capabilities = WMSCapabilitiesParser.read(response.data); |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
118 this.wmsVersion = capabilities.version; |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
119 this.availableWMSLayers = []; |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
120 this.getLayersRecursive(capabilities.Capability.Layer.Layer); |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
121 }) |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
122 .catch(() => { |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
123 this.availableWMSLayers = []; |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
124 }) |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
125 .finally(() => (this.availableWMSLayersLoading = false)); |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
126 }, 500); |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
127 }, |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
128 getLayersRecursive(layers) { |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
129 layers.forEach(l => { |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
130 if (l.hasOwnProperty("Layer")) { |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
131 this.getLayersRecursive(l.Layer); |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
132 } else { |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
133 this.availableWMSLayers.push(l.Name); |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
134 } |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
135 }); |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
136 }, |
3622
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
137 submit() { |
3625
a688a478e35f
implemented configuration backend and frontend
Markus Kottlaender <markus@intevation.de>
parents:
3622
diff
changeset
|
138 this.$store.dispatch("application/saveConfig", { |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
139 ecdis_wms_url: this.config.ecdis_wms_url, |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
140 ecdis_wms_params: JSON.stringify({ |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
141 LAYERS: this.selectedWMSLayers |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
142 .filter(l => this.availableWMSLayers.find(al => al === l)) |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
143 .join(","), |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
144 VERSION: this.wmsVersion, |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
145 TILED: true |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
146 }) |
3625
a688a478e35f
implemented configuration backend and frontend
Markus Kottlaender <markus@intevation.de>
parents:
3622
diff
changeset
|
147 }); |
3622
30a9fdac70f0
client: configuration: prepared fetching morphology classbreaks and ecdis url from backend
Markus Kottlaender <markus@intevation.de>
parents:
3603
diff
changeset
|
148 } |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
149 }, |
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
150 mounted() { |
3641
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
151 let ecdisWmsParams = JSON.parse(this.config.ecdis_wms_params); |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
152 if (ecdisWmsParams.LAYERS) { |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
153 this.selectedWMSLayers = ecdisWmsParams.LAYERS.split(","); |
32d7bb1afdc9
client: configuration: support wms services with nested layers
Markus Kottlaender <markus@intevation.de>
parents:
3637
diff
changeset
|
154 } |
3637
0e2605f6fddd
client: configuration: look up wms capabilities and make layers configurable
Markus Kottlaender <markus@intevation.de>
parents:
3625
diff
changeset
|
155 this.lookupWMSCapabilities(); |
3603
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
156 } |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
157 }; |
2cf7e167dad9
client: configuration: prepared component for map layer configuration
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
158 </script> |