navbar.vue 2.63 KB
Newer Older
Johannes Edmeier committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
<!--
  - Copyright 2014-2018 the original author or authors.
  -
  - Licensed under the Apache License, Version 2.0 (the "License");
  - you may not use this file except in compliance with the License.
  - You may obtain a copy of the License at
  -
  -     http://www.apache.org/licenses/LICENSE-2.0
  -
  - Unless required by applicable law or agreed to in writing, software
  - distributed under the License is distributed on an "AS IS" BASIS,
  - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  - See the License for the specific language governing permissions and
  - limitations under the License.
  -->

<template>
    <nav id="navigation" class="navbar is-fixed-top">
        <div class="container">
            <div class="navbar-brand">
21 22
                <a class="navbar-item logo" href="/">
                    <boot-logo></boot-logo>
Johannes Edmeier committed
23
                    Spring Boot Admin
Johannes Edmeier committed
24 25 26 27 28 29 30 31 32 33 34 35 36 37
                </a>
                <div class="navbar-burger burger" @click.stop="showMenu = !showMenu">
                    <span></span>
                    <span></span>
                    <span></span>
                </div>
            </div>
            <div class="navbar-menu" :class="{'is-active' : showMenu}">
                <div class="navbar-start">
                </div>
                <div class="navbar-end">
                    <router-link class="navbar-item" v-for="view in views" :to="{name: view.name}" :key="view.name"
                                 v-html="view.template">
                    </router-link>
38 39 40 41 42 43 44 45

                    <div class="navbar-item">
                        <form action="logout" method="post">
                            <button class="button is-icon" type="submit" value="logout">
                                Logout&nbsp;<font-awesome-icon icon="sign-out-alt" size="lg"></font-awesome-icon>
                            </button>
                        </form>
                    </div>
Johannes Edmeier committed
46 47 48 49 50 51 52
                </div>
            </div>
        </div>
    </nav>
</template>

<script>
53 54
  import bootLogo from '@/assets/img/boot-logo.svg';

Johannes Edmeier committed
55
  export default {
56 57 58
    components: {
      bootLogo
    },
Johannes Edmeier committed
59 60 61 62 63 64 65 66 67 68 69
    data: () => ({
      showMenu: false
    }),
    props: ['views'],
    mounted() {
      document.documentElement.classList.add('has-navbar-fixed-top');
    },
    beforeDestroy() {
      document.documentElement.classList.remove('has-navbar-fixed-top')
    }
  }
70 71 72 73 74 75 76
</script>

<style lang="scss">
    @import "~@/assets/css/utilities";

    .logo {
        font-size: 1.5rem;
Johannes Edmeier committed
77
        font-weight: 600;
78 79 80 81 82 83 84 85
        color: $white;

        & svg {
            fill: currentColor;
            padding-right: 0.5rem;
        }
    }
</style>