Mercurial > gemma
annotate client/src/components/gauge/Gauges.vue @ 2713:b79f5c5404c2
client: made zoom optional in moveMap/moveToExtent
When selecting a gauge panning to the location is enough. Zoom shall remain the same.
So now, in these functions, you can specify zoom: null and no zooming will happen.
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Mon, 18 Mar 2019 17:47:16 +0100 |
parents | 0ac077897ce5 |
children | 85de42146bdb |
rev | line source |
---|---|
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
1 <template> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
2 <div |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
3 :class="[ |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
4 'box ui-element rounded bg-white text-nowrap', |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
5 { expanded: showGauges } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
6 ]" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
7 > |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
8 <div style="width: 18rem"> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
9 <UIBoxHeader |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
10 icon="ruler-vertical" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
11 title="Gauges" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
12 :closeCallback="close" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
13 /> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
14 <div class="box-body"> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
15 <div |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
16 class="loading d-flex justify-content-center align-items-center" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
17 v-if="loading" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
18 > |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
19 <font-awesome-icon icon="spinner" spin /> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
20 </div> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
21 <select |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
22 @change="moveToGauge" |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
23 v-model="selectedGaugeISRS" |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
24 class="form-control font-weight-bold" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
25 > |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
26 <option :value="null"> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
27 <translate>Select Gauge</translate> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
28 </option> |
2712
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
29 <optgroup |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
30 v-for="(gaugesForCountry, cc) in orderedGauges" |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
31 :key="cc" |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
32 :label="cc" |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
33 > |
2712
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
34 <option |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
35 v-for="g in gaugesForCountry" |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
36 :key="g.properties.isrs_code" |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
37 :value="g.properties.isrs_code" |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
38 > |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
39 {{ gaugeLabel(g) }} |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
40 </option> |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
41 </optgroup> |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
42 </select> |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
43 <div v-if="selectedGaugeISRS" class="mt-2"> |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
44 <hr class="mb-1" /> |
2701
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
45 <div class="row no-gutters mb-2"> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
46 <div class="col-6 pr-1"> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
47 <small class="text-muted"><translate>From</translate>:</small> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
48 <input |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
49 type="date" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
50 class="form-control form-control-sm small" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
51 :value="dateFrom && dateFrom.toISOString().split('T')[0]" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
52 @input="dateFrom = $event.target.valueAsDate" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
53 /> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
54 </div> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
55 <div class="col-6 pl-1"> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
56 <small class="text-muted"><translate>To</translate>:</small> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
57 <input |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
58 type="date" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
59 class="form-control form-control-sm small" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
60 :value="dateTo && dateTo.toISOString().split('T')[0]" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
61 @input="dateTo = $event.target.valueAsDate" |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
62 /> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
63 </div> |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
64 </div> |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
65 <button |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
66 @click="showWaterlevelDiagram()" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
67 class="btn btn-sm btn-info d-block w-100" |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
68 > |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
69 <translate>Show Waterlevels</translate> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
70 </button> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
71 <hr /> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
72 <button class="btn btn-sm btn-info d-block w-100 mt-2" disabled> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
73 <translate>Show Hydrological Conditions</translate> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
74 </button> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
75 </div> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
76 </div> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
77 </div> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
78 </div> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
79 </template> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
80 |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
81 <style lang="scss" scoped> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
82 .loading { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
83 background: rgba(255, 255, 255, 0.9); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
84 position: absolute; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
85 z-index: 99; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
86 top: 0; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
87 right: 0; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
88 bottom: 0; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
89 left: 0; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
90 } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
91 </style> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
92 |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
93 <script> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
94 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
95 * without warranty, see README.md and license for details. |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
96 * |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
97 * SPDX-License-Identifier: AGPL-3.0-or-later |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
98 * License-Filename: LICENSES/AGPL-3.0.txt |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
99 * |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
100 * Copyright (C) 2018 by via donau |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
101 * – Österreichische Wasserstraßen-Gesellschaft mbH |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
102 * Software engineering by Intevation GmbH |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
103 * |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
104 * Author(s): |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
105 * Markus Kottländer <markus.kottlaender@intevation.de> |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
106 */ |
2604
85f9bf4a6eba
client: gauge waterlevel diagram: draw reference waterlevels
Markus Kottlaender <markus@intevation.de>
parents:
2598
diff
changeset
|
107 import { mapState, mapGetters } from "vuex"; |
2701
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
108 import { displayError } from "@/lib/errors.js"; |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
109 |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
110 export default { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
111 data() { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
112 return { |
2710
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
113 loading: false |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
114 }; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
115 }, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
116 computed: { |
2696
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
117 ...mapState("application", ["showGauges", "activeSplitscreenId"]), |
2604
85f9bf4a6eba
client: gauge waterlevel diagram: draw reference waterlevels
Markus Kottlaender <markus@intevation.de>
parents:
2598
diff
changeset
|
118 ...mapState("gauges", ["gauges"]), |
85f9bf4a6eba
client: gauge waterlevel diagram: draw reference waterlevels
Markus Kottlaender <markus@intevation.de>
parents:
2598
diff
changeset
|
119 ...mapGetters("gauges", ["selectedGauge"]), |
2712
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
120 orderedGauges() { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
121 let orderedGauges = {}; |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
122 this.gauges.forEach(g => { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
123 let isrsInfo = this.isrsInfo(g); |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
124 if (orderedGauges.hasOwnProperty(isrsInfo.countryCode)) { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
125 orderedGauges[isrsInfo.countryCode].push(g); |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
126 } else { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
127 orderedGauges[isrsInfo.countryCode] = [g]; |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
128 } |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
129 }); |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
130 return orderedGauges; |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
131 }, |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
132 selectedGaugeISRS: { |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
133 get() { |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
134 return this.$store.state.gauges.selectedGaugeISRS; |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
135 }, |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
136 set(isrs) { |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
137 this.$store.dispatch("gauges/selectedGaugeISRS", isrs); |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
138 } |
2710
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
139 }, |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
140 dateFrom: { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
141 get() { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
142 return this.$store.state.gauges.dateFrom; |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
143 }, |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
144 set(date) { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
145 this.$store.commit("gauges/dateFrom", date); |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
146 } |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
147 }, |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
148 dateTo: { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
149 get() { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
150 return this.$store.state.gauges.dateTo; |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
151 }, |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
152 set(date) { |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
153 this.$store.commit("gauges/dateTo", date); |
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
154 } |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
155 } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
156 }, |
2696
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
157 watch: { |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
158 selectedGaugeISRS() { |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
159 if (this.activeSplitscreenId === "gauge-waterlevel") { |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
160 this.showWaterlevelDiagram(); |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
161 } |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
162 } |
cc3eee8b5d71
client: waterlevel diagram: update diagram immediately when selectedGauge changes
Markus Kottlaender <markus@intevation.de>
parents:
2644
diff
changeset
|
163 }, |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
164 methods: { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
165 close() { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
166 this.$store.commit("application/showGauges", false); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
167 }, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
168 moveToGauge() { |
2604
85f9bf4a6eba
client: gauge waterlevel diagram: draw reference waterlevels
Markus Kottlaender <markus@intevation.de>
parents:
2598
diff
changeset
|
169 if (!this.selectedGauge) return; |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
170 this.$store.commit("map/moveToExtent", { |
2604
85f9bf4a6eba
client: gauge waterlevel diagram: draw reference waterlevels
Markus Kottlaender <markus@intevation.de>
parents:
2598
diff
changeset
|
171 feature: this.selectedGauge, |
2713
b79f5c5404c2
client: made zoom optional in moveMap/moveToExtent
Markus Kottlaender <markus@intevation.de>
parents:
2712
diff
changeset
|
172 zoom: null, |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
173 preventZoomOut: true |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
174 }); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
175 }, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
176 showWaterlevelDiagram() { |
2644
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
177 // for panning the map to the gauge on opening the diagram: needs to be |
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
178 // set outside of the expandCallback to not always refer to the currently |
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
179 // selectedGauge |
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
180 let coordinates = this.selectedGauge.geometry.coordinates; |
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
181 |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
182 // configure splitscreen |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
183 let splitscreenConf = { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
184 id: "gauge-waterlevel", |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
185 component: "waterlevel", |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
186 title: |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
187 this.$gettext("Waterlevel") + |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
188 ": " + |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
189 this.gaugeLabel(this.selectedGauge), |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
190 icon: "ruler-vertical", |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
191 closeCallback: () => { |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
192 this.$store.commit("gauges/selectedGaugeISRS", null); |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
193 this.$store.commit("gauges/waterlevels", []); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
194 }, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
195 expandCallback: () => { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
196 this.$store.commit("map/moveMap", { |
2644
50cfb12a54a4
client: gauges: fixed bug with panning to gauge...
Markus Kottlaender <markus@intevation.de>
parents:
2643
diff
changeset
|
197 coordinates, |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
198 zoom: 17, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
199 preventZoomOut: true |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
200 }); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
201 } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
202 }; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
203 this.$store.commit("application/addSplitscreen", splitscreenConf); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
204 this.$store.commit("application/activeSplitscreenId", splitscreenConf.id); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
205 this.$store.commit("application/splitscreenLoading", true); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
206 this.loading = true; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
207 this.$store.commit("application/showSplitscreen", true); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
208 this.$store |
2710
f393fabfdd35
client: waterlevel diagram: chart extent based on selected dates instead of data
Markus Kottlaender <markus@intevation.de>
parents:
2701
diff
changeset
|
209 .dispatch("gauges/loadWaterlevels") |
2701
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
210 .catch(error => { |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
211 const { status, data } = error.response; |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
212 displayError({ |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
213 title: "Backend Error", |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
214 message: `${status}: ${data.message || data}` |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
215 }); |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
216 }) |
e622689d73bd
client: waterlevel diagram: use endpoint
Markus Kottlaender <markus@intevation.de>
parents:
2696
diff
changeset
|
217 .finally(() => { |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
218 this.$store.commit("application/splitscreenLoading", false); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
219 this.loading = false; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
220 }); |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
221 }, |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
222 gaugeLabel(gauge) { |
2712
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
223 return `${gauge.properties.objname} (${this.isrsInfo(gauge).orc})`; |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
224 }, |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
225 isrsInfo(gauge) { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
226 let isrsInfo = gauge.id |
2643
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
227 .split(".")[1] |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
228 .replace(/[()]/g, "") |
27933e66e848
client: gauges: use isrs_code as unique id for gauges
Markus Kottlaender <markus@intevation.de>
parents:
2642
diff
changeset
|
229 .split(","); |
2712
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
230 |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
231 return { |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
232 countryCode: isrsInfo[0], |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
233 loCode: isrsInfo[1], |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
234 fairwaySection: isrsInfo[2], |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
235 orc: isrsInfo[3], |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
236 hectometre: isrsInfo[4] |
0ac077897ce5
client: Gauges dialog: ordered gauge list by country code
Markus Kottlaender <markus@intevation.de>
parents:
2710
diff
changeset
|
237 }; |
2598
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
238 } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
239 }, |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
240 mounted() { |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
241 this.$store.dispatch("gauges/loadGauges"); |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
242 } |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
243 }; |
5fa1ad39e1bc
client: added missing files for Gauges dialog
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
244 </script> |