Changeset View
Changeset View
Standalone View
Standalone View
src/resources/vue/Widgets/Menu.vue
<template> | <template> | ||||
<nav :id="mode + '-menu'" class="navbar navbar-expand-lg navbar-light"> | <nav :id="mode + '-menu'" class="navbar navbar-expand-lg navbar-light"> | ||||
<div class="container"> | <div class="container"> | ||||
<router-link class="navbar-brand" to="/"> | <router-link class="navbar-brand" to="/" v-html="$root.logo(mode)"></router-link> | ||||
<img :src="appUrl + themeDir + '/images/logo_' + mode + '.png'" :alt="appName"> | |||||
</router-link> | |||||
<button v-if="mode == 'header'" class="navbar-toggler" type="button" | <button v-if="mode == 'header'" class="navbar-toggler" type="button" | ||||
data-toggle="collapse" :data-target="'#' + mode + '-menu-navbar'" | data-toggle="collapse" :data-target="'#' + mode + '-menu-navbar'" | ||||
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation" | aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation" | ||||
> | > | ||||
<span class="navbar-toggler-icon"></span> | <span class="navbar-toggler-icon"></span> | ||||
</button> | </button> | ||||
<div :id="mode + '-menu-navbar'" :class="'navbar' + (mode == 'header' ? ' collapse navbar-collapse' : '')"> | <div :id="mode + '-menu-navbar'" :class="'navbar' + (mode == 'header' ? ' collapse navbar-collapse' : '')"> | ||||
<ul class="navbar-nav"> | <ul class="navbar-nav"> | ||||
Show All 31 Lines | |||||
</template> | </template> | ||||
<script> | <script> | ||||
export default { | export default { | ||||
props: { | props: { | ||||
mode: { type: String, default: 'header' }, | mode: { type: String, default: 'header' }, | ||||
footer: { type: String, default: '' } | footer: { type: String, default: '' } | ||||
}, | }, | ||||
data() { | |||||
return { | |||||
appName: window.config['app.name'], | |||||
appUrl: window.config['app.url'], | |||||
themeDir: '/themes/' + window.config['app.theme'] | |||||
} | |||||
}, | |||||
computed: { | computed: { | ||||
loggedIn() { return this.$store.state.isLoggedIn }, | loggedIn() { return this.$store.state.isLoggedIn }, | ||||
route() { return this.$route.name } | route() { return this.$route.name } | ||||
}, | }, | ||||
mounted() { | mounted() { | ||||
// On mobile close the menu when the menu item is clicked | // On mobile close the menu when the menu item is clicked | ||||
if (this.mode == 'header') { | if (this.mode == 'header') { | ||||
$('#header-menu .navbar').on('click', function() { $(this).removeClass('show') }) | $('#header-menu .navbar').on('click', function() { $(this).removeClass('show') }) | ||||
Show All 40 Lines |