add router for navbar and default routes for the non existing pages
This commit is contained in:
@ -1,61 +1,64 @@
|
|||||||
<template>
|
<template>
|
||||||
<aside :class="['navbar', darkMode ? 'navbar-darkmode' : 'navbar-lightmode', isExpanded ? 'is-expanded' : 'is-not-expanded']" >
|
<aside
|
||||||
|
:class="['navbar', darkMode ? 'navbar-darkmode' : 'navbar-lightmode', isExpanded ? 'is-expanded' : 'is-not-expanded']">
|
||||||
<div class="toggle">
|
<div class="toggle">
|
||||||
<div v-if="isExpanded" :class="['icon', darkMode ? 'back-darkmode' : 'back-lightmode' ]" id="back-icon">
|
<div v-if="isExpanded" :class="['icon', darkMode ? 'back-darkmode' : 'back-lightmode']" id="back-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy" src="../icons/Back-Icon.svg" />
|
||||||
loading="lazy" src="../icons/Back-Icon.svg" />
|
|
||||||
</div>
|
</div>
|
||||||
<div :class="['icon', darkMode ? 'indicator-darkmode' : 'indicator-lightmode' ]" id="indicator-icon" @click="toggleSidebar">
|
<div :class="['icon', darkMode ? 'indicator-darkmode' : 'indicator-lightmode']" id="indicator-icon"
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
@click="toggleSidebar">
|
||||||
loading="lazy" src="../icons/navbar-icons/Nav-Indicator-Icon-Opened.svg" />
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
|
src="../icons/navbar-icons/Nav-Indicator-Icon-Opened.svg" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="menus">
|
<div class="menus">
|
||||||
<nav id="home-menu" :class="[ darkMode ? 'menu-darkmode' : 'menu-lightmode' ]">
|
<nav id="home-menu" :class="[darkMode ? 'menu-darkmode' : 'menu-lightmode']">
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="home-button">
|
<router-link to="/home" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']"
|
||||||
|
id="home-button">
|
||||||
<div class="icon" id="home-icon">
|
<div class="icon" id="home-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Home-Icon.svg" />
|
src="../icons/navbar-icons/Home-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Home</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Home</span>
|
||||||
</button>
|
</router-link>
|
||||||
</nav>
|
</nav>
|
||||||
<nav id="site-menu">
|
<nav id="site-menu">
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="checklists-button">
|
<router-link to="/home" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']" id="checklists-button">
|
||||||
<div class="icon" id="checklists-icon">
|
<div class="icon" id="checklists-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Checklists-Icon.svg" />
|
src="../icons/navbar-icons/Checklists-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Checklists</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Checklists</span>
|
||||||
</button>
|
</router-link>
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="assets-button">
|
<router-link to="/home" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']" id="assets-button">
|
||||||
<div class="icon" id="assets-icon">
|
<div class="icon" id="assets-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Assets-Icon.svg" />
|
src="../icons/navbar-icons/Assets-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Config Items</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Config Items</span>
|
||||||
</button>
|
</router-link>
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="solutions-button">
|
<router-link to="/home" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']" id="solutions-button">
|
||||||
<div class="icon" id="solutions-icon">
|
<div class="icon" id="solutions-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Solutions-Icon.svg" />
|
src="../icons/navbar-icons/Solutions-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Solutions</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Solutions</span>
|
||||||
</button>
|
</router-link>
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="accounting-button">
|
<router-link to="/clients" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']" id="accounting-button">
|
||||||
<div class="icon" id="accounting-icon">
|
<div class="icon" id="accounting-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Accounting-Icon.svg" />
|
src="../icons/navbar-icons/Accounting-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Accounting</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Accounting</span>
|
||||||
</button>
|
</router-link>
|
||||||
<button :class="[ darkMode ? 'button-darkmode' : 'button-lightmode' ]" id="clients-button">
|
<router-link to="/clients" class="button" :class="[darkMode ? 'button-darkmode' : 'button-lightmode']"
|
||||||
|
id="clients-button">
|
||||||
<div class="icon" id="clients-icon">
|
<div class="icon" id="clients-icon">
|
||||||
<img :class="[ darkMode ? 'img-darkmode' : 'img-lightmode' ]"
|
<img :class="[darkMode ? 'img-darkmode' : 'img-lightmode']" loading="lazy"
|
||||||
loading="lazy" src="../icons/navbar-icons/Clients-Icon.svg" />
|
src="../icons/navbar-icons/Clients-Icon.svg" />
|
||||||
</div>
|
</div>
|
||||||
<pre v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode' ]">Clients</pre>
|
<span v-if="isExpanded" :class="['label', darkMode ? 'label-darkmode' : 'label-lightmode']">Clients</span>
|
||||||
</button>
|
</router-link>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
@ -64,7 +67,6 @@
|
|||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Navigationbar",
|
name: "Navigationbar",
|
||||||
data() {
|
data() {
|
||||||
@ -97,6 +99,7 @@ aside {
|
|||||||
width: 3.125rem;
|
width: 3.125rem;
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
aside.is-expanded {
|
aside.is-expanded {
|
||||||
width: 12.5rem;
|
width: 12.5rem;
|
||||||
}
|
}
|
||||||
@ -105,6 +108,7 @@ aside.is-expanded {
|
|||||||
opacity: 1;
|
opacity: 1;
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.is-not-expanded #indicator-icon {
|
.is-not-expanded #indicator-icon {
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
@ -122,10 +126,12 @@ aside.is-expanded {
|
|||||||
padding: 0.9375rem;
|
padding: 0.9375rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-darkmode {
|
.navbar-darkmode {
|
||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
background-color: #2C2C2C;
|
background-color: #2C2C2C;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-lightmode {
|
.navbar-lightmode {
|
||||||
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
box-shadow: 0.25rem 0.25rem 0.25rem 0rem rgba(0, 0, 0, 0.25);
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
@ -149,6 +155,7 @@ aside.is-expanded {
|
|||||||
padding: 1.25rem 0;
|
padding: 1.25rem 0;
|
||||||
gap: 1.875rem;
|
gap: 1.875rem;
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -158,17 +165,21 @@ nav {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 0.9375rem 0;
|
padding: 0.9375rem 0;
|
||||||
gap: 1.875rem;
|
gap: 1.875rem;
|
||||||
|
width: 92%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-darkmode {
|
.menu-darkmode {
|
||||||
border-bottom: 0.0625rem solid #8E8E8E;
|
border-bottom: 0.0625rem solid #8E8E8E;
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-lightmode {
|
.menu-lightmode {
|
||||||
border-bottom: 0.0625rem solid #BABABA;
|
border-bottom: 0.0625rem solid #BABABA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
button {
|
button,
|
||||||
|
a {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-self: stretch;
|
align-self: stretch;
|
||||||
@ -179,13 +190,18 @@ button {
|
|||||||
gap: 0.3125rem;
|
gap: 0.3125rem;
|
||||||
border: none;
|
border: none;
|
||||||
transition: 0.5s ease-in-out;
|
transition: 0.5s ease-in-out;
|
||||||
|
text-decoration: none;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button-darkmode {
|
.button-darkmode {
|
||||||
background-color: #2C2C2C;
|
background-color: #2C2C2C;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button-lightmode {
|
.button-lightmode {
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button-darkmode:hover,
|
.button-darkmode:hover,
|
||||||
.indicator-darkmode:hover,
|
.indicator-darkmode:hover,
|
||||||
.back-darkmode:hover {
|
.back-darkmode:hover {
|
||||||
@ -198,7 +214,6 @@ button {
|
|||||||
background-color: #ACACAC;
|
background-color: #ACACAC;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@ -208,7 +223,9 @@ button {
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
transition: 0.2s ease-in-out;
|
transition: 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
#back-icon, #indicator-icon {
|
|
||||||
|
#back-icon,
|
||||||
|
#indicator-icon {
|
||||||
width: 2.5rem;
|
width: 2.5rem;
|
||||||
height: 2.5rem;
|
height: 2.5rem;
|
||||||
border-radius: 0.3125rem;
|
border-radius: 0.3125rem;
|
||||||
@ -225,6 +242,7 @@ img {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: 0.2s ease-out;
|
transition: 0.2s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-darkmode {
|
.img-darkmode {
|
||||||
filter: invert(100%);
|
filter: invert(100%);
|
||||||
}
|
}
|
||||||
@ -238,9 +256,11 @@ img {
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: opacity 0.5s ease-out;
|
transition: opacity 0.5s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label-darkmode {
|
.label-darkmode {
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label-lightmode {
|
.label-lightmode {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|||||||
25
routerFrontend/index.js
Normal file
25
routerFrontend/index.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import { createRouter, createWebHistory } from 'vue-router';
|
||||||
|
import HomePage from '../pages/home.vue';
|
||||||
|
import ClientsPage from '../pages/clients.vue';
|
||||||
|
import LoginPage from '../pages/login.vue';
|
||||||
|
|
||||||
|
|
||||||
|
const router = createRouter({
|
||||||
|
history: createWebHistory(),
|
||||||
|
routes: [
|
||||||
|
{
|
||||||
|
path: '/',
|
||||||
|
component: LoginPage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/home',
|
||||||
|
component: HomePage
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/clients',
|
||||||
|
component: ClientsPage
|
||||||
|
},
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
export default router
|
||||||
Reference in New Issue
Block a user