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

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