Mercurial > gemma
view client/src/store/bottlenecks.js @ 1344:eda98694e678
staging: retrieve real data instead of displaying demodata
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Mon, 26 Nov 2018 11:30:02 +0100 |
parents | 99c039e86624 |
children | ca33ad696594 |
line wrap: on
line source
/* * This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Markus Kottländer <markuks.kottlaender@intevation.de> */ import { HTTP } from "../lib/http"; import { WFS } from "ol/format.js"; import { displayError } from "../lib/errors.js"; // initial state const init = () => { return { bottlenecks: [], selectedBottleneck: null, surveys: [], selectedSurvey: null }; }; export default { init, namespaced: true, state: init(), mutations: { setBottlenecks: (state, bottlenecks) => { state.bottlenecks = bottlenecks; }, setSelectedBottleneck: (state, name) => { state.selectedBottleneck = name; }, setSurveys(state, surveys) { state.surveys = surveys; }, setSelectedSurvey(state, survey) { state.selectedSurvey = survey; } }, actions: { setSelectedBottleneck({ state, commit, dispatch }, name) { if (name !== state.selectedBottleneck) { commit("setSelectedSurvey", null); commit("fairwayprofile/clearCurrentProfile", null, { root: true }); } commit("setSelectedBottleneck", name); dispatch("querySurveys", name); }, loadBottlenecks({ commit }) { var bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({ srsName: "EPSG:4326", featureNS: "gemma", featurePrefix: "gemma", featureTypes: ["bottleneck_overview"], outputFormat: "application/json" }); HTTP.post( "/internal/wfs", new XMLSerializer().serializeToString( bottleneckFeatureCollectionRequest ), { headers: { "X-Gemma-Auth": localStorage.getItem("token"), "Content-type": "text/xml; charset=UTF-8" } } ).then(response => { commit("setBottlenecks", response.data.features); }); }, querySurveys({ commit }, name) { if (name) { HTTP.get("/surveys/" + name, { headers: { "X-Gemma-Auth": localStorage.getItem("token"), "Content-type": "text/xml; charset=UTF-8" } }) .then(response => { commit("setSurveys", response.data.surveys); }) .catch(error => { commit("setSurveys", []); const { status, data } = error.response; displayError({ title: "Backend Error", message: `${status}: ${data.message || data}` }); }); } else { commit("setSurveys", []); } } } };