view client/src/layers/Layerselect.vue @ 1207:70116d392387

close bottleneck list: made searchbar collapse only if it was collapsed before opening the bottleneck list will expand the searchbar, closing the bottleneck list was always collapsing the searchbar too. Now it stays open if it was open beforeopening the bottleneck list
author Markus Kottlaender <markus@intevation.de>
date Mon, 19 Nov 2018 13:02:48 +0100
parents b23622905a3f
children d1114305a311
line wrap: on
line source

<template>
    <div>
        <div class="form-check d-flex flex-row flex-start selection">
            <input class="form-check-input" @change="visibilityToggled" :id="layername" type="checkbox" :checked="isVisible">
            <LegendElement :layername="layername" :layerindex="layerindex"></LegendElement>
            <label class="layername form-check-label">{{layername}}</label>
        </div>
        <div v-if="isVisible && (layername == 'Bottleneck isolines')" class="card">
            <img class="rounded mx-auto d-block" :src="isolinesLegendImgUrl">
        </div>
    </div>
</template>

<style lang="sass" scoped>
.selection
  text-align: left

.layername
  margin-left: $small-offset
</style>


<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 "../application/lib/http";
import LegendElement from "./LegendElement.vue";
export default {
  props: ["layername", "layerindex", "isVisible"],
  name: "layerselect",
  data() {
    return {
      isolinesLegendImgUrl: ""
    };
  },
  components: {
    LegendElement
  },
  methods: {
    visibilityToggled() {
      this.$emit("visibilityToggled", this.layerindex);
    }
  },
  created() {
    // fetch legend image for bottleneck isolines
    // TODO: move to store
    if (this.layername == "Bottleneck isolines") {
      const src =
        "/internal/wms?REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&LAYER=sounding_results_contour_lines_geoserver&legend_options=columns:4;fontAntiAliasing:true";
      HTTP.get(src, {
        headers: {
          Accept: "image/png",
          "X-Gemma-Auth": localStorage.getItem("token")
        },
        responseType: "blob"
      }).then(response => {
        var urlCreator = window.URL || window.webkitURL;
        this.isolinesLegendImgUrl = urlCreator.createObjectURL(response.data);
      });
    }
  }
};
</script>