annotate client/src/components/importconfiguration/Import.vue @ 3674:a3d1fce63c9e

import_configuration: search for user and country
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 17 Jun 2019 16:24:46 +0200
parents c220ad7e61ed
children f107e82b64ae
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 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
235 filteredSchedules() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
236 return this.schedules.filter(s => {
3674
a3d1fce63c9e import_configuration: search for user and country
Thomas Junk <thomas.junk@intevation.de>
parents: 3559
diff changeset
237 return (s.id + s.kind + s.user + this.userCountries[s.user])
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
238 .toLowerCase()
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
239 .includes(this.searchQuery.toLowerCase());
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
240 });
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
241 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
242 importScheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
243 return this.$gettext("Import Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
244 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
245 idLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
246 return this.$gettext("ID");
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 typeLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
249 return this.$gettext("Type");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
250 },
3559
c220ad7e61ed client: import review/configuration: unified column names in table (User/Author -> Owner)
Markus Kottlaender <markus@intevation.de>
parents: 3558
diff changeset
251 ownerLabel() {
c220ad7e61ed client: import review/configuration: unified column names in table (User/Author -> Owner)
Markus Kottlaender <markus@intevation.de>
parents: 3558
diff changeset
252 return this.$gettext("Owner");
2972
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 scheduleLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
255 return this.$gettext("Schedule");
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
256 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
257 emailLabel() {
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
258 return this.$gettext("Email");
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 },
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
261 mounted() {
3510
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
262 this.$store
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
263 .dispatch("usermanagement/loadUsers")
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
264 .then(() => {
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
265 this.$store.commit("importschedule/setListMode");
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
266 this.$store.commit("importschedule/clearCurrentSchedule");
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
267 this.getSchedules();
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
268 })
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
269 .catch(error => {
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
270 const { status, data } = error.response;
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
271 displayError({
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
272 title: this.$gettext("Backend Error"),
4d7b481e1d39 import_configuration_overview: user country column
Thomas Junk <thomas.junk@intevation.de>
parents: 3281
diff changeset
273 message: `${status}: ${data.message || data}`
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 });
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
276 },
2974
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
277 IMPORTTYPES: IMPORTTYPES,
e161e1ffb6b5 unified_imports: AGM moved to new interface
Thomas Junk <thomas.junk@intevation.de>
parents: 2972
diff changeset
278 MODES: MODES
2972
6f351e00e579 unified_imports: initial layout etd
Thomas Junk <thomas.junk@intevation.de>
parents: 2968
diff changeset
279 };
2968
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
280 </script>