view client/src/components/importoverview/LogDetail.vue @ 2605:11fd7ee37f10

overview2: added stretch zoom functionality
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 12 Mar 2019 17:08:49 +0100
parents b9523d876d01
children 13377f2a5c42
line wrap: on
line source

<template>
  <div>
    <div class="d-flex fex-row">
      <div v-if="hasAdditionalInfo">
        <font-awesome-icon
          v-if="entry.id === showAdditional"
          @click="toggleAdditionalInfo"
          class="my-auto mr-1 text-info pointer"
          icon="angle-down"
          fixed-width
        ></font-awesome-icon>
        <font-awesome-icon
          v-if="entry.id !== showAdditional"
          @click="toggleAdditionalInfo"
          class="my-auto mr-1 text-info pointer"
          icon="angle-right"
          fixed-width
        ></font-awesome-icon>
        <span class="text-info"><translate>Additional Info</translate></span>
        <span class="text-info" v-if="isApprovedGaugeMeasurement">
          ({{ entry.summary.length }})</span
        >
      </div>
      <StretchDetail v-if="isStretch" :entry="entry"></StretchDetail>
    </div>
    <AdditionalDetail
      v-if="entry.id === showAdditional"
      class="ml-2 d-flex flex-row"
      :entry="entry"
    ></AdditionalDetail>
    <div class="d-flex fex-row">
      <font-awesome-icon
        v-if="entry.id === showLogs"
        @click="toggleAdditionalLogging"
        class="my-auto mr-1 text-info pointer"
        icon="angle-down"
        fixed-width
      ></font-awesome-icon>
      <font-awesome-icon
        v-if="entry.id !== showLogs"
        @click="toggleAdditionalLogging"
        class="my-auto mr-1 text-info pointer"
        icon="angle-right"
        fixed-width
      ></font-awesome-icon>
      <span class="text-info"><translate>Logs</translate></span>
    </div>

    <AdditionalLog
      v-if="entry.id === showLogs"
      class="ml-4 d-flex flex-row"
      :entry="entry"
    ></AdditionalLog>
  </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 { mapState } from "vuex";

export default {
  name: "logdetail",
  props: ["entry"],
  components: {
    StretchDetail: () => import("./StretchDetails.vue"),
    AdditionalDetail: () => import("./AdditionalDetail.vue"),
    AdditionalLog: () => import("./AdditionalLog.vue")
  },
  methods: {
    toggleAdditionalInfo() {
      if (this.entry.id === this.showAdditional) {
        this.$store.commit("imports/hideAdditionalInfo");
      } else {
        this.$store.commit("imports/showAdditionalInfoFor", this.entry.id);
      }
    },
    toggleAdditionalLogging() {
      if (this.entry.id === this.showLogs) {
        this.$store.commit("imports/hideAdditionalLogs");
      } else {
        this.$store.commit("imports/showAdditionalLogsFor", this.entry.id);
      }
    }
  },
  computed: {
    ...mapState("imports", ["showAdditional", "showLogs"]),
    kind() {
      return this.entry.kind.toUpperCase();
    },
    hasAdditionalInfo() {
      return this.entry.state == "pending" && this.isApprovedGaugeMeasurement;
    },
    isFairwayDimension() {
      return this.kind === "FD";
    },
    isApprovedGaugeMeasurement() {
      return this.kind === "AGM";
    },
    isBottleneck() {
      return this.kind === "BN" || this.kind === "UBN";
    },
    isStretch() {
      return this.kind === "ST";
    },
    isSoundingResult() {
      return this.kind === "SR";
    }
  }
};
</script>

<style lang="scss" scoped></style>