Mercurial > gemma
view client/src/components/importconfiguration/types/ApprovedGaugeMeasurement.vue @ 2978:d6dd158b8071 unified_import
unified_import: reorganizing files
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 09 Apr 2019 13:42:44 +0200 |
parents | client/src/components/importconfiguration/ImportApprovedGaugeMeasurement.vue@2a29bf8776d0 |
children | 1b8bb4f89227 |
line wrap: on
line source
<template> <div> <div class="d-flex flex-column text-left w-25"> <label class="text-nowrap" for="originator"> <small class="text-muted" >{{ $options.ORIGINATOR }} / {{ $options.FROM }}</small > </label> <input type="text" v-model="originator" class="form-control" id="originator" /> <span class="text-left text-danger"> <small v-if="!originator"> <translate>Please enter an originator</translate> </small> </span> </div> <div class="mt-4 flex-column w-100"> <div class="custom-file"> <input accept=".csv" type="file" @change="fileSelected" class="custom-file-input" id="uploadFile" /> <label class="pointer custom-file-label" for="uploadFile"> {{ uploadLabel }} </label> </div> </div> <div class="d-flex flex-row-reverse w-100 mt-3"> <button :key="1" @click="back()" class="btn btn-warning"> Back </button> <button :key="2" type="submit" @click="submit" class="shadow-sm btn btn-info submit-button mr-3" > <translate>Submit</translate> </button> </div> </div> </template> <script> /* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Thomas Junk <thomas.junk@intevation.de> */ import { HTTP } from "@/lib/http"; import { displayError, displayInfo } from "@/lib/errors.js"; import app from "@/main"; export default { name: "importapprovedgaugemeasurements", data() { return { disableUploadButton: false, uploadLabel: this.$gettext("choose file to upload"), uploadFile: null, originator: "viadonau" }; }, computed: { importGaugmeasurmentLabel() { return this.$gettext("Import approved gaugemeasurements"); } }, methods: { back() { this.uploadLabel = this.$gettext("choose file to upload"); this.uploadFile = null; this.originator = "viadonau"; this.$store.commit("importschedule/setListMode"); }, fileSelected(e) { const files = e.target.files || e.dataTransfer.files; if (!files) return; this.uploadLabel = files[0].name; this.uploadFile = files[0]; }, submit() { if (!this.originator || !this.uploadFile) return; let formData = new FormData(); formData.append("agm", this.uploadFile); formData.append("originator", this.originator); HTTP.post("/imports/agm", formData, { headers: { "X-Gemma-Auth": localStorage.getItem("token"), "Content-Type": "multipart/form-data" } }) .then(() => { displayInfo({ title: this.$gettext("Import"), message: this.$gettext( "Starting import of Approved Gauge Measurements" ) }); this.back(); }) .catch(error => { const { status, data } = error.response; displayError({ title: this.$gettext("Backend Error"), message: `${status}: ${data.message || data}` }); }); } }, ORIGINATOR: app.$gettext("originator"), FROM: app.$gettext("from") }; </script> <style lang="scss" scoped></style>