|
@@ -1,7 +1,12 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <header>
|
|
|
|
|
|
|
+ <header ref="header">
|
|
|
<div class="logo">
|
|
<div class="logo">
|
|
|
- <span>RedstoneServer</span>
|
|
|
|
|
|
|
+ <div class="small">
|
|
|
|
|
+ <span> RS </span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="big">
|
|
|
|
|
+ <span> RedstoneServer </span>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<nav ref="navigation">
|
|
<nav ref="navigation">
|
|
@@ -18,7 +23,8 @@
|
|
|
|
|
|
|
|
<div class="user">
|
|
<div class="user">
|
|
|
<div v-if="user">
|
|
<div v-if="user">
|
|
|
- <span>Username: {{ user.username }} </span>
|
|
|
|
|
|
|
+ <span v-if="!compressed">Username: {{ user.username }} </span>
|
|
|
|
|
+ <span v-else>Hi, {{ user.username }} </span>
|
|
|
<span class="link" @click="logout">Logout</span>
|
|
<span class="link" @click="logout">Logout</span>
|
|
|
</div>
|
|
</div>
|
|
|
<router-link class="link" to="/login" v-else>Login</router-link>
|
|
<router-link class="link" to="/login" v-else>Login</router-link>
|
|
@@ -46,6 +52,7 @@
|
|
|
},
|
|
},
|
|
|
primary: [],
|
|
primary: [],
|
|
|
secondary: [],
|
|
secondary: [],
|
|
|
|
|
+ compressed: false,
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
created() {
|
|
created() {
|
|
@@ -62,6 +69,7 @@
|
|
|
updateMenu() {
|
|
updateMenu() {
|
|
|
//Empty to measure the whole available space.
|
|
//Empty to measure the whole available space.
|
|
|
this.primary = []
|
|
this.primary = []
|
|
|
|
|
+ this.compressed = false
|
|
|
|
|
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
|
let menubar = this.$refs.topbar
|
|
let menubar = this.$refs.topbar
|
|
@@ -93,6 +101,14 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
this.secondary = this.secondary.concat(this.intLinks.secondary)
|
|
this.secondary = this.secondary.concat(this.intLinks.secondary)
|
|
|
|
|
+
|
|
|
|
|
+ //TODO: Improve, set dropdown to middle when this mode.
|
|
|
|
|
+ //Check if there is still no space, if so, minimized view.
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if(this.$refs.header.scrollWidth > (window.innerWidth || document.documentElement.clientWidth)) {
|
|
|
|
|
+ this.compressed = true
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
@@ -138,9 +154,16 @@
|
|
|
|
|
|
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
|
background-color: #222;
|
|
background-color: #222;
|
|
|
|
|
+
|
|
|
|
|
+ font-size: 1.5em;
|
|
|
}
|
|
}
|
|
|
nav {
|
|
nav {
|
|
|
flex-grow: 100;
|
|
flex-grow: 100;
|
|
|
|
|
+
|
|
|
|
|
+ /* try permanent? */
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -194,4 +217,25 @@
|
|
|
border-right: none;
|
|
border-right: none;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ Header compression:
|
|
|
|
|
+ */
|
|
|
|
|
+ .logo > .small {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 600px) {
|
|
|
|
|
+ /* Switch to the small logo */
|
|
|
|
|
+ .logo > .small {
|
|
|
|
|
+ display: initial;
|
|
|
|
|
+ }
|
|
|
|
|
+ .logo > .big {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /* Center the dropdown menu */
|
|
|
|
|
+ .wrapper {
|
|
|
|
|
+ position: initial;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
</style>
|
|
</style>
|