annotate client/src/store/fairwayavailability.js @ 3381:540ef09bd6bc

fix linting
author Thomas Junk <thomas.junk@intevation.de>
date Wed, 22 May 2019 15:53:05 +0200
parents ccb5455f0713
children 1876b204b004
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 /* This is Free Software under GNU Affero General Public License v >= 3.0
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
2 * without warranty, see README.md and license for details.
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
3 *
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
4 * SPDX-License-Identifier: AGPL-3.0-or-later
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
5 * License-Filename: LICENSES/AGPL-3.0.txt
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
6 *
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
7 * Copyright (C) 2018 by via donau
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
8 * – Österreichische Wasserstraßen-Gesellschaft mbH
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
9 * Software engineering by Intevation GmbH
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
10 *
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
11 * Author(s):
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
12 * Thomas Junk <thomas.junk@intevation.de>
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
13 */
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
14
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
15 import { HTTP } from "@/lib/http";
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
16 import {
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
17 format,
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
18 subYears,
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
19 startOfMonth,
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
20 endOfMonth,
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
21 startOfYear,
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
22 endOfYear,
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
23 startOfQuarter,
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
24 endOfQuarter
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
25 } from "date-fns";
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
26
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
27 const LNWLDIAGRAMMOCKDATA = {
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
28 lnwl: [
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
29 { level: "LDC", value: 162, percent: 40 },
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
30 { level: "HDC", value: 564, percent: 60 }
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
31 ],
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
32 afd: [
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
33 { value: 200, percent: 30 },
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
34 { value: 230, percent: 50 },
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
35 { value: 250, percent: 20 }
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
36 ]
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
37 };
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
38
3325
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
39 const FREQUENCIES = {
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
40 MONTHLY: "monthly",
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
41 QUARTERLY: "quarterly",
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
42 YEARLY: "yearly"
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
43 };
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
44
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
45 const getIntervallBorders = (start, end, frequency) => {
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
46 switch (frequency) {
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
47 case FREQUENCIES.MONTHLY:
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
48 return [
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
49 format(startOfMonth(start), "YYYY-MM-DD"),
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
50 format(endOfMonth(end), "YYYY-MM-DD")
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3376
diff changeset
51 ];
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
52 case FREQUENCIES.YEARLY:
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
53 return [
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
54 format(startOfYear(start), "YYYY-MM-DD"),
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
55 format(endOfYear(end), "YYYY-MM-DD")
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
56 ];
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
57 case FREQUENCIES.QUARTERLY:
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
58 return [
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
59 format(startOfQuarter(start), "YYYY-MM-DD"),
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
60 format(endOfQuarter(end), "YYYY-MM-DD")
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
61 ];
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
62 default:
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
63 throw new Error("Boom!");
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
64 }
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
65 };
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
66
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
67 const init = () => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
68 return {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
69 type: "bottlenecks",
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
70 selectedFairwayAvailabilityFeature: null,
3288
c2d753ef5aa1 fairway_availability: sane defaults and ISC colors for diagram
Thomas Junk <thomas.junk@intevation.de>
parents: 3215
diff changeset
71 to: format(new Date(), "YYYY-MM-DD"),
c2d753ef5aa1 fairway_availability: sane defaults and ISC colors for diagram
Thomas Junk <thomas.junk@intevation.de>
parents: 3215
diff changeset
72 from: format(subYears(new Date(), 1), "YYYY-MM-DD"),
3325
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
73 frequency: FREQUENCIES.MONTHLY,
3352
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
74 depthlimit1: 250,
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
75 depthlimit2: 230,
3354
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
76 breadthlimit1: null,
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
77 breadthlimit2: null,
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
78 fwData: null,
3299
ef52926ce2fc available_fairwaydepth_vs_lnwl: Scales adjusted
Thomas Junk <thomas.junk@intevation.de>
parents: 3288
diff changeset
79 fwLNWLData: null,
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
80 fwLNWLOverviewData: [],
3366
8974efd71917 fa_LNWL: cleanup
Thomas Junk <thomas.junk@intevation.de>
parents: 3355
diff changeset
81 legendLNWL: null,
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
82 legend: null,
3288
c2d753ef5aa1 fairway_availability: sane defaults and ISC colors for diagram
Thomas Junk <thomas.junk@intevation.de>
parents: 3215
diff changeset
83 LOS: 3
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
84 };
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
85 };
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
86
3325
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
87 const fairwayavailability = {
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
88 init,
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
89 namespaced: true,
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
90 state: init(),
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
91 getters: {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
92 fwLNWLOverviewData: state => feature => {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
93 return state.fwLNWLOverviewData.find(
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
94 d => d.feature.get("id") === feature.get("id")
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
95 );
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
96 }
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
97 },
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
98 mutations: {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
99 type: (state, type) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
100 state.type = type;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
101 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
102 setLOS: (state, LOS) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
103 state.LOS = LOS;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
104 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
105 setFrequency: (state, frequency) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
106 state.frequency = frequency;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
107 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
108 setFrom: (state, from) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
109 state.from = from;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
110 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
111 setTo: (state, to) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
112 state.to = to;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
113 },
3352
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
114 setDepthlimit1: (state, depthlimit1) => {
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
115 state.depthlimit1 = depthlimit1;
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
116 },
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
117 setDepthlimit2: (state, depthlimit2) => {
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
118 state.depthlimit2 = depthlimit2;
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
119 },
3354
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
120 setBreadthlimit1: (state, breadthlimit1) => {
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
121 state.breadthlimit1 = breadthlimit1;
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
122 },
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
123 setBreadthlimit2: (state, breadthlimit2) => {
e12e8bf044a6 available_fairway_dialogue: added 2nd breadthelement
Thomas Junk <thomas.junk@intevation.de>
parents: 3352
diff changeset
124 state.breadthlimit2 = breadthlimit2;
3352
399a2eb496ee available_fairway_depth_dialogue: adding limit fields. without transmission
Thomas Junk <thomas.junk@intevation.de>
parents: 3351
diff changeset
125 },
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
126 setSelectedFairwayAvailability: (state, feature) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
127 state.selectedFairwayAvailabilityFeature = feature;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
128 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
129 setFwData: (state, fwData) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
130 state.fwData = fwData;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
131 },
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
132 setFwLNWLData: (state, fwLNWLData) => {
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
133 state.fwLNWLData = fwLNWLData;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
134 },
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
135 addFwLNWLOverviewData: (state, data) => {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
136 let existingIndex = state.fwLNWLOverviewData.findIndex(
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
137 d => d.feature.get("id") === data.feature.get("id")
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
138 );
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
139 if (existingIndex !== -1)
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
140 state.fwLNWLOverviewData.splice(existingIndex, 1);
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
141 state.fwLNWLOverviewData.push(data);
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
142 },
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
143 setLegend: (state, header) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
144 const headerEntries = header.split(",");
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
145 headerEntries.shift();
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
146 state.legend = headerEntries.map(x => {
3326
98ce6d101e01 available_fairway_depth: omit unit
Thomas Junk <thomas.junk@intevation.de>
parents: 3325
diff changeset
147 let entry = x.split("#")[1]; // split leading #
98ce6d101e01 available_fairway_depth: omit unit
Thomas Junk <thomas.junk@intevation.de>
parents: 3325
diff changeset
148 entry = entry.replace("[h]", "").trim(); // omit unit
98ce6d101e01 available_fairway_depth: omit unit
Thomas Junk <thomas.junk@intevation.de>
parents: 3325
diff changeset
149 return entry;
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
150 });
3366
8974efd71917 fa_LNWL: cleanup
Thomas Junk <thomas.junk@intevation.de>
parents: 3355
diff changeset
151 },
8974efd71917 fa_LNWL: cleanup
Thomas Junk <thomas.junk@intevation.de>
parents: 3355
diff changeset
152 setLegendLNWL: (state, headerLNWL) => {
8974efd71917 fa_LNWL: cleanup
Thomas Junk <thomas.junk@intevation.de>
parents: 3355
diff changeset
153 this.headerLNWL = headerLNWL;
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
154 }
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
155 },
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
156 actions: {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
157 loadAvailableFairwayDepth: ({ commit }, options) => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
158 return new Promise((resolve, reject) => {
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
159 const { feature, frequency, LOS } = options;
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
160 let { from, to } = options;
3334
8c96b7379aea client: fairway availability: made store action work with both types of feature objects
Markus Kottlaender <markus@intevation.de>
parents: 3331
diff changeset
161 let name =
8c96b7379aea client: fairway availability: made store action work with both types of feature objects
Markus Kottlaender <markus@intevation.de>
parents: 3331
diff changeset
162 feature.constructor.name === "Feature"
8c96b7379aea client: fairway availability: made store action work with both types of feature objects
Markus Kottlaender <markus@intevation.de>
parents: 3331
diff changeset
163 ? feature.get("objnam")
8c96b7379aea client: fairway availability: made store action work with both types of feature objects
Markus Kottlaender <markus@intevation.de>
parents: 3331
diff changeset
164 : feature.properties.name;
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
165 [from, to] = getIntervallBorders(from, to, frequency);
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
166 const start = encodeURIComponent("00:00:00+00:00");
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
167 const end = encodeURIComponent("23:59:59+00:00");
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
168 const URL = `/data/bottleneck/fairway-depth/${encodeURIComponent(
3334
8c96b7379aea client: fairway availability: made store action work with both types of feature objects
Markus Kottlaender <markus@intevation.de>
parents: 3331
diff changeset
169 name
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
170 )}?from=${from}T${start}&to=${to}T${end}&mode=${frequency}&los=${LOS}`;
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
171 HTTP.get(URL, {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
172 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
173 })
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
174 .then(response => {
3351
dcae9b3e864b available_fairway_depths: remove mocks
Thomas Junk <thomas.junk@intevation.de>
parents: 3347
diff changeset
175 const { data } = response;
3215
3b36bb33f5b0 available_fairway_depth: omit empty lines after split by newline
Thomas Junk <thomas.junk@intevation.de>
parents: 3207
diff changeset
176 const csv = data.split("\n").filter(x => x !== ""); //omit empty lines
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
177 commit("setLegend", csv.shift());
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
178 let transformed = csv.map(e => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
179 const result = e.split(",");
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
180 const label = result.shift();
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
181 const ldc = result.shift();
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
182 const highestLevel = result.pop();
3347
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
183 const sum = result.reduce((x, y) => Number(x) + Number(y));
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
184 let last = 0;
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
185 const levelsWithSum = result.map(x => {
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
186 let result = {
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
187 height: Number(x),
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
188 translateY: sum - (last + Number(x))
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
189 };
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
190 last = last + Number(x);
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
191 return result;
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
192 });
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
193 return {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
194 label: label,
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
195 ldc: ldc,
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
196 highestLevel: highestLevel,
3347
cd745be63f71 available_fairway_depth: draw lower levels refactored
Thomas Junk <thomas.junk@intevation.de>
parents: 3334
diff changeset
197 lowerLevels: levelsWithSum
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
198 };
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
199 });
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
200 commit("setFwData", transformed);
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
201 resolve(response);
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
202 })
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
203 .catch(error => {
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
204 reject(error);
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
205 });
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
206 });
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
207 },
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
208 loadAvailableFairwayDepthLNWL: (context, options) => {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
209 return new Promise((resolve, reject) => {
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
210 const { feature, frequency, LOS } = options;
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
211 let { from, to } = options;
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
212 let name =
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
213 feature.constructor.name === "Feature"
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
214 ? feature.get("objnam")
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
215 : feature.properties.name;
3376
70b7078b4516 available_fairway_depth: determine intervall borders for dates
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
216 [from, to] = getIntervallBorders(from, to, frequency);
3353
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
217 const start = encodeURIComponent("00:00:00+00:00");
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
218 const end = encodeURIComponent("23:59:59+00:00");
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
219 const URL = `/data/bottleneck/availability/${encodeURIComponent(
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
220 name
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
221 )}?from=${from}T${start}&to=${to}T${end}&mode=${frequency}&los=${LOS}`;
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
222 HTTP.get(URL, {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
223 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
224 })
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
225 .then(response => {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
226 resolve(response.data);
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
227 })
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
228 .catch(error => {
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
229 reject(error);
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
230 });
b01bf2399c20 client: available fairway depth vs lnwl: fetching data for diagrams on map
Markus Kottlaender <markus@intevation.de>
parents: 3352
diff changeset
231 });
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
232 },
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
233 loadAvailableFairwayDepthLNWLDiagram: ({ commit, dispatch }, options) => {
3381
540ef09bd6bc fix linting
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
234 dispatch("loadAvailableFairwayDepthLNWL", options).then(() => {
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
235 //const data = response;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
236 let data = LNWLDIAGRAMMOCKDATA;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
237 Object.keys(data).forEach(diagramComponent => {
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
238 let sum = 0;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
239 data[diagramComponent].map(elem => {
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
240 elem["translateY"] = Number(elem["percent"]) + sum;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
241 sum += Number(elem["percent"]);
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
242 return elem;
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
243 });
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
244 });
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
245 commit("setFwLNWLData", data);
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
246 });
3207
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
247 }
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
248 }
ba7bc3740fb3 client: renamed store modules to better reflect their context
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
249 };
3325
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
250
496cf0474e29 fairway_availability_dialogue: extracted frequencies
Thomas Junk <thomas.junk@intevation.de>
parents: 3299
diff changeset
251 export { FREQUENCIES, fairwayavailability };