annotate client/src/components/importoverview/staging/StagingDetail.vue @ 2647:c52bf6f994c0

overview2: bottleneckview added
author Thomas Junk <thomas.junk@intevation.de>
date Thu, 14 Mar 2019 14:07:25 +0100
parents 468c8dc796cf
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 <template>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
2 <div :class="detail">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 <div class="d-flex flex-row">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
4 <div class="mt-auto d-flex flex-row mb-auto small name text-left">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
5 <a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
6 v-if="isSoundingResult(data.kind.toUpperCase())"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
7 class="text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
8 @click="zoomTo()"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
9 href="#"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
10 >{{ data.summary.bottleneck }}</a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
11 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
12 <span v-if="isBottleneck(data.kind.toUpperCase())" class="text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
13 ><translate>Bottlenecks</translate> ({{
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14 data.summary.bottlenecks.length
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 }})</span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17 <a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 v-if="isApprovedGaugeMeasurement(data.kind.toUpperCase())"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 class="text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
20 ><translate>Approved Gauge Measurements</translate> ({{
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
21 data.summary.length
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
22 }})</a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 <span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 class="text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 v-if="isFairwayDimension(data.kind.toUpperCase())"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
27 >{{ data.summary["source-organization"] }} (LOS:
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
28 {{ data.summary.los }})</span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
29 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
30 <a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
31 href="#"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 class="text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 @click="zoomToStretch(data.summary.stretch)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34 v-if="isStretch(data.kind.toUpperCase())"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
35 >{{ data.summary.stretch }}</a
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
38 <div class="mt-auto mb-auto small text-left type">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
39 {{ data.kind.toUpperCase() }}
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
40 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
41 <div v-if="data.summary" class="mt-auto mb-auto small text-left date">
2541
468c8dc796cf client: convert lib helper functions to Vue filters
Markus Kottlaender <markus@intevation.de>
parents: 2528
diff changeset
42 {{ data.summary.date | surveyDate }}
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
43 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
44 <div v-else class="mt-auto mb-auto small text-left date">-</div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
45 <div class="mt-auto mb-auto small text-left imported">
2541
468c8dc796cf client: convert lib helper functions to Vue filters
Markus Kottlaender <markus@intevation.de>
parents: 2528
diff changeset
46 {{ data.enqueued.split("T")[0] | surveyDate }}
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
47 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
48 <div class="mt-auto mb-auto small text-left username">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
49 {{ data.user }}
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
50 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
51 <div class="controls d-flex flex-row justify-content-end">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
52 <div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
53 <button
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
54 :class="{
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
55 'ml-3': true,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
56 'mr-3': true,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
57 btn: true,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
58 'btn-outline-success': needsApproval(data) || isRejected(data),
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
59 'btn-success': isApproved(data),
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
60 actions: true
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
61 }"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
62 @click="toggleApproval(data.id, $options.STATES.APPROVED)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
63 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
64 <font-awesome-icon
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
65 class="small pointer mb-2"
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
66 icon="check"
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
67 ></font-awesome-icon>
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
68 </button>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
69 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
70 <div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
71 <button
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
72 :class="{
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
73 'mr-3': true,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
74 btn: true,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
75 'btn-outline-danger': needsApproval(data) || isApproved(data),
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
76 'btn-danger': isRejected(data),
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
77 actions: true
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
78 }"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
79 @click="toggleApproval(data.id, $options.STATES.REJECTED)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
80 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
81 <font-awesome-icon
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
82 icon="times"
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
83 class="small pointer mb-2"
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
84 ></font-awesome-icon>
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
85 </button>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
86 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
87 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
88 v-if="
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
89 !isBottleneck(data.kind.toUpperCase()) ||
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
90 isApprovedGaugeMeasurement(data.kind.toUpperCase())
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
91 "
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
92 class="expander"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
93 ></div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
94 <div v-if="isBottleneck(data.kind.toUpperCase())">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
95 <div class="mt-auto mb-auto text-info text-left">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
96 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
97 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
98 @click="showDetails()"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
99 v-if="show"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
100 icon="angle-up"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
101 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
102 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
103 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
104 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
105 @click="showDetails()"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
106 v-if="loading"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
107 icon="spinner"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
108 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
109 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
110 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
111 @click="showDetails()"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
112 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
113 v-if="!show && !loading"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
114 icon="angle-down"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
115 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
116 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
117 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
118 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
119 <div v-if="isApprovedGaugeMeasurement(data.kind.toUpperCase())">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
120 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
121 @click="showAGMDetails = !showAGMDetails"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
122 class="mt-auto mb-auto text-info text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
123 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
124 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
125 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
126 v-if="showAGMDetails"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
127 icon="angle-up"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
128 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
129 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
130 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
131 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
132 v-if="!showAGMDetails"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
133 icon="angle-down"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
134 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
135 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
136 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
137 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
138 <div v-else class="empty"></div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
139 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
140 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
141 <div v-if="show && bottlenecks.length > 0" class="bottlenecksdetails">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
142 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
143 v-for="(bottleneck, index) in bottlenecks"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
144 :key="index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
145 class="d-flex flex-row"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
146 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
147 <div class="d-flex flex-column">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
148 <div class="d-flex flex-row">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
149 <a @click="moveToBottleneck(index)" class="small" href="#">{{
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
150 bottleneck.properties.objnam
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
151 }}</a>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
152 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
153 @click="showBottleneckDetails(index)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
154 class="small mt-auto mb-auto text-info text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
155 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
156 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
157 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
158 v-if="showBottleneckDetail === index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
159 icon="angle-up"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
160 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
161 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
162 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
163 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
164 v-if="!(showBottleneckDetail === index)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
165 icon="angle-down"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
166 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
167 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
168 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
169 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
170
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
171 <div class="d-flex flex-row" v-if="showBottleneckDetail === index">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
172 <table>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
173 <tr
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
174 v-for="(info, index) in Object.keys(bottleneck.properties)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
175 :key="index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
176 class="mr-1 small text-muted"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
177 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
178 <td class="text-left">{{ info }}</td>
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
179 <td class="pl-3 text-left">
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
180 {{ bottleneck.properties[info] }}
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
181 </td>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
182 </tr>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
183 </table>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
184 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
185 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
186 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
187 </div>
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
188 <div class="agmdetails" v-if="showAGMDetails">
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
189 <div class="pl-3 d-flex flex-row">
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
190 <span class="agmcode text-left"
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
191 ><small><translate>ISRS Code</translate></small></span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
192 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
193 <span class="agmdetail text-left"
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
194 ><small><translate>Date of measurement</translate></small></span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
195 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
196 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
197 <div class="diffs">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
198 <div v-for="(result, index) in data.summary" :key="index">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
199 <div class="pl-3 d-flex flex-row">
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
200 <span v-if="result.versions.length == 1" class="agmcode text-left"
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
201 ><small
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
202 >{{ result["fk-gauge-id"] }}
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
203 <translate>( New )</translate></small
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
204 ></span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
205 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
206 <span v-if="result.versions.length == 2" class="agmcode text-left"
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
207 ><small>{{ result["fk-gauge-id"] }}</small></span
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
208 >
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
209 <span class="agmdetail text-left"
2541
468c8dc796cf client: convert lib helper functions to Vue filters
Markus Kottlaender <markus@intevation.de>
parents: 2528
diff changeset
210 ><small>{{ result["measure-date"] | dateTime }}</small></span
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
211 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
212 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
213 @click="toggleDiff(index)"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
214 class="small ml-auto mt-auto mb-auto text-info text-left"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
215 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
216 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
217 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
218 v-if="showDiff == index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
219 icon="angle-up"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
220 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
221 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
222 <font-awesome-icon
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
223 class="pointer"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
224 v-if="showDiff != index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
225 icon="angle-down"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
226 fixed-width
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
227 ></font-awesome-icon>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
228 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
229 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
230 <div v-if="showDiff == index" class="pl-3 d-flex flex-row">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
231 <div>
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
232 <div class="d-flex flex-row pl-3 text-left">
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
233 <div class="header border-bottom agmdetailskeys">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
234 <small><translate>Value</translate></small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
235 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
236 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
237 v-if="result.versions.length == 2"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
238 class="header border-bottom agmdetailsvalues"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
239 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
240 <small><translate>Old</translate></small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
241 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
242 <div class="header border-bottom agmdetailsvalues">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
243 <small><translate>New</translate></small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
244 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
245 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
246 <div
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
247 class="d-flex flex-row pl-3 text-left"
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
248 v-for="(entry, index) in Object.keys(result.versions[0])"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
249 :key="index"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
250 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
251 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
252 v-if="
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
253 result.versions.length == 1 ||
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
254 result.versions[0][entry] != result.versions[1][entry]
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
255 "
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
256 class="agmdetailskeys"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
257 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
258 <small>{{ entry }}</small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
259 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
260 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
261 v-if="
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
262 result.versions.length == 1 ||
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
263 result.versions[0][entry] != result.versions[1][entry]
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
264 "
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
265 class="agmdetailsvalues"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
266 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
267 <small>{{ result.versions[0][entry] }}</small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
268 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
269 <div
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
270 v-if="
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
271 result.versions.length == 2 &&
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
272 result.versions[0][entry] != result.versions[1][entry]
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
273 "
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
274 class="agmdetailsvalues"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
275 >
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
276 <small>{{ result.versions[1][entry] }}</small>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
277 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
278 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
279 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
280 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
281 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
282 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
283 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
284 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
285 </template>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
286
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
287 <script>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
288 /* This is Free Software under GNU Affero General Public License v >= 3.0
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
289 * without warranty, see README.md and license for details.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
290 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
291 * SPDX-License-Identifier: AGPL-3.0-or-later
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
292 * License-Filename: LICENSES/AGPL-3.0.txt
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
293 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
294 * Copyright (C) 2018 by via donau
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
295 * – Österreichische Wasserstraßen-Gesellschaft mbH
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
296 * Software engineering by Intevation GmbH
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
297 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
298 * Author(s):
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
299 * Thomas Junk <thomas.junk@intevation.de>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
300 */
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
301
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
302 import { STATES } from "@/store/imports.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
303 import { HTTP } from "@/lib/http";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
304 import { WFS } from "ol/format.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
305 import { or as orFilter, equalTo as equalToFilter } from "ol/format/filter.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
306 import { displayError } from "@/lib/errors.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
307 import { mapState } from "vuex";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
308 import { LAYERS } from "@/store/map.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
309
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
310 const NO_DIFF = -1;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
311 const NO_BOTTLENECK = -1;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
312
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
313 export default {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
314 name: "stagingdetail",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
315 props: ["data"],
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
316 data() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
317 return {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
318 showDiff: NO_DIFF,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
319 showAGMDetails: false,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
320 showBottleneckDetail: NO_BOTTLENECK,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
321 show: false,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
322 loading: false,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
323 bottlenecks: []
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
324 };
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
325 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
326 mounted() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
327 this.bottlenecks = [];
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
328 const { id } = this.$route.params;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
329 this.$store.commit("imports/setImportToReview", id);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
330 if (this.open) this.showDetails();
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
331 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
332 computed: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
333 ...mapState("imports", ["importToReview"]),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
334 open() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
335 return this.importToReview == this.data.id;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
336 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
337 detail() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
338 return [
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
339 "staging",
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
340 "d-flex",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
341 "flex-column",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
342 "w-100",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
343 {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
344 highlight: this.open && this.needsApproval(this.data)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
345 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
346 ];
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
347 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
348 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
349 watch: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
350 showAGMDetails() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
351 if (!this.showAGMDetails) this.showDiff = NO_DIFF;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
352 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
353 open() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
354 this.show = this.open;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
355 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
356 $route() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
357 const { id } = this.$route.params;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
358 this.$store.commit("imports/setImportToReview", id);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
359 if (this.open) this.showDetails();
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
360 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
361 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
362 methods: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
363 showBottleneckDetails(index) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
364 if (index == this.showBottleneckDetail) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
365 this.showBottleneckDetail = NO_BOTTLENECK;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
366 return;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
367 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
368 this.showBottleneckDetail = index;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
369 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
370 toggleDiff(number) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
371 if (this.showDiff !== number || this.showDiff == -1) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
372 this.showDiff = number;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
373 } else {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
374 this.showDiff = -1;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
375 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
376 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
377 zoomToStretch(name) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
378 this.$store.commit("map/setLayerVisible", LAYERS.STRETCHES);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
379 this.$store
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
380 .dispatch("imports/loadStretch", name)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
381 .then(response => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
382 if (response.data.features.length < 1)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
383 throw new Error("no feaures found for: " + name);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
384 this.moveToExtent(response.data.features[0]);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
385 })
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
386 .catch(error => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
387 console.log(error);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
388 const { status, data } = error.response;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
389 displayError({
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
390 title: this.$gettext("Backend Error"),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
391 message: `${status}: ${data.message || data}`
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
392 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
393 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
394 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
395 showDetails() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
396 if (!this.isBottleneck(this.data.kind.toUpperCase())) return;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
397 if (this.show) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
398 this.show = false;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
399 return;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
400 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
401 if (this.bottlenecks.length > 0) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
402 this.show = true;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
403 return;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
404 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
405 this.loading = true;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
406 const generateFilter = () => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
407 const { bottlenecks } = this.data.summary;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
408 if (bottlenecks.length === 1)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
409 return equalToFilter("bottleneck_id", bottlenecks[0]);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
410 const orExpressions = bottlenecks.map(x => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
411 return equalToFilter("bottleneck_id", x);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
412 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
413 return orFilter(...orExpressions);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
414 };
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
415 const filterExpression = generateFilter();
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
416 const bottleneckFeatureCollectionRequest = new WFS().writeGetFeature({
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
417 srsName: "EPSG:4326",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
418 featureNS: "gemma",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
419 featurePrefix: "gemma",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
420 featureTypes: ["bottlenecks_geoserver"],
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
421 outputFormat: "application/json",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
422 filter: filterExpression
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
423 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
424 HTTP.post(
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
425 "/internal/wfs",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
426 new XMLSerializer().serializeToString(
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
427 bottleneckFeatureCollectionRequest
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
428 ),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
429 {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
430 headers: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
431 "X-Gemma-Auth": localStorage.getItem("token"),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
432 "Content-type": "text/xml; charset=UTF-8"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
433 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
434 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
435 )
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
436 .then(response => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
437 this.bottlenecks = response.data.features;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
438 this.show = true;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
439 this.loading = false;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
440 })
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
441 .catch(error => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
442 const { status, data } = error.response;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
443 displayError({
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
444 title: this.$gettext("Backend Error"),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
445 message: `${status}: ${data.message || data}`
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
446 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
447 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
448 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
449 isFairwayDimension(kind) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
450 return kind === "FD";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
451 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
452 isApprovedGaugeMeasurement(kind) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
453 return kind === "AGM";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
454 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
455 isBottleneck(kind) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
456 return kind === "BN" || kind === "UBN";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
457 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
458 isStretch(kind) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
459 return kind === "ST";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
460 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
461 isSoundingResult(kind) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
462 return kind === "SR";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
463 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
464 needsApproval(item) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
465 return item.status === STATES.NEEDSAPPROVAL;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
466 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
467 isRejected(item) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
468 return item.status === STATES.REJECTED;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
469 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
470 isApproved(item) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
471 return item.status === STATES.APPROVED;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
472 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
473 moveToBottleneck(index) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
474 this.$store.commit("map/setLayerVisible", LAYERS.BOTTLENECKS);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
475 this.moveToExtent(this.bottlenecks[index]);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
476 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
477 moveToExtent(feature) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
478 this.$store.commit("map/moveToExtent", {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
479 feature: feature,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
480 zoom: 17,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
481 preventZoomOut: true
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
482 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
483 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
484 moveMap(coordinates) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
485 this.$store.commit("map/moveMap", {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
486 coordinates: coordinates,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
487 zoom: 17,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
488 preventZoomOut: true
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
489 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
490 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
491 zoomTo() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
492 const { lat, lon, bottleneck, date } = this.data.summary;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
493 const coordinates = [lat, lon];
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
494 this.moveMap(coordinates);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
495 this.$store
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
496 .dispatch("bottlenecks/setSelectedBottleneck", bottleneck)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
497 .then(() => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
498 this.$store.commit("bottlenecks/setSelectedSurveyByDate", date);
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
499 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
500 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
501 toggleApproval(id, newStatus) {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
502 this.$store.commit("imports/toggleApproval", {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
503 id: id,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
504 newStatus: newStatus
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
505 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
506 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
507 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
508 STATES: STATES
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
509 };
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
510 </script>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
511
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
512 <style lang="scss" scoped>
2524
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
513 .name {
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
514 width: 230px;
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
515 }
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
516
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
517 .type {
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
518 width: 40px;
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
519 }
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
520
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
521 .date {
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
522 width: 100px;
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
523 }
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
524
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
525 .imported {
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
526 width: 100px;
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
527 }
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
528
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
529 .username {
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
530 width: 50px;
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
531 }
f15ee4e84c0c staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2523
diff changeset
532
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
533 .actions {
2528
113912129481 staging: layout adjustment. Bigger buttons for review
Thomas Junk <thomas.junk@intevation.de>
parents: 2524
diff changeset
534 padding: 3px;
113912129481 staging: layout adjustment. Bigger buttons for review
Thomas Junk <thomas.junk@intevation.de>
parents: 2524
diff changeset
535 width: 21px;
113912129481 staging: layout adjustment. Bigger buttons for review
Thomas Junk <thomas.junk@intevation.de>
parents: 2524
diff changeset
536 height: 21px;
2523
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
537 }
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
538
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
539 .bottlenecksdetails {
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
540 max-height: 300px;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
541 overflow-y: auto;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
542 font-stretch: condensed;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
543 line-height: 0.9rem;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
544 }
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
545
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
546 .agmdetails {
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
547 max-height: 300px;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
548 overflow-y: auto;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
549 font-stretch: condensed;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
550 line-height: 0.9rem;
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
551 }
40bd6bb7886b staging: small UI improvements
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
552 </style>