annotate client/src/components/importconfiguration/Import.vue @ 3678:8f58851927c0

client: make layer factory only return new layer config for individual maps instead of each time it is invoked. The purpose of the factory was to support multiple maps with individual layers. But returning a new config each time it is invoked leads to bugs that rely on the layer's state. Now this factory reuses the same objects it created before, per map.
author Markus Kottlaender <markus@intevation.de>
date Mon, 17 Jun 2019 17:31:35 +0200
parents f107e82b64ae
children 69166db6ba8a
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>
3023
5d06629a14df client: imports: added missing close button
Markus Kottlaender <markus@intevation.de>
parents: 2985
diff changeset
3 <UIBoxHeader icon="clock" :title="title" :closeCallback="$parent.close" />
3281
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
4 <div v-if="mode === $options.MODES.LIST">
2972
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' },
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
9 { id: 'kind', title: `${typeLabel}`, class: 'col-1' },
3559
c220ad7e61ed client: import review/configuration: unified column names in table (User/Author -> Owner)
Markus Kottlaender <markus@intevation.de>
parents: 3558
diff changeset
10 { id: 'user', title: `${ownerLabel}`, class: 'col-2' },
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
11 { id: 'country', title: `${countryLabel}`, class: 'col-1' },
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
12 { id: 'config.cron', title: `${scheduleLabel}`, class: 'col-2' },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
13 { 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
14 ]"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
15 />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
16 <UITableBody
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
17 :data="filteredSchedules | sortTable(sortColumn, sortDirection)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
18 :isActive="item => currentSchedule && item.id === currentSchedule.id"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
19 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
20 <template v-slot:row="{ item: schedule }">
3281
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
21 <div class="table-cell py-1 col-1">{{ schedule.id }}</div>
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
22 <div class="table-cell py-1 col-1">
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
23 {{ schedule.kind.toUpperCase() }}
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
24 </div>
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
25 <div style="width:115px;" class="table-cell py-1">
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
26 {{ schedule.user }}
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
27 </div>
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
28 <div style="width:55px;" class="table-cell py-1">
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
29 {{ userCountries[schedule.user] }}
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
30 </div>
3281
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
31 <div class="table-cell py-1 col-2">{{ schedule.config.cron }}</div>
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
32 <div class="table-cell py-1 col-2">
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
33 <font-awesome-icon
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
34 v-if="schedule.config['send-email']"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
35 class="fa-fw mr-2"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
36 fixed-width
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
37 icon="check"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
38 />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
39 </div>
3281
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
40 <div class="table-cell py-1 col justify-content-end">
2972
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 @click="triggerManualImport(schedule.id)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
43 class="btn btn-xs btn-dark mr-1"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
44 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
45 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
46 <font-awesome-icon icon="play" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
47 </button>
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 @click="editSchedule(schedule.id)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
50 class="btn btn-xs btn-dark mr-1"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
51 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
52 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
53 <font-awesome-icon icon="pencil-alt" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
54 </button>
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 @click="deleteSchedule(schedule)"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
57 class="btn btn-xs btn-dark"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
58 :disabled="importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
59 >
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
60 <font-awesome-icon icon="trash" fixed-width />
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
61 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
62 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
63 </template>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
64 </UITableBody>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
65 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
66 <ImportDetails v-if="mode === $options.MODES.EDIT"></ImportDetails>
3281
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
67 <div
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
68 class="text-right border-top p-2"
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
69 v-if="mode === $options.MODES.LIST && !isOnetime"
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
70 >
439e1865a2d2 client: define stretches/imports: code cleanup / style improvements
Markus Kottlaender <markus@intevation.de>
parents: 3023
diff changeset
71 <button :key="3" @click="newConfiguration()" class="btn btn-sm btn-info">
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
72 <translate>New import</translate>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
73 </button>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
74 </div>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
75 </div>
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
76 </template>
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
77
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
78 <script>
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
79 /* 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
80 * 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
81 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
82 * SPDX-License-Identifier: AGPL-3.0-or-later
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
83 * License-Filename: LICENSES/AGPL-3.0.txt
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
84 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
85 * Copyright (C) 2018 by via donau
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
86 * – Österreichische Wasserstraßen-Gesellschaft mbH
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
87 * Software engineering by Intevation GmbH
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
88 *
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
89 * Author(s):
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
90 * Thomas Junk <thomas.junk@intevation.de>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
91 * Markus Kottländer <markus.kottlaender@intevation.de>
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
92 */
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
93 import { mapState, mapGetters } from "vuex";
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
94 import { displayInfo, displayError } from "@/lib/errors";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
95 import { HTTP } from "@/lib/http";
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
96 import {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
97 IMPORTTYPES,
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
98 MODES
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
99 // IMPORTTYPEKIND,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
100 // initializeCurrentSchedule
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
101 } from "@/store/importschedule";
3558
fb810668e45d client: import configuration: added missing sortTable mixin
Markus Kottlaender <markus@intevation.de>
parents: 3510
diff changeset
102 import { sortTable } from "@/lib/mixins";
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
103
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
104 export default {
3558
fb810668e45d client: import configuration: added missing sortTable mixin
Markus Kottlaender <markus@intevation.de>
parents: 3510
diff changeset
105 mixins: [sortTable],
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
106 components: {
2985
1b8bb4f89227 client: removed .js and .vue extention from imports
Markus Kottlaender <markus@intevation.de>
parents: 2980
diff changeset
107 ImportDetails: () => import("./ImportDetails")
2972
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 data() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
110 return {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
111 loading: false,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
112 sortColumn: "",
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
113 sortDirection: ""
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
114 };
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 methods: {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
117 back() {
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
118 this.$store.commit("importschedule/setListMode");
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
119 },
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
120 newConfiguration() {
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
121 this.$store.commit("importschedule/setEditMode");
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
122 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
123 getSchedules() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
124 this.loading = true;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
125 this.$store
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
126 .dispatch("importschedule/loadSchedules")
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
127 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
128 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
129 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
130 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
131 message: `${status}: ${data.message || data}`
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
132 });
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 .finally(() => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
135 this.loading = false;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
136 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
137 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
138 editSchedule(id) {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
139 this.$store
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
140 .dispatch("importschedule/loadSchedule", id)
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
141 .then(() => {
2980
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
142 this.$store.commit("importschedule/setEditMode");
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
143 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
144 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
145 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
146 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
147 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
148 message: `${status}: ${data.message || data}`
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
149 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
150 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
151 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
152 triggerManualImport(id) {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
153 HTTP.get("/imports/config/" + id + "/run", {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
154 headers: { "X-Gemma-Auth": localStorage.getItem("token") }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
155 })
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
156 .then(response => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
157 const { id } = response.data;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
158 displayInfo({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
159 title: this.$gettext("Imports"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
160 message: this.$gettext("Manually triggered import: #") + id
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 .catch(error => {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
164 const { status, data } = error.response;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
165 displayError({
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
166 title: this.$gettext("Backend Error"),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
167 message: `${status}: ${data.message || data}`
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 });
2980
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
170 },
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
171 deleteSchedule(schedule) {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
172 console.log(schedule);
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
173 this.$store.commit("application/popup", {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
174 icon: "trash",
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
175 title: this.$gettext("Delete Import"),
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
176 content:
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
177 this.$gettext("Do you really want to delete the import with ID") +
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
178 `<b>${schedule.id}</b>` +
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
179 this.$gettext("of type") +
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
180 `<b>${schedule.kind.toUpperCase()}</b>?`,
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
181 confirm: {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
182 label: this.$gettext("Delete"),
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
183 icon: "trash",
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
184 callback: () => {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
185 this.$store
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
186 .dispatch("importschedule/deleteSchedule", schedule.id)
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
187 .then(() => {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
188 this.getSchedules();
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
189 displayInfo({
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
190 title: this.$gettext("Imports"),
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
191 message: this.$gettext("Deleted import: #") + schedule.id
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
192 });
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
193 })
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
194 .catch(error => {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
195 const { status, data } = error.response;
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
196 displayError({
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
197 title: this.$gettext("Backend Error"),
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
198 message: `${status}: ${data.message || data}`
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
199 });
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
200 });
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
201 }
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
202 },
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
203 cancel: {
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
204 label: this.$gettext("Cancel"),
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
205 icon: "times"
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
206 }
a9b61290fcc2 unified_imports: edit capabilities added
Thomas Junk <thomas.junk@intevation.de>
parents: 2979
diff changeset
207 });
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
208 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
209 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
210 computed: {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
211 ...mapState("application", ["searchQuery"]),
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
212 ...mapState("importschedule", [
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
213 "mode",
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
214 "schedules",
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
215 "currentSchedule",
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
216 "importScheduleDetailVisible"
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
217 ]),
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
218 ...mapGetters("usermanagement", ["userCountries"]),
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
219 countryLabel() {
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
220 return this.$gettext("Country");
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
221 },
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
222 isOnetime() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
223 for (let kind of [
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
224 this.$options.IMPORTTYPES.SOUNDINGRESULTS,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
225 this.$options.IMPORTTYPES.APPROVEDGAUGEMEASUREMENTS,
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
226 this.$options.IMPORTTYPES.WATERWAYPROFILES
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 if (kind === this.currentSchedule.importType) return true;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
229 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
230 return false;
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
231 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
232 title() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
233 return this.$gettext("Imports");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
234 },
3676
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
235 enhancedSchedules() {
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
236 return this.schedules.map(x => {
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
237 x["country"] = this.userCountries[x.user];
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
238 return x;
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
239 });
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
240 },
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
241 filteredSchedules() {
3676
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
242 return this.enhancedSchedules.filter(s => {
f107e82b64ae import_configuration: enhance schedule with country of user
Thomas Junk <thomas.junk@intevation.de>
parents: 3674
diff changeset
243 return (s.id + s.kind + s.user + s.country)
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
244 .toLowerCase()
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
245 .includes(this.searchQuery.toLowerCase());
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
246 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
247 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
248 importScheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
249 return this.$gettext("Import Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
250 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
251 idLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
252 return this.$gettext("ID");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
253 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
254 typeLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
255 return this.$gettext("Type");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
256 },
3559
c220ad7e61ed client: import review/configuration: unified column names in table (User/Author -> Owner)
Markus Kottlaender <markus@intevation.de>
parents: 3558
diff changeset
257 ownerLabel() {
c220ad7e61ed client: import review/configuration: unified column names in table (User/Author -> Owner)
Markus Kottlaender <markus@intevation.de>
parents: 3558
diff changeset
258 return this.$gettext("Owner");
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
259 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
260 scheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
261 return this.$gettext("Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
262 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
263 emailLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
264 return this.$gettext("Email");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
265 }
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
266 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
267 mounted() {
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
268 this.$store
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
269 .dispatch("usermanagement/loadUsers")
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
270 .then(() => {
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
271 this.$store.commit("importschedule/setListMode");
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
272 this.$store.commit("importschedule/clearCurrentSchedule");
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
273 this.getSchedules();
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
274 })
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
275 .catch(error => {
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
276 const { status, data } = error.response;
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
277 displayError({
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
278 title: this.$gettext("Backend Error"),
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
279 message: `${status}: ${data.message || data}`
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
280 });
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
281 });
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
282 },
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
283 IMPORTTYPES: IMPORTTYPES,
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
284 MODES: MODES
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
285 };
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
286 </script>