view client/src/application/User.vue @ 622:47f11401d999

feat: Usermenu is now collapsible
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 11 Sep 2018 14:14:43 +0200
parents b17a4482d07d
children d4fa28bfa6ec
line wrap: on
line source

<template>
    <div :class="userManagementStyle">
        <img @click="extendUserMenu" class="userpic" src="../application/assets/user.png">
        <span v-if="!isUsermenuCollapsed" class="username align-self-center">{{ userinfo }}</span>
        <span v-if="!isUsermenuCollapsed" class="logout align-self-center" @click="logoff">
            <i class="fa fa-power-off"></i>
        </span>
    </div>
</template>

<style lang="scss">
.usermanagement {
  background: white;
  margin-left: 1rem;
  padding: 0.25rem;
  border-radius: 5px;
}

.usermanagementcollapsed {
  width: 50px;
}

.usermanagementexpanded {
  width: 150px;
}
</style>

<script>
import { mapGetters } from "vuex";
export default {
  name: "user",
  data() {
    return {};
  },
  methods: {
    extendUserMenu() {
      this.$store.commit("application/toggleUserMenu");
    },
    logoff() {
      this.$store.commit("user/clear_auth");
      this.$store.commit("application/resetSidebar");
      this.$store.commit("application/resetUserMenu");
      this.$router.push("/login");
    }
  },
  computed: {
    ...mapGetters("user", ["userinfo"]),
    ...mapGetters("application", ["isUsermenuCollapsed"]),
    userManagementStyle() {
      return {
        "ui-element": true,
        "d-flex": true,
        "flex-row": true,
        "justify-content-around": true,
        usermanagement: true,
        usermanagementcollapsed: this.isUsermenuCollapsed,
        usermanagementexpanded: !this.isUsermenuCollapsed,
        shadow: true
      };
    }
  }
};
</script>