annotate client/src/store/bottlenecks.js @ 5578:1d847bc21bb7 surveysperbottleneckid

Available Fairway Depth: Change evaluation of Limiting Factors from objnam to bottleneck_id
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 14 Feb 2022 09:13:09 +0100
parents 973c71c07bb2
children 215e6ba9651b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
d0c4d17ee7ab add missing authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1362
diff changeset
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";
5572
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
17 import { compareAsc } from "date-fns";
2985
1b8bb4f89227 client: removed .js and .vue extention from imports
Markus Kottlaender <markus@intevation.de>
parents: 2957
diff changeset
18 import { displayError } from "@/lib/errors";
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) => {
5578
1d847bc21bb7 Available Fairway Depth: Change evaluation of Limiting Factors from objnam to bottleneck_id
Thomas Junk <thomas.junk@intevation.de>
parents: 5577
diff changeset
41 o[n.properties.bottleneck_id] = n.properties.limiting;
3407
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 },
5572
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
80 setSelectedBottleneck: (state, value) => {
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
81 state.selectedBottleneck = value;
1111
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: {
5572
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
101 setSelectedBottleneck({ state, commit, rootState }, id) {
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) => {
5572
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
103 if (id !== state.selectedBottleneck) {
1516
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 }
5572
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
114 commit("setSelectedBottleneck", id);
3b842e951317 change use from name of bottleneck to its id.
Thomas Junk <thomas.junk@intevation.de>
parents: 5310
diff changeset
115 if (id) {
1516
6b3756676bbe refac: bottlenecks and surveydata are now retrieved via promises
Thomas Junk <thomas.junk@intevation.de>
parents: 1511
diff changeset
116 commit("surveysLoading", true);
5574
271888ef85bc Finalize use of bottleneck id instead of name.
Thomas Junk <thomas.junk@intevation.de>
parents: 5572
diff changeset
117 HTTP.get("/surveys?id=" + encodeURIComponent(id), {
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: [
5577
973c71c07bb2 Added bottleneck_id to queried properties for bottlenecks in store.
Thomas Junk <thomas.junk@intevation.de>
parents: 5574
diff changeset
187 "bottleneck_id",
3692
3138836bf840 import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents: 3407
diff changeset
188 "objnam",
3138836bf840 import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents: 3407
diff changeset
189 "responsible_country",
3138836bf840 import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents: 3407
diff changeset
190 "limiting",
3138836bf840 import_soundingresults: bottlenecks grouped by countrycode
Thomas Junk <thomas.junk@intevation.de>
parents: 3407
diff changeset
191 "reference_water_levels"
5291
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
192 ]
2438
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
193 });
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
194 HTTP.post(
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
195 "/internal/wfs",
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
196 new XMLSerializer().serializeToString(
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
197 bottleneckFeatureCollectionRequest
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 {
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
200 headers: {
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
201 "X-Gemma-Auth": localStorage.getItem("token"),
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
202 "Content-type": "text/xml; charset=UTF-8"
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 )
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
206 .then(response => {
5291
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
207 // 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
208 const bottlenecks = response.data.features;
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
209 let btnIds = [],
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
210 filteredBottlenceks = [];
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
211 bottlenecks.forEach(btn => {
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
212 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
213 if (btnIds.indexOf(btnName) === -1) {
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
214 btnIds.push(btnName);
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
215 filteredBottlenceks.push(btn);
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
216 } else {
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
217 let btnToCompare = filteredBottlenceks.find(
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
218 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
219 );
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
220 if (
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
221 compareAsc(
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
222 btn.properties.date_info,
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
223 btnToCompare.properties.date_info
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
224 ) === 1
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
225 ) {
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
226 const index = filteredBottlenceks.findIndex(
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
227 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
228 );
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
229 filteredBottlenceks[index] = btn;
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 });
d62587503a39 Client: add bottlenecks filter for the soundingresults import
Fadi Abbud <fadi.abbud@intevation.de>
parents: 5289
diff changeset
233 commit("setBottlenecks", filteredBottlenceks);
2438
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
234 resolve(response);
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
235 })
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
236 .catch(error => {
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
237 reject(error);
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
238 });
bbc31150248c client: import soundingresults: depthreferences from selected bottleneck
Markus Kottlaender <markus@intevation.de>
parents: 2436
diff changeset
239 });
1096
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 }
aa1f5daf6fc9 refac: centralized stores
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
242 };