diff client/src/components/importconfiguration/ImportApprovedGaugeMeasurement.vue @ 2974:e161e1ffb6b5 unified_import

unified_imports: AGM moved to new interface
author Thomas Junk <thomas.junk@intevation.de>
date Mon, 08 Apr 2019 16:44:15 +0200
parents client/src/components/ImportApprovedGaugeMeasurement.vue@6c5364ff0abb
children 2a29bf8776d0
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importconfiguration/ImportApprovedGaugeMeasurement.vue	Mon Apr 08 16:44:15 2019 +0200
@@ -0,0 +1,129 @@
+<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.$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>