Mercurial > gemma
comparison client/src/store/bottlenecks.js @ 1516:6b3756676bbe
refac: bottlenecks and surveydata are now retrieved via promises
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Thu, 06 Dec 2018 13:40:17 +0100 |
parents | 53fdbe1d9678 |
children | b4b3dfd24739 |
comparison
equal
deleted
inserted
replaced
1515:43a32358a016 | 1516:6b3756676bbe |
---|---|
39 state.selectedBottleneck = name; | 39 state.selectedBottleneck = name; |
40 }, | 40 }, |
41 setSurveys(state, surveys) { | 41 setSurveys(state, surveys) { |
42 state.surveys = surveys; | 42 state.surveys = surveys; |
43 }, | 43 }, |
44 setSelectedSurveyByDate(state, date) { | |
45 const survey = state.surveys.filter(x => x.date_info === date)[0]; | |
46 state.selectedSurvey = survey; | |
47 }, | |
48 setFirstSurveySelected(state) { | |
49 state.selectedSurvey = state.surveys[0]; | |
50 }, | |
44 selectedSurvey(state, survey) { | 51 selectedSurvey(state, survey) { |
45 state.selectedSurvey = survey; | 52 state.selectedSurvey = survey; |
46 }, | 53 }, |
47 surveysLoading: (state, loading) => { | 54 surveysLoading: (state, loading) => { |
48 state.surveysLoading = loading; | 55 state.surveysLoading = loading; |
49 } | 56 } |
50 }, | 57 }, |
51 actions: { | 58 actions: { |
52 setSelectedBottleneck( | 59 setSelectedBottleneck({ state, commit, rootState, rootGetters }, name) { |
53 { state, commit, dispatch, rootState, rootGetters }, | 60 return new Promise((resolve, reject) => { |
54 name, | 61 if (name !== state.selectedBottleneck) { |
55 date | 62 commit("selectedSurvey", null); |
56 ) { | 63 commit("fairwayprofile/clearCurrentProfile", null, { root: true }); |
57 if (name !== state.selectedBottleneck) { | 64 commit("application/showSplitscreen", false, { root: true }); |
58 commit("selectedSurvey", null); | 65 rootState.map.cutTool.setActive(false); |
59 commit("fairwayprofile/clearCurrentProfile", null, { root: true }); | 66 rootGetters["map/getVSourceByName"]("Cut Tool").clear(); |
60 commit("application/showSplitscreen", false, { root: true }); | 67 } |
61 rootState.map.cutTool.setActive(false); | 68 if (name) { |
62 rootGetters["map/getVSourceByName"]("Cut Tool").clear(); | 69 commit("application/showProfiles", true, { root: true }); |
63 } | 70 } |
64 if (name) { | 71 commit("setSelectedBottleneck", name); |
65 commit("application/showProfiles", true, { root: true }); | 72 if (name) { |
66 } | 73 commit("surveysLoading", true); |
67 commit("setSelectedBottleneck", name); | 74 HTTP.get("/surveys/" + name, { |
68 dispatch("querySurveys", name, date); | 75 headers: { |
76 "X-Gemma-Auth": localStorage.getItem("token"), | |
77 "Content-type": "text/xml; charset=UTF-8" | |
78 } | |
79 }) | |
80 .then(response => { | |
81 const surveys = response.data.surveys.sort((a, b) => | |
82 a.date_info < b.date_info ? 1 : -1 | |
83 ); | |
84 commit("setSurveys", surveys); | |
85 resolve(response); | |
86 }) | |
87 .catch(error => { | |
88 commit("setSurveys", []); | |
89 commit("selectedSurvey", null); | |
90 const { status, data } = error.response; | |
91 displayError({ | |
92 title: "Backend Error", | |
93 message: `${status}: ${data.message || data}` | |
94 }); | |
95 reject(error); | |
96 }) | |
97 .finally(() => commit("surveysLoading", false)); | |
98 } else { | |
99 commit("setSurveys", []); | |
100 resolve(); | |
101 } | |
102 }); | |
69 }, | 103 }, |
70 loadBottlenecks({ commit }) { | 104 loadBottlenecks({ commit }) { |
71 var bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({ | 105 return new Promise((resolve, reject) => { |
72 srsName: "EPSG:4326", | 106 var bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({ |
73 featureNS: "gemma", | 107 srsName: "EPSG:4326", |
74 featurePrefix: "gemma", | 108 featureNS: "gemma", |
75 featureTypes: ["bottleneck_overview"], | 109 featurePrefix: "gemma", |
76 outputFormat: "application/json" | 110 featureTypes: ["bottleneck_overview"], |
77 }); | 111 outputFormat: "application/json" |
78 | 112 }); |
79 HTTP.post( | 113 HTTP.post( |
80 "/internal/wfs", | 114 "/internal/wfs", |
81 new XMLSerializer().serializeToString( | 115 new XMLSerializer().serializeToString( |
82 bottleneckFeatureCollectionRequest | 116 bottleneckFeatureCollectionRequest |
83 ), | 117 ), |
84 { | 118 { |
85 headers: { | 119 headers: { |
86 "X-Gemma-Auth": localStorage.getItem("token"), | 120 "X-Gemma-Auth": localStorage.getItem("token"), |
87 "Content-type": "text/xml; charset=UTF-8" | 121 "Content-type": "text/xml; charset=UTF-8" |
122 } | |
88 } | 123 } |
89 } | 124 ) |
90 ).then(response => { | |
91 commit("setBottlenecks", response.data.features); | |
92 }); | |
93 }, | |
94 querySurveys({ commit }, name, date) { | |
95 if (name) { | |
96 commit("surveysLoading", true); | |
97 HTTP.get("/surveys/" + name, { | |
98 headers: { | |
99 "X-Gemma-Auth": localStorage.getItem("token"), | |
100 "Content-type": "text/xml; charset=UTF-8" | |
101 } | |
102 }) | |
103 .then(response => { | 125 .then(response => { |
104 const surveys = response.data.surveys.sort((a, b) => | 126 commit("setBottlenecks", response.data.features); |
105 a.date_info < b.date_info ? 1 : -1 | 127 resolve(response); |
106 ); | |
107 if (date) { | |
108 const survey = surveys.filter(x => x.date_info === date)[0]; | |
109 commit("selectedSurvey", survey); | |
110 } else { | |
111 commit("selectedSurvey", surveys[0]); | |
112 } | |
113 | |
114 commit("setSurveys", surveys); | |
115 }) | 128 }) |
116 .catch(error => { | 129 .catch(error => { |
117 commit("setSurveys", []); | 130 reject(error); |
118 commit("selectedSurvey", null); | 131 }); |
119 const { status, data } = error.response; | 132 }); |
120 displayError({ | |
121 title: "Backend Error", | |
122 message: `${status}: ${data.message || data}` | |
123 }); | |
124 }) | |
125 .finally(() => commit("surveysLoading", false)); | |
126 } else { | |
127 commit("setSurveys", []); | |
128 } | |
129 } | 133 } |
130 } | 134 } |
131 }; | 135 }; |