view client/src/App.vue @ 1073:7845c599f4c9

feat: zoombuttons
author Thomas Junk <thomas.junk@intevation.de>
date Fri, 26 Oct 2018 12:53:52 +0200
parents 1ff8c072df18
children 4a0b62876a5f
line wrap: on
line source

<template>
    <div id="app" class="main">
        <div v-if="isAuthenticated" class="d-flex flex-column userinterface">
            <div class="topcontainer">
                <Topbar :routeName="routeName"></Topbar>
            </div>
            <div class="midcontainer d-flex flex-row">
                <div class="leftcontainer">
                    <Sidebar></Sidebar>
                    <Zoom></Zoom>
                    <Bottlenecks></Bottlenecks>
                </div>
                <div class="middle"></div>
                <div class="rightcontainer"></div>
            </div>
            <div class="bottomcontainer d-flex flex-row align-items-end">
                <Userbar></Userbar>
                <Morphtool v-if="routeName == 'mainview'"></Morphtool>
                <Linetool v-if="routeName == 'mainview'"></Linetool>
                <Pdftool v-if="routeName == 'mainview'"></Pdftool>
            </div>
        </div>
        <div class="d-flex flex-column">
            <router-view/>
        </div>
    </div>
</template>

<style lang="scss">
html {
  height: 100%;
  width: 100%;
  margin: 0 auto;
}
body {
  height: 100%;
  width: 100%;
  background-color: #efefef !important;
}

.topcontainer {
  height: 10vh;
}

.bottomcontainer {
  height: 10vh;
}

.midcontainer {
  height: 80vh;
}

.rightcontainer {
  width: 20vw;
}

.leftcontainer {
  width: 20vw;
}

.middle {
  width: 60vw;
}

.userinterface {
  position: absolute;
  top: 0;
  left: 0;
  height: 100vh;
  width: 100vw;
  z-index: 4;
  pointer-events: none;
}

#app {
  height: 100vh;
  width: 100vw;
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}
</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>
 * Markus Kottländer <markus.kottlaender@intevation.de>
 */
import Sidebar from "./application/Sidebar";
import Bottlenecks from "./bottlenecks/Bottlenecks";
import Topbar from "./application/Topbar";
import { mapGetters } from "vuex";
import Userbar from "./application/Userbar";
import Linetool from "./linetool/Linetool";
import Morphtool from "./morphtool/Morphtool";
import Pdftool from "./pdftool/Pdftool";
import Zoom from "./zoom/zoom";

export default {
  name: "app",
  computed: {
    ...mapGetters("user", ["isAuthenticated"]),
    routeName() {
      const routeName = this.$route.name;
      return routeName;
    }
  },
  components: {
    Sidebar,
    Bottlenecks,
    Topbar,
    Userbar,
    Linetool,
    Morphtool,
    Pdftool,
    Zoom
  }
};
</script>