Add footer with links and update UI/UX consistency

This commit is contained in:
2026-01-25 13:00:25 +01:00
parent e4862f1878
commit facc84157c
7 changed files with 46 additions and 13 deletions

View File

@@ -59,7 +59,10 @@ watch(
/> />
</template> </template>
<template v-slot:prepend> <template v-slot:prepend>
<v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon> <v-app-bar-nav-icon
v-tooltip="!showDrawer ? 'Menü öffnen' : 'Menü schließen'"
@click="toggleDrawer()"
></v-app-bar-nav-icon>
</template> </template>
<v-app-bar-title class="title" @click="$router.push({ name: 'Home' })" <v-app-bar-title class="title" @click="$router.push({ name: 'Home' })"
@@ -106,6 +109,21 @@ watch(
<v-main> <v-main>
<router-view></router-view> <router-view></router-view>
<v-footer
class="d-flex align-center justify-center ga-2 flex-wrap flex-grow-1 py-3"
>
<v-btn
v-for="link in routes.filter((x) => x.visible === Visibility.Footer)"
:key="link.path"
:to="link.path"
:text="link.name"
variant="text"
rounded
></v-btn>
<div class="flex-1-0-100 text-center mt-2">
{{ new Date().getFullYear() }} <strong>Judoteam - Stadtlohn</strong>
</div>
</v-footer>
</v-main> </v-main>
</v-app> </v-app>
</template> </template>

View File

@@ -24,6 +24,6 @@ const props = defineProps({
padding: 2px; padding: 2px;
padding-right: 10px; padding-right: 10px;
padding-left: 10px; padding-left: 10px;
border-radius: 0px 0px 8px 8px; border-radius: 0px 0px var(--default-radius) var(--default-radius);
} }
</style> </style>

View File

@@ -1,3 +1,8 @@
:root{
--default-radius: 7px;
--red-color: #b62b2b
}
.title { .title {
font-weight: 600; font-weight: 600;
} }

View File

@@ -5,8 +5,11 @@ import Login from '@/routes/authentication/Login.vue';
export enum Visibility { export enum Visibility {
Hidden, Hidden,
Authenticated,
Unauthenticated,
Authorized, Authorized,
Public Public,
Footer,
} }
@@ -15,8 +18,9 @@ export interface LayoutRoute {
name: string, name: string,
description: string, description: string,
icon: string, icon: string,
disableFooter?: boolean,
visible: Visibility, visible: Visibility,
meta: RouteRecordRaw meta?: RouteRecordRaw
} }
export const routes: LayoutRoute[] = [ export const routes: LayoutRoute[] = [
@@ -44,6 +48,13 @@ export const routes: LayoutRoute[] = [
component: Login component: Login
} }
}, },
{
path: "/impressum",
name: "Impressum",
description: "Impressum der Anwendung",
icon: "mdi-file-document",
visible: Visibility.Footer
},
{ {
path: "/notFound", path: "/notFound",
name: "Nicht Gefunden", name: "Nicht Gefunden",

View File

@@ -1,9 +1,9 @@
import { createRouter, createWebHistory } from 'vue-router' import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router';
import { routes } from '@/plugins/routesLayout' import { routes } from '@/plugins/routesLayout'
const router = createRouter({ const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL), history: createWebHistory(import.meta.env.BASE_URL),
routes: routes.map(x => x.meta) routes: routes.filter(x => x.meta !== undefined).map(x => x.meta) as RouteRecordRaw[]
}) })
export default router export default router

View File

@@ -14,7 +14,6 @@ const tabItems = [
<template> <template>
<v-container fluid> <v-container fluid>
<v-img class="rounded-lg" height="40vh" src="/static/images/startPage.png" cover /> <v-img class="rounded-lg" height="40vh" src="/static/images/startPage.png" cover />
<main> <main>
<v-container <v-container
id="main" id="main"

View File

@@ -1,9 +1,9 @@
<script setup lang="ts"> <script setup lang="ts"></script>
</script>
<template> <template>
<h1>Login</h1> <v-container class="">
<h1>Potenzieller Login</h1>
</v-container>
</template> </template>
<style scoped></style> <style scoped></style>