changeset 2002:1a4b218f5e19

merge with importschedulerefac
author Thomas Junk <thomas.junk@intevation.de>
date Thu, 24 Jan 2019 14:28:40 +0100
parents 59055c8301df (current diff) 13468b7be3a6 (diff)
children 917c672591c2
files
diffstat 10 files changed, 869 insertions(+), 259 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/importschedule/Importscheduledetail.vue	Thu Jan 24 12:56:31 2019 +0100
+++ b/client/src/components/importschedule/Importscheduledetail.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -69,252 +69,78 @@
               </div>
             </div>
           </div>
-          <div v-if="isURLRequired">
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-100">
-                <div class="flex-row text-left">
-                  <small class="text-muted"> <translate>URL</translate> </small>
-                </div>
-                <div class="w-100">
-                  <input v-model="url" class="form-control" type="url" />
-                </div>
-              </div>
-              <div v-if="false" class="flex-column mt-3 text-left">
-                <div class="d-flex flex-row">
-                  <small class="text-muted mr-2"
-                    ><translate>Insecure</translate>
-                  </small>
-                </div>
-                <div class="d-flex flex-row">
-                  <toggle-button
-                    v-model="insecure"
-                    class="mt-2"
-                    :speed="100"
-                    :color="{
-                      checked: '#FF0000',
-                      unchecked: '#E9ECEF',
-                      disabled: '#CCCCCC'
-                    }"
-                    :labels="{
-                      checked: this.$options.on,
-                      unchecked: this.$options.off
-                    }"
-                    :width="60"
-                    :height="30"
-                  />
-                </div>
-              </div>
-            </div>
-            <div v-if="!url" class="d-flex flex-row">
-              <small
-                ><translate class="text-danger"
-                  >Please enter a URL</translate
-                ></small
-              >
-            </div>
-          </div>
-          <div v-if="isCredentialsRequired">
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>Username</translate>
-                  </small>
-                </div>
-                <div class="w-100">
-                  <input v-model="username" class="form-control" type="text" />
-                </div>
-                <div v-if="!username" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a Username</translate
-                    ></small
-                  >
-                </div>
-              </div>
-              <div class="flex-column mt-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>Password</translate>
-                  </small>
-                </div>
-                <div class="w-100 d-flex flex-row">
-                  <input
-                    v-model="password"
-                    class="form-control"
-                    :type="showPassword"
-                  />
-                  <span
-                    class="input-group-text ml-2"
-                    @click="passwordVisible = !passwordVisible"
-                  >
-                    <font-awesome-icon
-                      :icon="passwordVisible ? 'eye-slash' : 'eye'"
-                    ></font-awesome-icon>
-                  </span>
-                </div>
-                <div v-if="!password" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a Password</translate
-                    ></small
-                  >
-                </div>
-              </div>
-            </div>
-          </div>
-          <div v-if="isFeatureTypeRequired">
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>Featuretype</translate>
-                  </small>
-                </div>
-                <div class="w-100">
-                  <input
-                    v-model="featureType"
-                    class="form-control"
-                    type="text"
-                  />
-                </div>
-                <div v-if="!featureType" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a Featuretype</translate
-                    ></small
-                  >
-                </div>
-              </div>
-              <div class="flex-column mt-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>SortBy</translate>
-                  </small>
-                </div>
-                <div class="w-100">
-                  <input v-model="sortBy" class="form-control" type="text" />
-                </div>
-                <div v-if="!sortBy" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter SortBy</translate
-                    ></small
-                  >
-                </div>
-              </div>
-            </div>
-          </div>
-          <div v-if="import_ == $options.IMPORTTYPES.FAIRWAYDIMENSION">
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted"> <translate>LOS</translate> </small>
-                </div>
-                <div class="w-100">
-                  <select v-model="LOS" class="form-control">
-                    <option value="1">1</option>
-                    <option value="2">2</option>
-                    <option value="3">3</option>
-                  </select>
-                </div>
-                <div v-if="!LOS" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a level of service</translate
-                    ></small
-                  >
-                </div>
-              </div>
-              <div class="flex-column mt-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>Depth</translate>
-                  </small>
-                </div>
-                <div class="d-flex flex-row">
-                  <input v-model="depth" class="form-control" type="number" />
-                  <div class="ml-2 my-auto">cm</div>
-                </div>
-                <div v-if="!depth" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a depth</translate
-                    ></small
-                  >
-                </div>
-              </div>
-            </div>
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>MinWidth</translate>
-                  </small>
-                </div>
-                <div class="d-flex flex-row">
-                  <input
-                    v-model="minWidth"
-                    class="form-control"
-                    type="number"
-                  />
-                  <div class="ml-2 my-auto">&nbsp;m</div>
-                </div>
-                <div v-if="!minWidth" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a minimum width</translate
-                    ></small
-                  >
-                </div>
-              </div>
-              <div class="flex-column mt-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>MaxWidth</translate>
-                  </small>
-                </div>
-                <div class="d-flex flex-row">
-                  <input
-                    v-model="maxWidth"
-                    class="form-control"
-                    type="number"
-                  />
-                  <div class="ml-2 my-auto">&nbsp;m</div>
-                </div>
-                <div v-if="!maxWidth" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a maximum width</translate
-                    ></small
-                  >
-                </div>
-              </div>
-            </div>
-            <div class="d-flex flex-row">
-              <div class="flex-column mt-3 mr-3 w-50">
-                <div class="flex-row text-left">
-                  <small class="text-muted">
-                    <translate>Source orgranization</translate>
-                  </small>
-                </div>
-                <div class="w-100">
-                  <input
-                    v-model="sourceOrganization"
-                    class="form-control"
-                    type="text"
-                  />
-                </div>
-                <div v-if="!sourceOrganization" class="d-flex flex-row">
-                  <small
-                    ><translate class="text-danger"
-                      >Please enter a source orgranization</translate
-                    ></small
-                  >
-                </div>
-              </div>
-            </div>
-          </div>
+
+          <Availablefairwaydepth
+            v-if="import_ == $options.IMPORTTYPES.FAIRWAYAVAILABILITY"
+            @urlChanged="setUrl"
+            :url="url"
+          ></Availablefairwaydepth>
+          <Bottleneck
+            v-if="import_ == $options.IMPORTTYPES.BOTTLENECK"
+            @urlChanged="setUrl"
+            :url="url"
+          ></Bottleneck>
+          <Distancemarksvirtual
+            v-if="import_ == $options.IMPORTTYPES.DISTANCEMARKSVIRTUAL"
+            @urlChanged="setUrl"
+            @usernameChanged="setUsername"
+            @passwordChanged="setPassword"
+            :url="url"
+            :username="username"
+            :password="password"
+          ></Distancemarksvirtual>
+          <Faiwaydimensions
+            v-if="import_ == $options.IMPORTTYPES.FAIRWAYDIMENSION"
+            @urlChanged="setUrl"
+            @featureTypeChanged="setFeatureType"
+            @sortByChanged="setSortBy"
+            @LOSChanged="setLOS"
+            @depthChanged="setDepth"
+            @minWidthChanged="setMinWidth"
+            @maxWidthChanged="setMaxWidth"
+            @sourceOrganizationChanged="setSourceOrganization"
+            :url="url"
+            :featureType="featureType"
+            :sortBy="sortBy"
+            :LOS="LOS"
+            :minWidth="minWidth"
+            :maxWidth="maxWidth"
+            :sourceOrganization="sourceOrganization"
+            :depth="depth"
+          ></Faiwaydimensions>
+          <Gaugemeasurement
+            v-if="import_ == $options.IMPORTTYPES.GAUGEMEASUREMENT"
+            @urlChanged="setUrl"
+            :url="url"
+          ></Gaugemeasurement>
+          <Waterwayarea
+            v-if="import_ == $options.IMPORTTYPES.WATERWAYAREA"
+            @urlChanged="setUrl"
+            @featureTypeChanged="setFeatureType"
+            @sortByChanged="setSortBy"
+            :url="url"
+            :featureType="featureType"
+            :sortBy="sortBy"
+          ></Waterwayarea>
+          <Waterwaygauges
+            v-if="import_ == $options.IMPORTTYPES.WATERWAYGAUGES"
+            @urlChanged="setUrl"
+            @usernameChanged="setUsername"
+            @passwordChanged="setPassword"
+            :url="url"
+            :username="username"
+            :password="password"
+          ></Waterwaygauges>
+          <Waterwayaxis
+            v-if="import_ == $options.IMPORTTYPES.WATERWAYAXIS"
+            @urlChanged="setUrl"
+            @featureTypeChanged="setFeatureType"
+            @sortByChanged="setSortBy"
+            :url="url"
+            :featureType="featureType"
+            :sortBy="sortBy"
+          ></Waterwayaxis>
+
           <div class="d-flex flex-row">
             <div class="flex-column mt-3 mr-4">
               <div class="flex-row text-left">
@@ -563,6 +389,24 @@
 
 export default {
   name: "importscheduledetail",
+  components: {
+    Availablefairwaydepth: () =>
+      import("@/components/importschedule/importtypes/Availablefairwaydepth"),
+    Bottleneck: () =>
+      import("@/components/importschedule/importtypes/Bottleneck"),
+    Distancemarksvirtual: () =>
+      import("@/components/importschedule/importtypes/Distancemarksvirtual"),
+    Faiwaydimensions: () =>
+      import("@/components/importschedule/importtypes/Fairwaydimensions"),
+    Gaugemeasurement: () =>
+      import("@/components/importschedule/importtypes/Gaugemeasurement"),
+    Waterwayarea: () =>
+      import("@/components/importschedule/importtypes/Waterwayarea"),
+    Waterwaygauges: () =>
+      import("@/components/importschedule/importtypes/Waterwaygauges"),
+    Waterwayaxis: () =>
+      import("@/components/importschedule/importtypes/Waterwayaxis")
+  },
   data() {
     return {
       passwordVisible: false,
@@ -643,10 +487,6 @@
   },
   computed: {
     ...mapState("imports", ["importScheduleDetailVisible", "currentSchedule"]),
-    showPassword() {
-      if (this.passwordVisible) return "text";
-      return "password";
-    },
     dialogLabel() {
       if (this.id) return this.$gettext("Import") + " " + this.id;
       return this.$gettext("New Import");
@@ -694,13 +534,39 @@
         default:
           return false;
       }
-    },
-    fixedSource() {
-      if (this.import_ === this.$options.IMPORTTYPES.BOTTLENECK) return true;
-      return false;
     }
   },
   methods: {
+    setUrl(value) {
+      this.url = value;
+    },
+    setFeatureType(value) {
+      this.featureType = value;
+    },
+    setSortBy(value) {
+      this.sortBy = value;
+    },
+    setUsername(value) {
+      this.username = value;
+    },
+    setPassword(value) {
+      this.password = value;
+    },
+    setLOS(value) {
+      this.LOS = value;
+    },
+    setMinWidth(value) {
+      this.minWidth = value;
+    },
+    setMaxWidth(value) {
+      this.maxWidth = value;
+    },
+    setDepth(value) {
+      this.depth = value;
+    },
+    setSourceOrganization(value) {
+      this.sourceOrganization = value;
+    },
     calcCronString() {
       let getValue = value => {
         return this[value] ? this[value] : "*";
@@ -866,11 +732,11 @@
         )
           return;
         const values = {
-          los: this.LOS,
-          depth: this.depth
+          los: this.LOS * 1,
+          depth: this.depth * 1
         };
-        values["min-width"] = this.minWidth;
-        values["max-width"] = this.maxWidth;
+        values["min-width"] = this.minWidth * 1;
+        values["max-width"] = this.maxWidth * 1;
         values["source-organization"] = this.sourceOrganization;
         addAttribute(data, values);
       }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Availablefairwaydepth.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,38 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "availablefairwaydepth",
+  props: ["url"],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Bottleneck.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,63 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+      <div v-if="false" class="flex-column mt-3 text-left">
+        <div class="d-flex flex-row">
+          <small class="text-muted mr-2"
+            ><translate>Insecure</translate>
+          </small>
+        </div>
+        <div class="d-flex flex-row">
+          <toggle-button
+            v-model="insecure"
+            class="mt-2"
+            :speed="100"
+            :color="{
+              checked: '#FF0000',
+              unchecked: '#E9ECEF',
+              disabled: '#CCCCCC'
+            }"
+            :labels="{
+              checked: this.$options.on,
+              unchecked: this.$options.off
+            }"
+            :width="60"
+            :height="30"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "bottleneckimport",
+  props: ["url"],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Distancemarksvirtual.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,105 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Username</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="usernameChanged"
+            class="form-control"
+            type="text"
+            :value="username"
+          />
+        </div>
+        <div v-if="!username" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Username</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Password</translate> </small>
+        </div>
+        <div class="w-100 d-flex flex-row">
+          <input
+            @keyup="passwordChanged"
+            class="form-control"
+            :type="showPassword"
+            :value="password"
+          />
+          <span
+            class="input-group-text ml-2"
+            @click="passwordVisible = !passwordVisible"
+          >
+            <font-awesome-icon
+              :icon="passwordVisible ? 'eye-slash' : 'eye'"
+            ></font-awesome-icon>
+          </span>
+        </div>
+        <div v-if="!password" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Password</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "distancemarksvirtual",
+  props: ["url", "username", "password"],
+  data() {
+    return {
+      passwordVisible: false
+    };
+  },
+  computed: {
+    showPassword() {
+      if (this.passwordVisible) return "text";
+      return "password";
+    }
+  },
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    },
+    usernameChanged(e) {
+      this.$emit("usernameChanged", e.target.value);
+    },
+    passwordChanged(e) {
+      this.$emit("passwordChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Fairwaydimensions.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,223 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Featuretype</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="featureTypeChanged"
+            class="form-control"
+            type="text"
+            :value="featureType"
+          />
+        </div>
+        <div v-if="!featureType" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Featuretype</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>SortBy</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="sortByChanged"
+            class="form-control"
+            type="text"
+            :value="sortBy"
+          />
+        </div>
+        <div v-if="!sortBy" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter SortBy</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>LOS</translate> </small>
+        </div>
+        <div class="w-100">
+          <select @keyup="LOSChanged" class="form-control">
+            <option :value="{ LOS: 1 }">1</option>
+            <option :value="{ LOS: 2 }">2</option>
+            <option :value="{ LOS: 3 }">3</option>
+          </select>
+        </div>
+        <div v-if="!LOS" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a level of service</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Depth</translate> </small>
+        </div>
+        <div class="d-flex flex-row">
+          <input
+            @keyup="depthChanged"
+            @input="depthChanged"
+            class="form-control"
+            type="number"
+            :value="depth"
+          />
+          <div class="ml-2 my-auto">cm</div>
+        </div>
+        <div v-if="!depth" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a depth</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>MinWidth</translate> </small>
+        </div>
+        <div class="d-flex flex-row">
+          <input
+            @keyup="minWidthChanged"
+            @input="minWidthChanged"
+            class="form-control"
+            type="number"
+            :value="minWidth"
+          />
+          <div class="ml-2 my-auto">&nbsp;m</div>
+        </div>
+        <div v-if="!minWidth" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a minimum width</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>MaxWidth</translate> </small>
+        </div>
+        <div class="d-flex flex-row">
+          <input
+            @keyup="maxWidthChanged"
+            @input="maxWidthChanged"
+            class="form-control"
+            type="number"
+            :value="maxWidth"
+          />
+          <div class="ml-2 my-auto">&nbsp;m</div>
+        </div>
+        <div v-if="!maxWidth" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a maximum width</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted">
+            <translate>Source orgranization</translate>
+          </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="sourceOrganizationChanged"
+            class="form-control"
+            type="text"
+            :value="sourceOrganization"
+          />
+        </div>
+        <div v-if="!sourceOrganization" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a source orgranization</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "fairwaydimensions",
+  props: [
+    "url",
+    "featureType",
+    "sortBy",
+    "depth",
+    "LOS",
+    "minWidth",
+    "maxWidth",
+    "sourceOrganization"
+  ],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    },
+    featureTypeChanged(e) {
+      this.$emit("featureTypeChanged", e.target.value);
+    },
+    sortByChanged(e) {
+      this.$emit("sortByChanged", e.target.value);
+    },
+    depthChanged(e) {
+      this.$emit("depthChanged", e.target.value * 1);
+    },
+    LOSChanged(e) {
+      this.$emit("LOSChanged", e.target.value * 1);
+    },
+    minWidthChanged(e) {
+      this.$emit("minWidthChanged", e.target.value * 1);
+    },
+    maxWidthChanged(e) {
+      this.$emit("maxWidthChanged", e.target.value * 1);
+    },
+    sourceOrganizationChanged(e) {
+      this.$emit("sourceOrganizationChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Gaugemeasurement.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,38 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "gaugemeasurement",
+  props: ["url"],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Waterwayarea.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,86 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Featuretype</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="featureTypeChanged"
+            class="form-control"
+            type="text"
+            :value="featureType"
+          />
+        </div>
+        <div v-if="!featureType" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Featuretype</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>SortBy</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="sortByChanged"
+            class="form-control"
+            type="text"
+            :value="sortBy"
+          />
+        </div>
+        <div v-if="!sortBy" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter SortBy</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "waterwayarea",
+  props: ["url", "featureType", "sortBy"],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    },
+    featureTypeChanged(e) {
+      this.$emit("featureTypeChanged", e.target.value);
+    },
+    sortByChanged(e) {
+      this.$emit("sortByChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Waterwayaxis.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,86 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Featuretype</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="featureTypeChanged"
+            class="form-control"
+            type="text"
+            :value="featureType"
+          />
+        </div>
+        <div v-if="!featureType" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Featuretype</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>SortBy</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="sortByChanged"
+            class="form-control"
+            type="text"
+            :value="sortBy"
+          />
+        </div>
+        <div v-if="!sortBy" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter SortBy</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "waterwayaxis",
+  props: ["url", "featureType", "sortBy"],
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    },
+    featureTypeChanged(e) {
+      this.$emit("featureTypeChanged", e.target.value);
+    },
+    sortByChanged(e) {
+      this.$emit("sortByChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/src/components/importschedule/importtypes/Waterwaygauges.vue	Thu Jan 24 14:28:40 2019 +0100
@@ -0,0 +1,105 @@
+<template>
+  <div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-100">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>URL</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="urlChanged"
+            class="form-control"
+            type="url"
+            :value="url"
+          />
+        </div>
+      </div>
+    </div>
+    <div v-if="!url" class="d-flex flex-row">
+      <small
+        ><translate class="text-danger">Please enter a URL</translate></small
+      >
+    </div>
+    <div class="d-flex flex-row">
+      <div class="flex-column mt-3 mr-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Username</translate> </small>
+        </div>
+        <div class="w-100">
+          <input
+            @keyup="usernameChanged"
+            class="form-control"
+            type="text"
+            :value="username"
+          />
+        </div>
+        <div v-if="!username" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Username</translate
+            ></small
+          >
+        </div>
+      </div>
+      <div class="flex-column mt-3 w-50">
+        <div class="flex-row text-left">
+          <small class="text-muted"> <translate>Password</translate> </small>
+        </div>
+        <div class="w-100 d-flex flex-row">
+          <input
+            @keyup="passwordChanged"
+            class="form-control"
+            :type="showPassword"
+            :value="password"
+          />
+          <span
+            class="input-group-text ml-2"
+            @click="passwordVisible = !passwordVisible"
+          >
+            <font-awesome-icon
+              :icon="passwordVisible ? 'eye-slash' : 'eye'"
+            ></font-awesome-icon>
+          </span>
+        </div>
+        <div v-if="!password" class="d-flex flex-row">
+          <small
+            ><translate class="text-danger"
+              >Please enter a Password</translate
+            ></small
+          >
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "waterwaygauges",
+  props: ["username", "password", "url"],
+  data() {
+    return {
+      passwordVisible: false
+    };
+  },
+  computed: {
+    showPassword() {
+      if (this.passwordVisible) return "text";
+      return "password";
+    }
+  },
+  methods: {
+    urlChanged(e) {
+      this.$emit("urlChanged", e.target.value);
+    },
+    usernameChanged(e) {
+      this.$emit("usernameChanged", e.target.value);
+    },
+    passwordChanged(e) {
+      this.$emit("passwordChanged", e.target.value);
+    }
+  }
+};
+</script>
+
+<style></style>
--- a/client/src/store/imports.js	Thu Jan 24 12:56:31 2019 +0100
+++ b/client/src/store/imports.js	Thu Jan 24 14:28:40 2019 +0100
@@ -88,7 +88,7 @@
     sortBy: null,
     username: "",
     password: "",
-    LOS: null,
+    LOS: 1,
     minWidth: null,
     maxWidth: null,
     depth: null,