annotate client/src/components/importconfiguration/Import.vue @ 2974:e161e1ffb6b5 unified_import

unified_imports: AGM moved to new interface
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 08 Apr 2019 16:44:15 +0200
parents 6f351e00e579
children 2a29bf8776d0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 <template>
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
2 <div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
3 <UIBoxHeader icon="clock" :title="title" />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
4 <div v-if="mode === $options.MODES.LIST" class="mb-3">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
5 <UISpinnerOverlay v-if="loading" />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
6 <UITableHeader
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
7 :columns="[
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
8 { id: 'id', title: `${idLabel}`, class: 'col-1' },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
9 { id: 'kind', title: `${typeLabel}`, class: 'col-2' },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
10 { id: 'user', title: `${authorLabel}`, class: 'col-2' },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
11 { id: 'config.cron', title: `${scheduleLabel}`, class: 'col-2' },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
12 { id: 'config.send-email', title: `${emailLabel}`, class: 'col-2' }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
13 ]"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
14 />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
15 <UITableBody
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
16 :data="filteredSchedules | sortTable(sortColumn, sortDirection)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
17 :isActive="item => currentSchedule && item.id === currentSchedule.id"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
18 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
19 <template v-slot:row="{ item: schedule }">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
20 <div class="table-cell col-1">{{ schedule.id }}</div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
21 <div class="table-cell col-2">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
22 {{ schedule.kind.toUpperCase() }}
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
23 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
24 <div class="table-cell col-2">{{ schedule.user }}</div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
25 <div class="table-cell col-2">{{ schedule.config.cron }}</div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
26 <div class="table-cell col-2">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
27 <font-awesome-icon
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
28 v-if="schedule.config['send-email']"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
29 class="fa-fw mr-2"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
30 fixed-width
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
31 icon="check"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
32 />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
33 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
34 <div class="table-cell col justify-content-end">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
35 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
36 @click="triggerManualImport(schedule.id)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
37 class="btn btn-xs btn-dark mr-1"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
38 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
39 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
40 <font-awesome-icon icon="play" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
41 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
42 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
43 @click="editSchedule(schedule.id)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
44 class="btn btn-xs btn-dark mr-1"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
45 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
46 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
47 <font-awesome-icon icon="pencil-alt" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
48 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
49 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
50 @click="deleteSchedule(schedule)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
51 class="btn btn-xs btn-dark"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
52 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
53 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
54 <font-awesome-icon icon="trash" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
55 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
56 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
57 </template>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
58 </UITableBody>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
59 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
60 <ImportDetails v-if="mode === $options.MODES.EDIT"></ImportDetails>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
61 <div class="d-flex flex-row-reverse w-100 mb-3">
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
62 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
63 :key="1"
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
64 v-if="mode === $options.MODES.EDIT && !isOnetime"
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
65 @click="back()"
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
66 class="btn btn-warning mr-3"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
67 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
68 Back
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
69 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
70 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
71 :key="2"
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
72 v-if="mode === $options.MODES.EDIT && !isOnetime"
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
73 type="submit"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
74 class="shadow-sm btn btn-info submit-button mr-3"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
75 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
76 <translate>Submit</translate>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
77 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
78 <button
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
79 :key="3"
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
80 v-if="mode === $options.MODES.LIST && !isOnetime"
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
81 @click="newConfiguration()"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
82 class="btn btn-info mr-3"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
83 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
84 <translate>New import</translate>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
85 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
86 <button
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
87 v-if="
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
88 mode === $options.MODES.EDIT &&
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
89 currentSchedule.importType &&
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
90 !isOnetime
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
91 "
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
92 @click="triggerManualImport"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
93 type="button"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
94 class="shadow-sm btn btn-outline-info trigger mr-auto ml-3"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
95 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
96 <font-awesome-icon class="fa-fw mr-2" fixed-width icon="play" />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
97 <translate>Trigger import</translate>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
98 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
99 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
100 </div>
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
101 </template>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
102
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
103 <style></style>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
104
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
105 <script>
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
106 /* This is Free Software under GNU Affero General Public License v >= 3.0
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
107 * without warranty, see README.md and license for details.
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
108 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
109 * SPDX-License-Identifier: AGPL-3.0-or-later
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
110 * License-Filename: LICENSES/AGPL-3.0.txt
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
111 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
112 * Copyright (C) 2018 by via donau
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
113 * – Österreichische Wasserstraßen-Gesellschaft mbH
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
114 * Software engineering by Intevation GmbH
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
115 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
116 * Author(s):
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
117 * Thomas Junk <thomas.junk@intevation.de>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
118 * Markus Kottländer <markus.kottlaender@intevation.de>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
119 */
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
120 import { mapState } from "vuex";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
121 import { displayInfo, displayError } from "@/lib/errors";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
122 import { HTTP } from "@/lib/http";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
123 import {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
124 IMPORTTYPES,
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
125 MODES
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
126 // IMPORTTYPEKIND,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
127 // initializeCurrentSchedule
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
128 } from "@/store/importschedule";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
129
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
130 export default {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
131 components: {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
132 ImportDetails: () => import("./ImportDetails.vue")
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
133 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
134 data() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
135 return {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
136 loading: false,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
137 sortColumn: "",
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
138 sortDirection: ""
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
139 };
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
140 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
141 methods: {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
142 back() {
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
143 this.$store.commit("importschedule/setListMode");
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
144 },
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
145 newConfiguration() {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
146 this.$store.commit("importschedule/setEditMode");
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
147 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
148 getSchedules() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
149 this.loading = true;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
150 this.$store
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
151 .dispatch("importschedule/loadSchedules")
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
152 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
153 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
154 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
155 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
156 message: `${status}: ${data.message || data}`
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
157 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
158 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
159 .finally(() => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
160 this.loading = false;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
161 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
162 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
163 editSchedule(id) {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
164 this.$store
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
165 .dispatch("importschedule/loadSchedule", id)
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
166 .then(() => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
167 this.$store.commit("importschedule/setImportScheduleDetailVisible");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
168 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
169 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
170 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
171 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
172 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
173 message: `${status}: ${data.message || data}`
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
174 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
175 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
176 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
177 triggerManualImport(id) {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
178 HTTP.get("/imports/config/" + id + "/run", {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
179 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
180 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
181 .then(response => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
182 const { id } = response.data;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
183 displayInfo({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
184 title: this.$gettext("Imports"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
185 message: this.$gettext("Manually triggered import: #") + id
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
186 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
187 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
188 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
189 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
190 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
191 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
192 message: `${status}: ${data.message || data}`
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
193 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
194 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
195 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
196 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
197 computed: {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
198 ...mapState("application", ["searchQuery"]),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
199 ...mapState("importschedule", [
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
200 "mode",
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
201 "schedules",
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
202 "currentSchedule",
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
203 "importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
204 ]),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
205 isOnetime() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
206 for (let kind of [
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
207 this.$options.IMPORTTYPES.SOUNDINGRESULTS,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
208 this.$options.IMPORTTYPES.APPROVEDGAUGEMEASUREMENTS,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
209 this.$options.IMPORTTYPES.WATERWAYPROFILES
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
210 ]) {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
211 if (kind === this.currentSchedule.importType) return true;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
212 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
213 return false;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
214 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
215 title() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
216 return this.$gettext("Imports");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
217 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
218 filteredSchedules() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
219 return this.schedules.filter(s => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
220 return (s.id + s.kind)
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
221 .toLowerCase()
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
222 .includes(this.searchQuery.toLowerCase());
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
223 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
224 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
225 importScheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
226 return this.$gettext("Import Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
227 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
228 idLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
229 return this.$gettext("ID");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
230 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
231 typeLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
232 return this.$gettext("Type");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
233 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
234 authorLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
235 return this.$gettext("Author");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
236 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
237 scheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
238 return this.$gettext("Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
239 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
240 emailLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
241 return this.$gettext("Email");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
242 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
243 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
244 mounted() {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
245 this.$store.commit("importschedule/setListMode");
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
246 this.$store.commit("importschedule/clearCurrentSchedule");
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
247 this.getSchedules();
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
248 },
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
249 IMPORTTYPES: IMPORTTYPES,
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
250 MODES: MODES
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
251 };
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
252 </script>