annotate client/src/components/importoverview/staging/Staging.vue @ 2462:9ae2a2f758bb

client: make use of new table header/body components
author Markus Kottlaender <markus@intevation.de>
date Mon, 04 Mar 2019 14:50:23 +0100
parents 78d4ce079f9b
children 40bd6bb7886b
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="w-100">
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 <div class="d-flex justify-content-between flex-row w-100 border-bottom">
2428
78d4ce079f9b staging: optics
Thomas Junk <thomas.junk@intevation.de>
parents: 2426
diff changeset
4 <h6><translate>Review</translate></h6>
78d4ce079f9b staging: optics
Thomas Junk <thomas.junk@intevation.de>
parents: 2426
diff changeset
5 <button class="btn btn-sm btn-info align-self-end" @click="save">
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
6 <translate>Confirm</translate>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
7 </button>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
8 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
9 <StagingDetail
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
10 class="mb-3 border-bottom"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
11 :key="data.id"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
12 v-for="data in filteredData"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
13 :data="data"
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
14 ></StagingDetail>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 </div>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 </template>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 <script>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 /* This is Free Software under GNU Affero General Public License v >= 3.0
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
20 * without warranty, see README.md and license for details.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
21 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
22 * SPDX-License-Identifier: AGPL-3.0-or-later
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 * License-Filename: LICENSES/AGPL-3.0.txt
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 * Copyright (C) 2018 by via donau
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 * – Österreichische Wasserstraßen-Gesellschaft mbH
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
27 * Software engineering by Intevation GmbH
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
28 *
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
29 * Author(s):
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
30 * Thomas Junk <thomas.junk@intevation.de>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
31 * Markus Kottländer <markus@intevation.de>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 */
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 import { mapState, mapGetters } from "vuex";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
34 import { displayError, displayInfo } from "@/lib/errors.js";
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
35
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 export default {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 name: "stagingsection",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
38 computed: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
39 ...mapState("imports", ["staging"]),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
40 ...mapGetters("imports", ["processedReviews"]),
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
41 filteredData() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
42 return this.staging;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
43 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
44 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
45 methods: {
2410
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
46 loadImportQueue() {
2426
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
47 this.$store.dispatch("imports/getStaging").catch(error => {
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
48 const { status, data } = error.response;
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
49 displayError({
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
50 title: "Backend Error",
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
51 message: `${status}: ${data.message || data}`
2410
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
52 });
2426
53323f701cf3 reload staging after confirm
Thomas Junk <thomas.junk@intevation.de>
parents: 2410
diff changeset
53 });
2410
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
54 },
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
55 save() {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
56 if (!this.processedReviews.length) return;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
57 this.$store
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
58 .dispatch("imports/confirmReview", this.processedReviews)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
59 .then(response => {
2410
Thomas Junk <thomas.junk@intevation.de>
parents: 2403
diff changeset
60 this.loadImportQueue();
2403
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
61 const messages = response.data
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
62 .map(x => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
63 if (x.message) return x.message;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
64 if (x.error) return x.error;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
65 })
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
66 .join("\n\n");
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
67 displayInfo({
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
68 title: "Staging Area",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
69 message: messages,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
70 options: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
71 timeout: 0,
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
72 buttons: [{ text: "Ok", action: null, bold: true }]
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
73 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
74 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
75 })
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
76 .catch(error => {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
77 const { status, data } = error.response;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
78 displayError({
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
79 title: "Backend Error",
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
80 message: `${status}: ${data.message || data}`
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
81 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
82 });
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
83 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
84 },
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
85 components: {
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
86 StagingDetail: () => import("./StagingDetail.vue")
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
87 }
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
88 };
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
89 </script>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
90
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
91 <style></style>