Home Page
+ Added Information + First and Second Entrie
This commit is contained in:
@@ -14,8 +14,16 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 0,
|
"SelectedChildIndex": 2,
|
||||||
"Children": [
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 0,
|
||||||
@@ -24,19 +32,11 @@
|
|||||||
"RelativeDocumentMoniker": "API\\Program.cs",
|
"RelativeDocumentMoniker": "API\\Program.cs",
|
||||||
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
|
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
|
||||||
"RelativeToolTip": "API\\Program.cs",
|
"RelativeToolTip": "API\\Program.cs",
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAXAAAAAAAAAA==",
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-10-05T16:26:39.39Z",
|
"WhenOpened": "2025-10-05T16:26:39.39Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"$type": "Bookmark",
|
"$type": "Bookmark",
|
||||||
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
|
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
|
||||||
|
|||||||
@@ -14,8 +14,16 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 0,
|
"SelectedChildIndex": 2,
|
||||||
"Children": [
|
"Children": [
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Bookmark",
|
||||||
|
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 0,
|
||||||
@@ -24,19 +32,11 @@
|
|||||||
"RelativeDocumentMoniker": "API\\Program.cs",
|
"RelativeDocumentMoniker": "API\\Program.cs",
|
||||||
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
|
"ToolTip": "D:\\Programmieren\\CSharp\\JudoWeb\\API\\Program.cs",
|
||||||
"RelativeToolTip": "API\\Program.cs",
|
"RelativeToolTip": "API\\Program.cs",
|
||||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAXAAAAAAAAAA==",
|
"ViewState": "AgIAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAA==",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-10-05T16:26:39.39Z",
|
"WhenOpened": "2025-10-05T16:26:39.39Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{0174dea2-fdbe-4ef1-8f99-c0beae78880f}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Bookmark",
|
|
||||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"$type": "Bookmark",
|
"$type": "Bookmark",
|
||||||
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
|
"Name": "ST:0:0:{cce594b6-0c39-4442-ba28-10c64ac7e89f}"
|
||||||
|
|||||||
BIN
GUI/public/static/images/startPage.png
Normal file
BIN
GUI/public/static/images/startPage.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 MiB |
BIN
GUI/public/static/images/whatsJudo/hold.jpg
Normal file
BIN
GUI/public/static/images/whatsJudo/hold.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.9 MiB |
BIN
GUI/public/static/images/whatsJudo/stabil.jpg
Normal file
BIN
GUI/public/static/images/whatsJudo/stabil.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 282 KiB |
BIN
GUI/public/static/images/whatsJudo/throw.jpg
Normal file
BIN
GUI/public/static/images/whatsJudo/throw.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.0 MiB |
@@ -19,7 +19,11 @@ function toggleDrawer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
theme.change(localStorage.getItem('theme') || 'light');
|
theme.change(
|
||||||
|
localStorage.getItem('theme') || window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||||
|
? 'dark'
|
||||||
|
: 'light',
|
||||||
|
);
|
||||||
showDrawer.value = localStorage.getItem('drawer')?.startsWith('Y') || false;
|
showDrawer.value = localStorage.getItem('drawer')?.startsWith('Y') || false;
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
@@ -40,7 +44,9 @@ onMounted(() => {
|
|||||||
<v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon>
|
<v-app-bar-nav-icon @click="toggleDrawer()"></v-app-bar-nav-icon>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<v-app-bar-title class="title"> Judoteam - Stadtlohn </v-app-bar-title>
|
<v-app-bar-title class="title" @click="$router.push({ name: 'Home' })"
|
||||||
|
><span class="pointer">Judoteam - Stadtlohn</span></v-app-bar-title
|
||||||
|
>
|
||||||
|
|
||||||
<v-tooltip>
|
<v-tooltip>
|
||||||
<template #activator="{ props }">
|
<template #activator="{ props }">
|
||||||
|
|||||||
29
GUI/src/components/CarouseWithTitle.vue
Normal file
29
GUI/src/components/CarouseWithTitle.vue
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
const props = defineProps({
|
||||||
|
image: String,
|
||||||
|
text: String,
|
||||||
|
noCover: Boolean,
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<v-carousel-item :src="props.image" :cover="!props.noCover">
|
||||||
|
<template #default>
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="text-h CarouselWithTitleText">{{ text }}</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</v-carousel-item>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.CarouselWithTitleText{
|
||||||
|
background-color: rgb(0, 0, 0, 0.65);
|
||||||
|
color: white;
|
||||||
|
display: inline-block;
|
||||||
|
padding: 2px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-left: 10px;
|
||||||
|
border-radius: 0px 0px 8px 8px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
112
GUI/src/components/HomeEntrie.vue
Normal file
112
GUI/src/components/HomeEntrie.vue
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { computed } from 'vue';
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
title: String,
|
||||||
|
noMarginTop: Boolean,
|
||||||
|
extraBesideText: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
extraWidthPercent: {
|
||||||
|
type: Number,
|
||||||
|
default: 30,
|
||||||
|
},
|
||||||
|
titleInSplitRight: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const normalizedExtraWidth = computed(() => {
|
||||||
|
const width = Number.isFinite(props.extraWidthPercent)
|
||||||
|
? props.extraWidthPercent
|
||||||
|
: 30;
|
||||||
|
|
||||||
|
return Math.min(100, Math.max(0, width));
|
||||||
|
});
|
||||||
|
|
||||||
|
const textWidthPercent = computed(() => 100 - normalizedExtraWidth.value);
|
||||||
|
|
||||||
|
const extraWidthStyle = computed(() => ({
|
||||||
|
flexBasis: `${normalizedExtraWidth.value}%`,
|
||||||
|
maxWidth: `${normalizedExtraWidth.value}%`,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const textWidthStyle = computed(() => ({
|
||||||
|
flexBasis: `${textWidthPercent.value}%`,
|
||||||
|
maxWidth: `${textWidthPercent.value}%`,
|
||||||
|
}));
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div :class="{ 'mt-5': !noMarginTop }">
|
||||||
|
<template v-if="props.extraBesideText">
|
||||||
|
<h3 v-if="!props.titleInSplitRight" class="text-h4 font-weight-bold">
|
||||||
|
{{ props.title }}
|
||||||
|
</h3>
|
||||||
|
<div class="entry-content entry-content--split">
|
||||||
|
<div class="entry-content__extra" :style="extraWidthStyle">
|
||||||
|
<slot name="extra" />
|
||||||
|
</div>
|
||||||
|
<div class="entry-content__text" :style="textWidthStyle">
|
||||||
|
<h3
|
||||||
|
v-if="props.titleInSplitRight"
|
||||||
|
class="text-h4 font-weight-bold"
|
||||||
|
>
|
||||||
|
{{ props.title }}
|
||||||
|
</h3>
|
||||||
|
<p class="text-subtitle-1">
|
||||||
|
<slot name="text" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<h3 class="text-h4 font-weight-bold">{{ props.title }}</h3>
|
||||||
|
<p class="text-subtitle-1">
|
||||||
|
<slot name="text" />
|
||||||
|
</p>
|
||||||
|
<slot name="extra" />
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.entry-content {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.5rem;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content--split {
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content__extra,
|
||||||
|
.entry-content__text {
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content__extra {
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content__text {
|
||||||
|
flex: 1 1 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 600px) {
|
||||||
|
.entry-content--split {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.entry-content__extra,
|
||||||
|
.entry-content__text {
|
||||||
|
flex-basis: auto !important;
|
||||||
|
max-width: 100% !important;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -2,10 +2,7 @@
|
|||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.whiteTransp {
|
.pointer{
|
||||||
background-color: rgba(255, 255, 255, 0.5);
|
cursor: pointer;
|
||||||
}
|
user-select: none;
|
||||||
|
|
||||||
.blackTransp {
|
|
||||||
background-color: rgb(0, 0, 0, 0.5);
|
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,60 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useTheme } from 'vuetify';
|
import CarouseWithTitle from '@/components/CarouseWithTitle.vue';
|
||||||
|
import HomeEntrie from '@/components/HomeEntrie.vue';
|
||||||
const theme = useTheme();
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<v-container fluid>
|
<v-container fluid>
|
||||||
<v-img
|
<v-img class="rounded-lg" height="40vh" src="/static/images/startPage.png" cover />
|
||||||
|
|
||||||
|
<main>
|
||||||
|
<v-container
|
||||||
|
id="main"
|
||||||
|
:style="{
|
||||||
|
maxWidth: $vuetify.display.smAndDown ? '100vw' : '60vw',
|
||||||
|
}"
|
||||||
|
fluid
|
||||||
|
>
|
||||||
|
<home-entrie title="Herzlich Willkommen!">
|
||||||
|
<template #text>
|
||||||
|
<b>Schön, dass du den Weg zu uns gefunden hast!</b> Egal, ob du schon lange dabei bist
|
||||||
|
oder das erste Mal von Judo hörst – wir freuen uns, dich bald (wieder) in unserem
|
||||||
|
<b>Judozentrum</b>
|
||||||
|
(Dojo) begrüßen zu dürfen.
|
||||||
|
</template>
|
||||||
|
</home-entrie>
|
||||||
|
<home-entrie
|
||||||
|
title="Was ist Judo?"
|
||||||
|
extra-beside-text
|
||||||
|
:extra-width-percent="50"
|
||||||
|
title-in-split-right
|
||||||
|
>
|
||||||
|
<template #text>
|
||||||
|
Judo ist eine Sportart, welche den ganzen Körper fordert, fördert und beansprucht. Es
|
||||||
|
werden also <b>sämtliche Muskelgruppen, sowie das Köpfchen bei uns trainiert. </b>
|
||||||
|
<b>Judo bedeutet übersetzt “der sanfte Weg”.</b> Daraus lässt sich ja schon erahnen,
|
||||||
|
dass Judo eine Kampfsportart ist bei der das "Schlagen" oder "Treten" des Gegners
|
||||||
|
verboten ist. Beim Judo beschränkt man sich rein auf das <b>Werfen</b>,
|
||||||
|
<b>fixieren am Boden</b>, <b>Hebeln</b> und <b>Hebeln</b> (nur für die älteren) des
|
||||||
|
Partners/Gegners.
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template #extra>
|
||||||
|
<v-carousel
|
||||||
|
show-arrows="hover"
|
||||||
|
hide-delimiter-background
|
||||||
class="rounded-lg"
|
class="rounded-lg"
|
||||||
height="30vh"
|
cycle
|
||||||
src="/static/images/house/front.jpg"
|
interval="6000"
|
||||||
cover
|
>
|
||||||
:gradient="
|
<carouse-with-title text="Werfen" image="/static/images/whatsJudo/throw.jpg"/>
|
||||||
theme.name.value === 'dark'
|
<carouse-with-title text="fixieren am Boden" image="/static/images/whatsJudo/hold.jpg"/>
|
||||||
? 'rgba(0,0,0,0.5), rgba(0,0,0,0.5)'
|
<carouse-with-title text="Trainieren aller Muskelgruppen" image="/static/images/whatsJudo/stabil.jpg"/>
|
||||||
: 'rgba(255,255,255,0.5), rgba(255,255,255,0.5)'
|
</v-carousel>
|
||||||
"
|
</template>
|
||||||
/>
|
</home-entrie>
|
||||||
|
</v-container>
|
||||||
|
</main>
|
||||||
</v-container>
|
</v-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user