annotate client/src/imports/Imports.vue @ 1242:da99d4560fd4

feat: import sounding results Sends now bottleneck, importdate, depthreference over the wire. Changed success message to "starting import for ...". In case of an error, display errormessages.
author Thomas Junk <thomas.junk@intevation.de>
date Wed, 21 Nov 2018 09:38:51 +0100
parents 9b0a7b3ea297
children 29036b3916ab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 <template>
1230
957907eaaa72 implemented context sensitive box below search bar (see: issue224)
Markus Kottlaender <markus@intevation.de>
parents: 1217
diff changeset
2 <div>
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
3 <h4>Import soundingresults</h4>
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
4 <hr class="mr-auto ml-auto mb-0 w-90">
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
5 <div v-if="editState" class="ml-auto mr-auto mt-4 w-90">
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
6 <div class="d-flex flex-row input-group mb-4">
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
7 <div class="offset-r">
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
8 <label for="bottleneck" class="label-text" id="bottlenecklabel">Bottleneck</label>
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
9 </div>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
10 <input
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
11 id="bottleneck"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
12 type="text"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
13 class="form-control"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
14 placeholder="Name of Bottleneck"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
15 aria-label="bottleneck"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
16 aria-describedby="bottlenecklabel"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
17 v-model="bottleneck"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
18 >
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
19 </div>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
20 <div class="d-flex flex-row input-group mb-4">
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
21 <div class="offset-r">
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
22 <label class="label-text" for="importdate" id="importdatelabel">Date</label>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
23 </div>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
24 <input
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
25 id="importdate"
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
26 type="date"
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
27 class="form-control"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
28 placeholder="Date of import"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
29 aria-label="bottleneck"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
30 aria-describedby="bottlenecklabel"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
31 v-model="importDate"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
32 >
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
33 </div>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
34 <div class="d-flex flex-row input-group mb-4">
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
35 <div class="offset-r">
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
36 <label class="label-text" for="depthreference">Depth reference</label>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
37 </div>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
38 <select v-model="depthReference" class="custom-select" id="depthreference">
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
39 <option
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
40 v-for="option in this.$options.depthReferenceOptions"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
41 :key="option"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
42 >{{option}}</option>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
43 </select>
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
44 </div>
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
45 </div>
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
46 <div class="w-90 ml-auto mr-auto mt-4 mb-4">
1236
ec4b06d3a3a8 imports: only show dialog in upload mode
Thomas Junk <thomas.junk@intevation.de>
parents: 1230
diff changeset
47 <div v-if="uploadState" class="d-flex flex-row input-group mb-4">
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
48 <div class="custom-file">
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
49 <input
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
50 type="file"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
51 @change="fileSelected"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
52 class="custom-file-input"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
53 id="uploadFile"
1183
1d4801145a2d import soundingresults context now map instead administration
Thomas Junk <thomas.junk@intevation.de>
parents: 1161
diff changeset
54 >
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
55 <label class="custom-file-label" for="uploadFile">{{uploadLabel}}</label>
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
56 </div>
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
57 </div>
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
58 <div class="buttons text-right">
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
59 <a
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
60 v-if="editState"
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
61 download="meta.json"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
62 :href="dataLink "
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
63 class="btn btn-outline-info pull-left"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
64 >Download Meta.json</a>
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
65 <button
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
66 v-if="editState"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
67 @click="deleteTempData"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
68 class="btn btn-danger"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
69 type="button"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
70 >Cancel Upload</button>
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
71 <button
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
72 :disabled="disableUpload"
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
73 @click="submit"
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
74 class="btn btn-info"
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
75 type="button"
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
76 >{{uploadState?"Upload":"Confirm"}}</button>
1204
ddfdf440da24 made searchbar contextual
Markus Kottlaender <markus@intevation.de>
parents: 1191
diff changeset
77 </div>
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
78 </div>
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
79 </div>
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
80 </template>
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
81
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
82 <script>
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
83 import { HTTP } from "../application/lib/http";
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
84 import { displayError, displayInfo } from "../application/lib/errors.js";
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
85
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
86 const defaultLabel = "Choose .zip-file";
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
87 const IMPORTSTATE = { UPLOAD: "UPLOAD", EDIT: "EDIT" };
1152
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
88
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
89 export default {
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
90 name: "imports",
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
91 data() {
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
92 return {
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
93 importState: IMPORTSTATE.UPLOAD,
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
94 depthReference: "",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
95 bottleneck: "",
1152
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
96 importDate: "",
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
97 uploadLabel: defaultLabel,
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
98 uploadFile: null,
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
99 disableUpload: false,
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
100 token: null
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
101 };
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
102 },
1152
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
103 methods: {
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
104 initialState() {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
105 this.importState = IMPORTSTATE.UPLOAD;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
106 this.depthReference = "";
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
107 this.bottleneck = "";
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
108 this.importDate = "";
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
109 this.uploadLabel = defaultLabel;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
110 this.uploadFile = null;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
111 this.disableUpload = false;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
112 this.token = null;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
113 },
1152
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
114 fileSelected(e) {
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
115 const files = e.target.files || e.dataTransfer.files;
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
116 if (!files) return;
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
117 this.uploadLabel = files[0].name;
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
118 this.uploadFile = files[0];
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
119 },
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
120 deleteTempData() {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
121 HTTP.delete("/imports/soundingresult-upload/" + this.token, {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
122 headers: {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
123 "X-Gemma-Auth": localStorage.getItem("token")
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
124 }
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
125 })
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
126 .then(() => {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
127 this.initialState();
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
128 })
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
129 .catch(error => {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
130 const { status, data } = error.response;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
131 displayError({
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
132 title: "Backend Error",
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
133 message: `${status}: ${data.message || data}`
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
134 });
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
135 });
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
136 },
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
137 submit() {
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
138 if (!this.uploadFile || this.disableUpload) return;
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
139 if (this.importState === IMPORTSTATE.UPLOAD) {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
140 this.upload();
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
141 } else {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
142 this.confirm();
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
143 }
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
144 },
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
145 upload() {
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
146 let formData = new FormData();
1212
387826a2efd3 feat: import soundingresults. Uses now import API correctly
Thomas Junk <thomas.junk@intevation.de>
parents: 1211
diff changeset
147 formData.append("soundingresult", this.uploadFile);
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
148 HTTP.post("/imports/soundingresult-upload", formData, {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
149 headers: {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
150 "X-Gemma-Auth": localStorage.getItem("token"),
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
151 "Content-Type": "multipart/form-data"
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
152 }
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
153 })
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
154 .then(response => {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
155 const { bottleneck, date } = response.data.meta;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
156 const depthReference = response.data.meta["depth-reference"];
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
157 this.importState = IMPORTSTATE.EDIT;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
158 this.bottleneck = bottleneck;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
159 this.depthReference = depthReference;
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
160 this.importDate = new Date(date).toISOString().split("T")[0];
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
161 this.token = response.data.token;
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
162 })
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
163 .catch(error => {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
164 const { status, data } = error.response;
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
165 const messages = data.messages ? data.messages.join(", ") : "";
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
166 displayError({
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
167 title: "Backend Error",
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
168 message: `${status}: ${messages}`
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
169 });
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
170 });
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
171 },
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
172 confirm() {
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
173 let formData = new FormData();
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
174 formData.append("token", this.token);
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
175 ["bottleneck", "importDate", "depthReference"].forEach(x => {
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
176 if (this[x]) formData.append(x, this[x]);
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
177 });
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
178 HTTP.post("/imports/soundingresult", formData, {
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
179 headers: {
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
180 "X-Gemma-Auth": localStorage.getItem("token"),
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
181 "Content-Type": "multipart/form-data"
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
182 }
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
183 })
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
184 .then(() => {
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
185 displayInfo({
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
186 title: "Import",
1242
da99d4560fd4 feat: import sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1240
diff changeset
187 message: "Starting import for " + this.bottleneck
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
188 });
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
189 this.initialState();
1161
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
190 })
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
191 .catch(error => {
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
192 const { status, data } = error.response;
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
193 displayError({
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
194 title: "Backend Error",
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
195 message: `${status}: ${data.message || data}`
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
196 });
e15850b3a9d1 feat: import of sounding results upload
Thomas Junk <thomas.junk@intevation.de>
parents: 1152
diff changeset
197 });
1152
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
198 }
7cb06f85a905 feat: Import sounding results display filename in uploadbox
Thomas Junk <thomas.junk@intevation.de>
parents: 1151
diff changeset
199 },
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
200 computed: {
1211
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
201 editState() {
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
202 return this.importState === IMPORTSTATE.EDIT;
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
203 },
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
204 uploadState() {
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
205 return this.importState === IMPORTSTATE.UPLOAD;
55eae66af749 relayouting soundingresults
Thomas Junk <thomas.junk@intevation.de>
parents: 1204
diff changeset
206 },
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
207 dataLink() {
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
208 return (
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
209 "data:text/json;charset=utf-8," +
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
210 encodeURIComponent(
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
211 JSON.stringify({
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
212 depthReference: this.depthReference,
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
213 bottleneck: this.bottleneck,
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
214 date: this.importDate
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
215 })
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
216 )
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
217 );
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
218 }
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
219 },
1145
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
220 depthReferenceOptions: [
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
221 "",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
222 "NAP",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
223 "KP",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
224 "FZP",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
225 "ADR",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
226 "TAW",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
227 "PUL",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
228 "NGM",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
229 "ETRS",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
230 "POT",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
231 "LDC",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
232 "HDC",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
233 "ZPG",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
234 "GLW",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
235 "HSW",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
236 "LNW",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
237 "HNW",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
238 "IGN",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
239 "WGS",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
240 "RN",
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
241 "HBO"
2d34715dd52e feat: Import of sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1144
diff changeset
242 ]
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
243 };
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
244 </script>
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
245
1191
b23622905a3f switched entirely to sass instead of scss
Markus Kottlaender <markus@intevation.de>
parents: 1183
diff changeset
246 <style lang="sass" scoped>
1240
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
247 .offset-r
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
248 margin-right: $large-offset
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
249
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
250 .buttons button
9b0a7b3ea297 inport sounding results
Thomas Junk <thomas.junk@intevation.de>
parents: 1236
diff changeset
251 margin-left: $offset !important
1217
ba8cd80d68b6 made more use of bootstrap classes instead of custom css
Markus Kottlaender <markus@intevation.de>
parents: 1213
diff changeset
252
1191
b23622905a3f switched entirely to sass instead of scss
Markus Kottlaender <markus@intevation.de>
parents: 1183
diff changeset
253 .label-text
b23622905a3f switched entirely to sass instead of scss
Markus Kottlaender <markus@intevation.de>
parents: 1183
diff changeset
254 width: 10rem
b23622905a3f switched entirely to sass instead of scss
Markus Kottlaender <markus@intevation.de>
parents: 1183
diff changeset
255 text-align: left
b23622905a3f switched entirely to sass instead of scss
Markus Kottlaender <markus@intevation.de>
parents: 1183
diff changeset
256 line-height: 2.25rem
1142
dc3f0277628a feat: Importqueue listing (Proof of concept)
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
257 </style>