Skip to content

Commit a982951

Browse files
committed
feat: initial work for admin navigation, widen viewport and change nav in admin views
1 parent 3aa9ecc commit a982951

File tree

2 files changed

+70
-26
lines changed

2 files changed

+70
-26
lines changed
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<template>
2+
<ul class="menu-left">
3+
<li>
4+
<a href="" class="menu-btn-selected">
5+
<i class="fa fa-cogs"></i><span class="hide-mobile">&nbsp;&nbsp;&nbsp;Settings</span>
6+
</a>
7+
</li>
8+
<li>
9+
<a href="" class="menu-btn">
10+
<i class="fa fa-briefcase"></i>
11+
<span class="hide-mobile">&nbsp;&nbsp;&nbsp;Management</span>
12+
</a>
13+
</li>
14+
<li>
15+
<a href="" class="menu-btn">
16+
<i class="fa fa-users"></i>
17+
<span class="hide-mobile">&nbsp;&nbsp;&nbsp;Moderation</span>
18+
</a>
19+
</li>
20+
</ul>
21+
</template>
22+
23+
<script>
24+
export default {
25+
name: 'AdminNavigation',
26+
setup() {
27+
}
28+
}
29+
</script>

src/components/layout/Header.vue

+41-26
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,15 @@
6969
<div class="header-contents">
7070
<!-- Menu -->
7171
<div id="menu-wrap" :class="{ 'mobile-expanded' : focusSearch }">
72-
<nav id="menu" :class="{ 'admin' : adminMode }">
72+
<nav id="menu" :class="{ 'admin-menu' : adminMode }">
7373
<!-- Logo Section -->
74-
<h1>
74+
<h1 :class="{ 'hide-mobile': adminMode }">
7575
<router-link to="/" v-if="logo"><img :src="logo" id="logo" /></router-link>
7676
<router-link id="logo-text" to="/"> <!-- ng-bind="{{decode(title)}}" -->
7777
Epochtalk Forums
7878
</router-link>
7979
</h1>
80+
<admin-navigation v-if="adminMode" />
8081

8182
<!-- Login Section -->
8283
<ul class="signed-out" v-if="!loggedIn">
@@ -102,7 +103,8 @@
102103
</ul>
103104

104105
<!-- User Dropdown -->
105-
<ul v-if="loggedIn">
106+
<ul v-if="loggedIn" :class="{ 'menu-right': adminMode }">
107+
<li class="back-to-forum"><router-link :to="{ path: '/' }">Back to Forum</router-link></li>
106108
<li class="search" v-if="permissionUtils.hasPermission('posts.search.allow')">
107109
<form action="." class="search-btn" autocomplete="off" @submit.prevent="searchForum">
108110
<div class="balloon" data-balloon="Search" data-balloon-pos="down">
@@ -227,10 +229,9 @@
227229
</div>
228230

229231
<!-- Breadcrumbs -->
230-
<breadcrumbs v-if="!adminMode"></breadcrumbs>
231-
232+
<breadcrumbs v-if="!adminMode" />
232233
<!-- Alerts -->
233-
<alert></alert>
234+
<alert />
234235

235236
<!-- Bans -->
236237
<div id="ban-notice" v-if="BanStore.updateBanNotice()" v-html="BanStore.updateBanNotice()"></div>
@@ -259,6 +260,7 @@ import LoginModal from '@/components/modals/auth/Login.vue'
259260
import InviteModal from '@/components/modals/auth/Invite.vue'
260261
import RegisterModal from '@/components/modals/auth/Register.vue'
261262
import Breadcrumbs from '@/components/layout/Breadcrumbs.vue'
263+
import AdminNavigation from '@/components/layout/AdminNavigation.vue'
262264
import decode from '@/composables/filters/decode'
263265
import { AuthStore } from '@/composables/stores/auth'
264266
import { PreferencesStore } from '@/composables/stores/prefs'
@@ -272,7 +274,7 @@ import { motdApi } from '@/api'
272274
import { watchPublicChannel } from '@/composables/services/websocket'
273275
274276
export default {
275-
components: { Breadcrumbs, LoginModal, InviteModal, RegisterModal, Alert },
277+
components: { AdminNavigation, Breadcrumbs, LoginModal, InviteModal, RegisterModal, Alert },
276278
setup() {
277279
onBeforeMount(() => {
278280
let fetchMotd = () => motdApi.get().then(d => v.motdData = d).catch(() => {})
@@ -582,7 +584,18 @@ header {
582584
583585
#menu {
584586
@include base-layout-width;
585-
&.admin { max-width: unset; }
587+
&.admin-menu {
588+
max-width: unset;
589+
.burger-icon {
590+
display: none;
591+
@include break-mobile-sm {
592+
display: flex;
593+
flex: 0;
594+
order: 3;
595+
justify-content: flex-end;
596+
}
597+
}
598+
}
586599
h1 {
587600
float: left;
588601
font-family: $base-font-sans;
@@ -648,6 +661,7 @@ header {
648661
height: inherit;
649662
div a { text-decoration: none; }
650663
}
664+
li.back-to-forum { display: none; }
651665
form, form div { height: inherit; }
652666
.search {
653667
position: relative;
@@ -976,22 +990,11 @@ header {
976990
}
977991
#menu.admin-menu {
978992
display: flex;
979-
980-
.brand {
981-
display: flex;
982-
align-items: center;
983-
font-size: 1.3rem;
984-
margin-right: 1rem;
985-
986-
.brandLogo {
987-
width: 2rem;
988-
margin-right: 0.5rem;
989-
max-height: 2rem;
990-
}
991-
}
992-
993-
#menu-left {
993+
.menu-left {
994994
float: left;
995+
margin-left: 2rem;
996+
@include break-mobile-sm { order: 1; margin-left: 0; }
997+
995998
.menu-btn, .menu-btn-selected {
996999
padding: 0 0.8rem;
9971000
display: table-cell;
@@ -1000,19 +1003,31 @@ header {
10001003
}
10011004
.menu-btn-selected { background-color: $header-dropdown-bg-color; border-bottom: 2px solid $color-primary; }
10021005
}
1003-
#menu-right {
1006+
.menu-right {
10041007
display: flex;
1005-
flex: 1 0 auto;
1008+
flex: 1;
1009+
order: 2;
10061010
justify-content: flex-end;
1011+
margin-left: auto;
1012+
1013+
li.back-to-forum { display: none; }
10071014
1008-
li:first-child, li:nth-child(2n) {
1015+
li:first-child, li:nth-child(2n):not(.search) {
10091016
padding-right: 0.8rem;
10101017
a {
10111018
display: table-cell;
10121019
height: inherit;
10131020
vertical-align: middle;
10141021
}
10151022
}
1023+
@include break-mobile-sm {
1024+
li { display: none; }
1025+
li.back-to-forum { display: table-cell; }
1026+
}
1027+
@include break-mobile-med {
1028+
li.search { display: none; }
1029+
li#notifications-tray { display: none; }
1030+
}
10161031
}
10171032
}
10181033
}

0 commit comments

Comments
 (0)