view client/src/components/importconfiguration/types/Fairwaymarks.vue @ 4962:1b309a8e7673 fairway-marks-import

Distinguish more clearly between BCNLAT HYDRO and IENC features This allows importing them from different sources while keeping the history of data intact. Additionally, storing them in different tables also allows to have different attributes (here only dirimp via an m:n-table) and different constraints (currently not implemented) according to the IENC feature catalogue. Since both new tables inherit from a table with the same name as the old table, all entries still can be accessed via a table of the same name. Thus, no changes to GeoServer layers are necessary. ToDo: solve layout problems in the client SPA.
author Tom Gottfried <tom@intevation.de>
date Thu, 27 Feb 2020 21:05:09 +0100
parents d456621404c2
children 58dc06e91c39
line wrap: on
line source

<template>
  <div>
    <div class="d-flex px-2">
      <div class="flex-column w-100">
        <div class="flex-row text-left">
          <small class="text-muted"> <translate>URL</translate> </small>
        </div>
        <div class="w-100">
          <input
            @input="urlChanged"
            class="url form-control form-control-sm"
            type="url"
            :value="url"
          />
        </div>
      </div>
    </div>
    <div class="d-flex px-2">
      <div class="flex-column w-100">
        <div class="flex-row text-left">
          <small class="text-muted">
            <translate>Type of mark</translate>
          </small>
        </div>
        <div class="w-50 mt-2">
          <template v-if="isUpdate">
            <select v-model="selectedMark" class="form-control form-control-sm">
              <option
                v-for="(option, value) in $options.FAIRWAYMARKS"
                :key="value"
                :value="value"
                >{{ option }}</option
              >
            </select>
          </template>
          <template v-else="">
            <span class="pl-1">{{ selectedMark }}</span>
          </template>
        </div>
      </div>
    </div>
    <div class="d-flex px-2">
      <div class="flex-column mt-2 mr-3 w-50">
        <div class="flex-row text-left">
          <small class="text-muted"> <translate>Featuretype</translate> </small>
        </div>
        <div class="w-100">
          <input
            @input="featureTypeChanged"
            class="featuretype form-control form-control-sm"
            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-2 w-50">
        <div class="flex-row text-left">
          <small class="text-muted"> <translate>SortBy</translate> </small>
        </div>
        <div class="w-100">
          <input
            @input="sortByChanged"
            class="sortby form-control form-control-sm"
            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>
/* 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>
 */
export default {
  name: "fairwaymarks",
  props: ["url", "featureType", "sortBy", "mark", "isUpdate"],
  computed: {
    selectedMark: {
      get() {
        return this.mark;
      },
      set(value) {
        this.selected = value;
        this.$emit("selectedMarkChanged", value);
      }
    }
  },
  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);
    }
  },
  FAIRWAYMARKS: {
    BCNISD: "Beacon, isolated danger (MARITIME/Hydro feature)",
    BCNLAT_hydro: "Beacon, lateral (MARITIME/Hydro feature)",
    bcnlat_ienc: "Beacon, lateral (IENC feature)",
    BOYCAR: "Buoy, cardinal (MARITIME/Hydro feature)",
    BOYISD: "Buoy, isolated danger (MARITIME/Hydro feature)",
    BOYLAT: "Buoy, lateral (MARITIME/Hydro feature)",
    BOYSAW: "Buoy, safe water (MARITIME/Hydro feature)",
    BOYSPP: "Buoy, special purpose/general (MARITIME/Hydro feature)",
    DAYMAR: "Daymark (MARITIME/Hydro feature)",
    LIGHTS: "Light (MARITIME/Hydro feature)",
    RTPBCN: "Radar transponder beacon (MARITIME/Hydro feature)",
    TOPMAR: "Topmark (MARITIME/Hydro feature)",
    notmrk: "Notice mark (IENC feature)"
  }
};
</script>

<style></style>