Mercurial > gemma
annotate client/src/components/staging/StagingDetail.vue @ 1615:95641748383f
refac: extracted staging details view
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 18 Dec 2018 12:56:05 +0100 |
parents | |
children | 2e4ec4251c57 |
rev | line source |
---|---|
1615
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
1 <template> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
2 <tr> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
3 <td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
4 <a @click="zoomTo(data.id)" href="#">{{ data.summary.bottleneck }}</a> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
5 </td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
6 <td>{{ data.kind.toUpperCase() }}</td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
7 <td>{{ formatSurveyDate(data.summary.date) }}</td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
8 <td>{{ formatSurveyDate(data.enqueued.split("T")[0]) }}</td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
9 <td>{{ data.user }}</td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
10 <td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
11 <button |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
12 :class="{ |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
13 btn: true, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
14 'btn-sm': true, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
15 'btn-outline-success': needsApproval(data) || isRejected(data), |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
16 'btn-success': isApproved(data) |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
17 }" |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
18 @click="toggleApproval(data.id, $options.STATES.APPROVED)" |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
19 > |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
20 <font-awesome-icon icon="check"></font-awesome-icon> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
21 </button> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
22 </td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
23 <td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
24 <button |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
25 :class="{ |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
26 btn: true, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
27 'btn-sm': true, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
28 'btn-outline-danger': needsApproval(data) || isApproved(data), |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
29 'btn-danger': isRejected(data) |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
30 }" |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
31 @click="toggleApproval(data.id, $options.STATES.REJECTED)" |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
32 > |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
33 <font-awesome-icon icon="times"></font-awesome-icon> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
34 </button> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
35 </td> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
36 </tr> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
37 </template> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
38 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
39 <script> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
40 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
41 * without warranty, see README.md and license for details. |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
42 * |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
43 * SPDX-License-Identifier: AGPL-3.0-or-later |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
44 * License-Filename: LICENSES/AGPL-3.0.txt |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
45 * |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
46 * Copyright (C) 2018 by via donau |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
47 * – Österreichische Wasserstraßen-Gesellschaft mbH |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
48 * Software engineering by Intevation GmbH |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
49 * |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
50 * Author(s): |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
51 * Thomas Junk <thomas.junk@intevation.de> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
52 */ |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
53 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
54 import { formatSurveyDate } from "@/lib/date.js"; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
55 import { STATES } from "@/store/imports.js"; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
56 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
57 export default { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
58 name: "stagingdetail", |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
59 props: ["data"], |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
60 methods: { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
61 formatSurveyDate(date) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
62 return formatSurveyDate(date); |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
63 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
64 needsApproval(item) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
65 return item.status === STATES.NEEDSAPPROVAL; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
66 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
67 isRejected(item) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
68 return item.status === STATES.REJECTED; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
69 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
70 isApproved(item) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
71 return item.status === STATES.APPROVED; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
72 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
73 zoomTo(id) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
74 if (!id) return; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
75 const soundingResult = this.filteredData.filter(x => x.id == id)[0]; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
76 const { lat, lon, bottleneck, date } = soundingResult.summary; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
77 const coordinates = [lat, lon]; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
78 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
79 this.$store.commit("map/moveMap", { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
80 coordinates: coordinates, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
81 zoom: 17, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
82 preventZoomOut: true |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
83 }); |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
84 this.$store |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
85 .dispatch("bottlenecks/setSelectedBottleneck", bottleneck) |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
86 .then(() => { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
87 this.$store.commit("bottlenecks/setSelectedSurveyByDate", date); |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
88 }); |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
89 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
90 toggleApproval(id, newStatus) { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
91 this.$store.commit("imports/toggleApproval", { |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
92 id: id, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
93 newStatus: newStatus |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
94 }); |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
95 } |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
96 }, |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
97 STATES: STATES |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
98 }; |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
99 </script> |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
100 |
95641748383f
refac: extracted staging details view
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
101 <style lang="scss" scoped></style> |