comparison 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
comparison
equal deleted inserted replaced
1241:a45fa8943254 1242:da99d4560fd4
21 <div class="offset-r"> 21 <div class="offset-r">
22 <label class="label-text" for="importdate" id="importdatelabel">Date</label> 22 <label class="label-text" for="importdate" id="importdatelabel">Date</label>
23 </div> 23 </div>
24 <input 24 <input
25 id="importdate" 25 id="importdate"
26 type="text" 26 type="date"
27 class="form-control" 27 class="form-control"
28 placeholder="Date of import" 28 placeholder="Date of import"
29 aria-label="bottleneck" 29 aria-label="bottleneck"
30 aria-describedby="bottlenecklabel" 30 aria-describedby="bottlenecklabel"
31 v-model="importDate" 31 v-model="importDate"
155 const { bottleneck, date } = response.data.meta; 155 const { bottleneck, date } = response.data.meta;
156 const depthReference = response.data.meta["depth-reference"]; 156 const depthReference = response.data.meta["depth-reference"];
157 this.importState = IMPORTSTATE.EDIT; 157 this.importState = IMPORTSTATE.EDIT;
158 this.bottleneck = bottleneck; 158 this.bottleneck = bottleneck;
159 this.depthReference = depthReference; 159 this.depthReference = depthReference;
160 this.importDate = date; 160 this.importDate = new Date(date).toISOString().split("T")[0];
161 this.token = response.data.token; 161 this.token = response.data.token;
162 }) 162 })
163 .catch(error => { 163 .catch(error => {
164 const { status, data } = error.response; 164 const { status, data } = error.response;
165 const messages = data.messages ? data.messages.join(", ") : "";
165 displayError({ 166 displayError({
166 title: "Backend Error", 167 title: "Backend Error",
167 message: `${status}: ${data.message || data}` 168 message: `${status}: ${messages}`
168 }); 169 });
169 }); 170 });
170 }, 171 },
171 confirm() { 172 confirm() {
172 let formData = new FormData(); 173 let formData = new FormData();
173 formData.append("token", this.token); 174 formData.append("token", this.token);
175 ["bottleneck", "importDate", "depthReference"].forEach(x => {
176 if (this[x]) formData.append(x, this[x]);
177 });
174 HTTP.post("/imports/soundingresult", formData, { 178 HTTP.post("/imports/soundingresult", formData, {
175 headers: { 179 headers: {
176 "X-Gemma-Auth": localStorage.getItem("token"), 180 "X-Gemma-Auth": localStorage.getItem("token"),
177 "Content-Type": "multipart/form-data" 181 "Content-Type": "multipart/form-data"
178 } 182 }
179 }) 183 })
180 .then(() => { 184 .then(() => {
181 displayInfo({ 185 displayInfo({
182 title: "Import", 186 title: "Import",
183 message: "Successfully imported " + this.bottleneck 187 message: "Starting import for " + this.bottleneck
184 }); 188 });
185 this.initialState(); 189 this.initialState();
186 }) 190 })
187 .catch(error => { 191 .catch(error => {
188 const { status, data } = error.response; 192 const { status, data } = error.response;