Mercurial > gemma
annotate client/src/store/bottlenecks.js @ 5521:3cfbc5769e8b
Make invalid output of ISRSrange_area() less likely
Since ST_Transform() might produce an invalid polygon, add an extra
ST_MakeValid().
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 21 Oct 2021 20:20:30 +0200 |
parents | 660147046ddd |
children | 3b842e951317 |
rev | line source |
---|---|
1362
ca33ad696594
remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1296
diff
changeset
|
1 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
2 * without warranty, see README.md and license for details. |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
3 * |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
4 * SPDX-License-Identifier: AGPL-3.0-or-later |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
5 * License-Filename: LICENSES/AGPL-3.0.txt |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
6 * |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
7 * Copyright (C) 2018 by via donau |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
8 * – Österreichische Wasserstraßen-Gesellschaft mbH |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
9 * Software engineering by Intevation GmbH |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
10 * |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
11 * Author(s): |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
12 * Markus Kottländer <markuks.kottlaender@intevation.de> |
1363 | 13 * Thomas Junk <thomas.junk@intevation.de> |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
14 */ |
1625
de4e4dcb8f87
staging area: implemented details and zoom to bbox
Thomas Junk <thomas.junk@intevation.de>
parents:
1536
diff
changeset
|
15 import { HTTP } from "@/lib/http"; |
2985
1b8bb4f89227
client: removed .js and .vue extention from imports
Markus Kottlaender <markus@intevation.de>
parents:
2957
diff
changeset
|
16 import { WFS } from "ol/format"; |
1b8bb4f89227
client: removed .js and .vue extention from imports
Markus Kottlaender <markus@intevation.de>
parents:
2957
diff
changeset
|
17 import { displayError } from "@/lib/errors"; |
5291
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
18 import { compareAsc } from "date-fns"; |
1296
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
19 // initial state |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
20 const init = () => { |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
21 return { |
2438
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
22 bottlenecks: [], |
2436
64ff5984351e
client: renamed store property
Markus Kottlaender <markus@intevation.de>
parents:
2435
diff
changeset
|
23 bottlenecksList: [], |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
24 selectedBottleneck: null, |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
25 surveys: [], |
1372
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1363
diff
changeset
|
26 selectedSurvey: null, |
4488
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3692
diff
changeset
|
27 surveysLoading: false, |
5310
660147046ddd
Client: Implement handling zpg-exception info in pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5291
diff
changeset
|
28 bottleneckForPrint: null, |
660147046ddd
Client: Implement handling zpg-exception info in pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5291
diff
changeset
|
29 soundingInfo: null |
1296
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
30 }; |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
31 }; |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
32 |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
33 export default { |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
34 init, |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
35 namespaced: true, |
99c039e86624
replaced manual store cleanup on logout with central store reset
Markus Kottlaender <markus@intevation.de>
parents:
1272
diff
changeset
|
36 state: init(), |
3236
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
37 getters: { |
3407
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
38 limitingFactorsPerBottleneck: state => { |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
39 if (state.bottlenecks.length === 0) return {}; |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
40 return state.bottlenecks.reduce((o, n) => { |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
41 o[n.properties.objnam] = n.properties.limiting; |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
42 return o; |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
43 }, {}); |
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
44 }, |
3236
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
45 orderedBottlenecks: state => { |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
46 let groupedBottlenecks = {}, |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
47 orderedGroups = {}; |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
48 |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
49 // group bottlenecks by cc |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
50 state.bottlenecksList.forEach(bn => { |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
51 let cc = bn.properties.responsible_country; |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
52 if (groupedBottlenecks.hasOwnProperty(cc)) { |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
53 groupedBottlenecks[cc].push(bn); |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
54 } else { |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
55 groupedBottlenecks[cc] = [bn]; |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
56 } |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
57 }); |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
58 |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
59 // order groups by cc |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
60 Object.keys(groupedBottlenecks) |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
61 .sort() |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
62 .forEach(cc => (orderedGroups[cc] = groupedBottlenecks[cc])); |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
63 |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
64 return orderedGroups; |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
65 } |
5914d615f703
available_fairway_depth: use the store luke
Thomas Junk <thomas.junk@intevation.de>
parents:
3204
diff
changeset
|
66 }, |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
67 mutations: { |
5310
660147046ddd
Client: Implement handling zpg-exception info in pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5291
diff
changeset
|
68 setSoundingInfo: (state, data) => { |
660147046ddd
Client: Implement handling zpg-exception info in pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5291
diff
changeset
|
69 state.soundingInfo = data; |
660147046ddd
Client: Implement handling zpg-exception info in pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5291
diff
changeset
|
70 }, |
4488
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3692
diff
changeset
|
71 setBottleneckForPrint: (state, bottleneck) => { |
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3692
diff
changeset
|
72 state.bottleneckForPrint = bottleneck; |
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3692
diff
changeset
|
73 }, |
2438
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
74 setBottlenecks: (state, bottlenecks) => { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
75 state.bottlenecks = bottlenecks; |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
76 }, |
2436
64ff5984351e
client: renamed store property
Markus Kottlaender <markus@intevation.de>
parents:
2435
diff
changeset
|
77 setBottlenecksList: (state, bottlenecksList) => { |
64ff5984351e
client: renamed store property
Markus Kottlaender <markus@intevation.de>
parents:
2435
diff
changeset
|
78 state.bottlenecksList = bottlenecksList; |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
79 }, |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
80 setSelectedBottleneck: (state, name) => { |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
81 state.selectedBottleneck = name; |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
82 }, |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
83 setSurveys(state, surveys) { |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
84 state.surveys = surveys; |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
85 }, |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
86 setSelectedSurveyByDate(state, date) { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
87 const survey = state.surveys.filter(x => x.date_info === date)[0]; |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
88 state.selectedSurvey = survey; |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
89 }, |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
90 setFirstSurveySelected(state) { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
91 state.selectedSurvey = state.surveys[0]; |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
92 }, |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1386
diff
changeset
|
93 selectedSurvey(state, survey) { |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
94 state.selectedSurvey = survey; |
1372
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1363
diff
changeset
|
95 }, |
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1363
diff
changeset
|
96 surveysLoading: (state, loading) => { |
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1363
diff
changeset
|
97 state.surveysLoading = loading; |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
98 } |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
99 }, |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
100 actions: { |
3062
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
101 setSelectedBottleneck({ state, commit, rootState }, name) { |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
102 return new Promise((resolve, reject) => { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
103 if (name !== state.selectedBottleneck) { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
104 commit("selectedSurvey", null); |
3149
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3062
diff
changeset
|
105 commit("fairwayprofile/additionalSurvey", null, { root: true }); |
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3062
diff
changeset
|
106 commit("fairwayprofile/clearCurrentProfile", null, { root: true }); |
3062
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
107 commit("map/cutToolEnabled", false, { root: true }); |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
108 rootState.map.openLayersMaps.forEach(m => { |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
109 m.getLayer("CUTTOOL") |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
110 .getSource() |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
111 .clear(); |
87e0422cffa7
client: draw/cut tools work now with multiple maps
Markus Kottlaender <markus@intevation.de>
parents:
3044
diff
changeset
|
112 }); |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
113 } |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
114 commit("setSelectedBottleneck", name); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
115 if (name) { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
116 commit("surveysLoading", true); |
4632
2e47b32a389d
client: encode strings in url paths
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4488
diff
changeset
|
117 HTTP.get("/surveys/" + encodeURIComponent(name), { |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
118 headers: { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
119 "X-Gemma-Auth": localStorage.getItem("token"), |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
120 "Content-type": "text/xml; charset=UTF-8" |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
121 } |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
122 }) |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
123 .then(response => { |
1536
97bdcee1d4c0
Backed out changeset b4b3dfd24739
Bernhard Reiter <bernhard@intevation.de>
parents:
1535
diff
changeset
|
124 const surveys = response.data.surveys.sort((a, b) => |
97bdcee1d4c0
Backed out changeset b4b3dfd24739
Bernhard Reiter <bernhard@intevation.de>
parents:
1535
diff
changeset
|
125 a.date_info < b.date_info ? 1 : -1 |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
126 ); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
127 commit("setSurveys", surveys); |
3204
1253fe15e3e3
client: identify: implemented popup when clicking the map and the intention is not clear...
Markus Kottlaender <markus@intevation.de>
parents:
3149
diff
changeset
|
128 commit("setFirstSurveySelected"); |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
129 resolve(response); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
130 }) |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
131 .catch(error => { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
132 commit("setSurveys", []); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
133 commit("selectedSurvey", null); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
134 const { status, data } = error.response; |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
135 displayError({ |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
136 title: "Backend Error", |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
137 message: `${status}: ${data.message || data}` |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
138 }); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
139 reject(error); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
140 }) |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
141 .finally(() => commit("surveysLoading", false)); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
142 } else { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
143 commit("setSurveys", []); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
144 resolve(); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
145 } |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
146 }); |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
147 }, |
2435
3679d604645e
client: renamed store action
Markus Kottlaender <markus@intevation.de>
parents:
2365
diff
changeset
|
148 loadBottlenecksList({ commit }) { |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
149 return new Promise((resolve, reject) => { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
150 var bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({ |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
151 srsName: "EPSG:4326", |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
152 featureNS: "gemma", |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
153 featurePrefix: "gemma", |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
154 featureTypes: ["bottleneck_overview"], |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
155 outputFormat: "application/json" |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
156 }); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
157 HTTP.post( |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
158 "/internal/wfs", |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
159 new XMLSerializer().serializeToString( |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
160 bottleneckFeatureCollectionRequest |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
161 ), |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
162 { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
163 headers: { |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
164 "X-Gemma-Auth": localStorage.getItem("token"), |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
165 "Content-type": "text/xml; charset=UTF-8" |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
166 } |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
167 } |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
168 ) |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
169 .then(response => { |
2436
64ff5984351e
client: renamed store property
Markus Kottlaender <markus@intevation.de>
parents:
2435
diff
changeset
|
170 commit("setBottlenecksList", response.data.features); |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
171 resolve(response); |
1111
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
172 }) |
f106aee673e7
selected bottleneck and surveys now handled by bottleneck store
Markus Kottlaender <markus@intevation.de>
parents:
1096
diff
changeset
|
173 .catch(error => { |
1516
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
174 reject(error); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
175 }); |
6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents:
1511
diff
changeset
|
176 }); |
2438
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
177 }, |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
178 loadBottlenecks({ commit }) { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
179 return new Promise((resolve, reject) => { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
180 var bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({ |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
181 srsName: "EPSG:4326", |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
182 featureNS: "gemma", |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
183 featurePrefix: "gemma", |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
184 featureTypes: ["bottlenecks_geoserver"], |
3407
7ea54c3b3fd6
afd: breaks for bottlenecks
Thomas Junk <thomas.junk@intevation.de>
parents:
3236
diff
changeset
|
185 outputFormat: "application/json", |
3692
3138836bf840
import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents:
3407
diff
changeset
|
186 propertyNames: [ |
3138836bf840
import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents:
3407
diff
changeset
|
187 "objnam", |
3138836bf840
import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents:
3407
diff
changeset
|
188 "responsible_country", |
3138836bf840
import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents:
3407
diff
changeset
|
189 "limiting", |
3138836bf840
import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents:
3407
diff
changeset
|
190 "reference_water_levels" |
5291
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
191 ] |
2438
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
192 }); |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
193 HTTP.post( |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
194 "/internal/wfs", |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
195 new XMLSerializer().serializeToString( |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
196 bottleneckFeatureCollectionRequest |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
197 ), |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
198 { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
199 headers: { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
200 "X-Gemma-Auth": localStorage.getItem("token"), |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
201 "Content-type": "text/xml; charset=UTF-8" |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
202 } |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
203 } |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
204 ) |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
205 .then(response => { |
5291
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
206 // Filter bottlenecks to get them unique with the latest time for each one. |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
207 const bottlenecks = response.data.features; |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
208 let btnIds = [], |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
209 filteredBottlenceks = []; |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
210 bottlenecks.forEach(btn => { |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
211 const btnName = btn.properties.bottleneck_id; |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
212 if (btnIds.indexOf(btnName) === -1) { |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
213 btnIds.push(btnName); |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
214 filteredBottlenceks.push(btn); |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
215 } else { |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
216 let btnToCompare = filteredBottlenceks.find( |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
217 b => b.properties.bottleneck_id === btnName |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
218 ); |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
219 if ( |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
220 compareAsc( |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
221 btn.properties.date_info, |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
222 btnToCompare.properties.date_info |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
223 ) === 1 |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
224 ) { |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
225 const index = filteredBottlenceks.findIndex( |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
226 x => x.properties.bottleneck_id === btnName |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
227 ); |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
228 filteredBottlenceks[index] = btn; |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
229 } |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
230 } |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
231 }); |
d62587503a39
Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents:
5289
diff
changeset
|
232 commit("setBottlenecks", filteredBottlenceks); |
2438
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
233 resolve(response); |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
234 }) |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
235 .catch(error => { |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
236 reject(error); |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
237 }); |
bbc31150248c
client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents:
2436
diff
changeset
|
238 }); |
1096
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
239 } |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
240 } |
aa1f5daf6fc9
refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
241 }; |