Update event management system by adding Uhrzeit to Termine; enhance data handling in API and CSV exports to accommodate new fields. Refactor Termine component for improved date and time formatting, ensuring accurate display of events. Clean up unused code in MannschaftenUebersicht and streamline layout in Mannschaften index page for better user experience.

This commit is contained in:
Torsten Schulz (local)
2025-11-05 13:22:57 +01:00
parent d6d9a31669
commit bc2f59bd1a
35 changed files with 653 additions and 929 deletions

View File

@@ -1,8 +0,0 @@
const Hero_vue_vue_type_style_index_0_scoped_779d39d7_lang = "@keyframes fadeIn-779d39d7{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in[data-v-779d39d7]{animation:fadeIn-779d39d7 .8s ease-out}.animate-fade-in-delay-1[data-v-779d39d7]{animation:fadeIn-779d39d7 .8s ease-out .2s both}.animate-fade-in-delay-2[data-v-779d39d7]{animation:fadeIn-779d39d7 .8s ease-out .4s both}";
const HeroStyles_03iOjY05 = [
Hero_vue_vue_type_style_index_0_scoped_779d39d7_lang
];
export { HeroStyles_03iOjY05 as default };
//# sourceMappingURL=Hero-styles.03iOjY05.mjs.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"Hero-styles.03iOjY05.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/Hero-styles.03iOjY05.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}

View File

@@ -1,8 +0,0 @@
const PublicNews_vue_vue_type_style_index_0_scoped_f894f108_lang = ".line-clamp-3[data-v-f894f108]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}";
const PublicNewsStyles_nhqk16g5 = [
PublicNews_vue_vue_type_style_index_0_scoped_f894f108_lang
];
export { PublicNewsStyles_nhqk16g5 as default };
//# sourceMappingURL=PublicNews-styles.nhqk16g5.mjs.map

View File

@@ -1 +0,0 @@
{"version":3,"file":"PublicNews-styles.nhqk16g5.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/PublicNews-styles.nhqk16g5.mjs"],"sourcesContent":null,"names":["style_0"],"mappings":"","x_google_ignoreList":[0]}

View File

@@ -98,17 +98,6 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js"
]
},
"_Cx4UcKGu.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "Cx4UcKGu.js",
"name": "external-link",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_DAACT36i.js": {
"resourceType": "script",
"module": true,
@@ -227,17 +216,6 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js"
]
},
"_jVj3QaoK.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "jVj3QaoK.js",
"name": "bar-chart",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_oN0_bS6A.js": {
"resourceType": "script",
"module": true,
@@ -261,7 +239,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D-Zvexq_.js",
"file": "BIgEmhqk.js",
"name": "auth",
"src": "middleware/auth.js",
"isDynamicEntry": true,
@@ -318,7 +296,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BBtX9g-c.js",
"file": "BEmwqjje.js",
"name": "entry",
"src": "node_modules/nuxt/dist/app/entry.js",
"isEntry": true,
@@ -328,14 +306,14 @@ const client_manifest = {
"node_modules/nuxt/dist/app/components/error-500.vue"
],
"css": [
"entry.WJcUQO4N.css"
"entry.CYvTzE5H.css"
],
"assets": [
"Harheimer TC.CKfYAfp1.svg"
]
},
"entry.WJcUQO4N.css": {
"file": "entry.WJcUQO4N.css",
"entry.CYvTzE5H.css": {
"file": "entry.CYvTzE5H.css",
"resourceType": "style",
"prefetch": true,
"preload": true
@@ -351,7 +329,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D7LlSYAz.js",
"file": "Bg-xR82b.js",
"name": "anlagen",
"src": "pages/anlagen.vue",
"isDynamicEntry": true,
@@ -365,7 +343,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D7wLfWza.js",
"file": "DTKApGrI.js",
"name": "benutzer",
"src": "pages/cms/benutzer.vue",
"isDynamicEntry": true,
@@ -381,7 +359,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BlTx75vv.js",
"file": "CKWZtWUB.js",
"name": "einstellungen",
"src": "pages/cms/einstellungen.vue",
"isDynamicEntry": true,
@@ -403,7 +381,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "G3v2TcOj.js",
"file": "GPPAkzQU.js",
"name": "geschichte",
"src": "pages/cms/geschichte.vue",
"isDynamicEntry": true,
@@ -417,7 +395,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CcTzWjtb.js",
"file": "CANvpwsn.js",
"name": "index",
"src": "pages/cms/index.vue",
"isDynamicEntry": true,
@@ -435,7 +413,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "XVGNuni0.js",
"file": "BHjJgyPQ.js",
"name": "mitgliedschaftsantraege",
"src": "pages/cms/mitgliedschaftsantraege.vue",
"isDynamicEntry": true,
@@ -449,7 +427,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CJOOzUp1.js",
"file": "gImTM9MK.js",
"name": "satzung",
"src": "pages/cms/satzung.vue",
"isDynamicEntry": true,
@@ -458,12 +436,26 @@ const client_manifest = {
"_Qy3ajxTk.js"
]
},
"pages/cms/spielplaene.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CjCrmuqT.js",
"name": "spielplaene",
"src": "pages/cms/spielplaene.vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js"
]
},
"pages/cms/termine.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CHELWMKR.js",
"file": "DsBHYVkM.js",
"name": "termine",
"src": "pages/cms/termine.vue",
"isDynamicEntry": true,
@@ -481,7 +473,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "lwS618zS.js",
"file": "B0O50Q40.js",
"name": "tt-regeln",
"src": "pages/cms/tt-regeln.vue",
"isDynamicEntry": true,
@@ -495,7 +487,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CfC7HTR7.js",
"file": "BuN7Api-.js",
"name": "ueber-uns",
"src": "pages/cms/ueber-uns.vue",
"isDynamicEntry": true,
@@ -504,12 +496,26 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js"
]
},
"pages/cms/vereinsmeisterschaften.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "Bs0YMkAX.js",
"name": "vereinsmeisterschaften",
"src": "pages/cms/vereinsmeisterschaften.vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js"
]
},
"pages/galerie.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "Bu6whu8C.js",
"file": "JRh__Fev.js",
"name": "galerie",
"src": "pages/galerie.vue",
"isDynamicEntry": true,
@@ -523,7 +529,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "Bqdk1y3w.js",
"file": "CHQH_CwJ.js",
"name": "geschichte",
"src": "pages/geschichte.vue",
"isDynamicEntry": true,
@@ -537,7 +543,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "SiWFe9PJ.js",
"file": "B9LKmM6w.js",
"name": "impressum",
"src": "pages/impressum.vue",
"isDynamicEntry": true,
@@ -552,7 +558,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B6R2Q32I.js",
"file": "z7RFtKay.js",
"name": "index",
"src": "pages/index.vue",
"isDynamicEntry": true,
@@ -564,11 +570,11 @@ const client_manifest = {
"_BC4PNGtJ.js"
],
"css": [
"index.ByttcLyP.css"
"index.D01TNCBR.css"
]
},
"index.ByttcLyP.css": {
"file": "index.ByttcLyP.css",
"index.D01TNCBR.css": {
"file": "index.D01TNCBR.css",
"resourceType": "style",
"prefetch": true,
"preload": true
@@ -578,7 +584,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "5IKOyEE8.js",
"file": "B7iv_v5q.js",
"name": "kontakt",
"src": "pages/kontakt.vue",
"isDynamicEntry": true,
@@ -596,7 +602,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "TnZylaYP.js",
"file": "BY3tjjYe.js",
"name": "login",
"src": "pages/login.vue",
"isDynamicEntry": true,
@@ -613,14 +619,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DrS211Qg.js",
"file": "B1VMaWHv.js",
"name": "_slug_",
"src": "pages/mannschaften/[slug].vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js",
"_jVj3QaoK.js"
"_Qy3ajxTk.js"
]
},
"pages/mannschaften/damen.vue": {
@@ -642,7 +647,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BEK-x74F.js",
"file": "BQ1JAN-t.js",
"name": "herren",
"src": "pages/mannschaften/herren.vue",
"isDynamicEntry": true,
@@ -656,13 +661,12 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CGF4oWdy.js",
"file": "rVkivqmM.js",
"name": "index",
"src": "pages/mannschaften/index.vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_jVj3QaoK.js",
"_DkeYb0_S.js",
"_Qy3ajxTk.js"
]
@@ -672,7 +676,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BOTV4xuv.js",
"file": "BWWcyQAZ.js",
"name": "jugend",
"src": "pages/mannschaften/jugend.vue",
"isDynamicEntry": true,
@@ -686,15 +690,13 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DmeaandR.js",
"file": "CtbKwxql.js",
"name": "spielplaene",
"src": "pages/mannschaften/spielplaene.vue",
"isDynamicEntry": true,
"imports": [
"_Qy3ajxTk.js",
"_BteKZQ9T.js",
"node_modules/nuxt/dist/app/entry.js",
"_Cx4UcKGu.js"
"_Qy3ajxTk.js"
]
},
"pages/mitgliederbereich/index.vue": {
@@ -702,7 +704,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DBoACobG.js",
"file": "WB0M-5W8.js",
"name": "index",
"src": "pages/mitgliederbereich/index.vue",
"isDynamicEntry": true,
@@ -719,7 +721,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BSvOuZsL.js",
"file": "DUnJ77Nu.js",
"name": "mitglieder",
"src": "pages/mitgliederbereich/mitglieder.vue",
"isDynamicEntry": true,
@@ -742,7 +744,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DwIxbZay.js",
"file": "DHTQ1uwI.js",
"name": "news",
"src": "pages/mitgliederbereich/news.vue",
"isDynamicEntry": true,
@@ -764,7 +766,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "C7eIgk1J.js",
"file": "D1wPw_Gu.js",
"name": "profil",
"src": "pages/mitgliederbereich/profil.vue",
"isDynamicEntry": true,
@@ -781,7 +783,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D9eqLvUd.js",
"file": "DEC6XYYJ.js",
"name": "mitgliedschaft",
"src": "pages/mitgliedschaft.vue",
"isDynamicEntry": true,
@@ -794,7 +796,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D8fhH48e.js",
"file": "DjM31nDA.js",
"name": "passwort-vergessen",
"src": "pages/passwort-vergessen.vue",
"isDynamicEntry": true,
@@ -811,7 +813,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DCJCzUpS.js",
"file": "BYVjJJfr.js",
"name": "registrieren",
"src": "pages/registrieren.vue",
"isDynamicEntry": true,
@@ -828,7 +830,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B45eiNl0.js",
"file": "DaUHoOti.js",
"name": "satzung",
"src": "pages/satzung.vue",
"isDynamicEntry": true,
@@ -838,12 +840,26 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js"
]
},
"pages/spielplan.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "C0hTJwq1.js",
"name": "spielplan",
"src": "pages/spielplan.vue",
"isDynamicEntry": true,
"imports": [
"_Qy3ajxTk.js",
"node_modules/nuxt/dist/app/entry.js"
]
},
"pages/spielsysteme.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CzngvAVI.js",
"file": "C27DLx1c.js",
"name": "spielsysteme",
"src": "pages/spielsysteme.vue",
"isDynamicEntry": true,
@@ -853,8 +869,7 @@ const client_manifest = {
"_YJHbYJtA.js",
"node_modules/nuxt/dist/app/entry.js",
"_DUm-savV.js",
"_CkzaQq3X.js",
"_Cx4UcKGu.js"
"_CkzaQq3X.js"
]
},
"pages/termine.vue": {
@@ -862,7 +877,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "CNecvSw-.js",
"file": "C1jo0lQH.js",
"name": "termine",
"src": "pages/termine.vue",
"isDynamicEntry": true,
@@ -877,7 +892,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BejXl4Ry.js",
"file": "B9lUQxCj.js",
"name": "anfaenger",
"src": "pages/training/anfaenger.vue",
"isDynamicEntry": true,
@@ -892,7 +907,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BKvBGWYj.js",
"file": "BihH_yuU.js",
"name": "index",
"src": "pages/training/index.vue",
"isDynamicEntry": true,
@@ -907,7 +922,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B7Xj1aAc.js",
"file": "tgU1A5jl.js",
"name": "trainer",
"src": "pages/training/trainer.vue",
"isDynamicEntry": true,
@@ -921,7 +936,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "DInduCQ0.js",
"file": "CHkqy7mB.js",
"name": "tt-regeln",
"src": "pages/tt-regeln.vue",
"isDynamicEntry": true,
@@ -941,7 +956,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D25xf35j.js",
"file": "DoQDnat2.js",
"name": "ueber-uns",
"src": "pages/ueber-uns.vue",
"isDynamicEntry": true,
@@ -956,7 +971,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B1qBTDuC.js",
"file": "vygoqABK.js",
"name": "geschichte",
"src": "pages/verein/geschichte.vue",
"isDynamicEntry": true,
@@ -970,7 +985,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BZfUaD4r.js",
"file": "t6YtlcxA.js",
"name": "satzung",
"src": "pages/verein/satzung.vue",
"isDynamicEntry": true,
@@ -984,7 +999,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "D565ijOU.js",
"file": "DB4lwRH4.js",
"name": "tt-regeln",
"src": "pages/verein/tt-regeln.vue",
"isDynamicEntry": true,
@@ -998,7 +1013,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "NvbKvUY5.js",
"file": "Dhn1q0tB.js",
"name": "ueber-uns",
"src": "pages/verein/ueber-uns.vue",
"isDynamicEntry": true,
@@ -1012,7 +1027,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "BwIK_w7L.js",
"file": "BSgvdOgQ.js",
"name": "vereinsmeisterschaften",
"src": "pages/vereinsmeisterschaften.vue",
"isDynamicEntry": true,
@@ -1027,7 +1042,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "B78Xcyyd.js",
"file": "CED8cBGM.js",
"name": "vorstand",
"src": "pages/vorstand.vue",
"isDynamicEntry": true,

View File

@@ -1,294 +0,0 @@
import { mergeProps, withCtx, unref, createTextVNode, createVNode, ref, computed, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderClass } from 'vue/server-renderer';
import { _ as _export_sfc } from './_plugin-vue_export-helper-1tPrXgE0.mjs';
import { _ as __nuxt_component_0$1 } from './server.mjs';
import { ArrowRight, UserPlus, Mail, Calendar } from 'lucide-vue-next';
import '../nitro/nitro.mjs';
import 'node:http';
import 'node:https';
import 'node:events';
import 'node:buffer';
import 'node:fs';
import 'node:path';
import 'node:crypto';
import 'node:url';
import '../routes/renderer.mjs';
import 'vue-bundle-renderer/runtime';
import 'unhead/server';
import 'devalue';
import 'unhead/utils';
import 'pinia';
import 'vue-router';
const _sfc_main$5 = {};
function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
_push(`<section${ssrRenderAttrs(mergeProps({
id: "home",
class: "relative min-h-full flex items-center justify-center overflow-hidden bg-gradient-to-br from-gray-50 to-gray-100"
}, _attrs))} data-v-779d39d7><div class="absolute inset-0 z-0" data-v-779d39d7><div class="absolute top-0 right-0 w-96 h-96 bg-primary-200/30 rounded-full blur-3xl" data-v-779d39d7></div><div class="absolute bottom-0 left-0 w-96 h-96 bg-gray-300/30 rounded-full blur-3xl" data-v-779d39d7></div><div class="absolute inset-0 opacity-10" style="${ssrRenderStyle({ "background-image": "url('/images/club_about_us.png')", "background-size": "cover", "background-position": "center" })}" data-v-779d39d7></div></div><div class="relative z-20 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 sm:py-8" data-v-779d39d7><div class="text-center" data-v-779d39d7><h1 class="text-5xl sm:text-6xl lg:text-7xl font-display font-bold text-gray-900 mb-6 leading-tight animate-fade-in" data-v-779d39d7> Willkommen beim<br data-v-779d39d7><span class="text-primary-600" data-v-779d39d7>Harheimer TC</span></h1><p class="text-xl sm:text-2xl text-gray-700 mb-8 max-w-3xl mx-auto animate-fade-in-delay-1" data-v-779d39d7> Tradition trifft Moderne - Ihr Tischtennisverein in Frankfurt-Harheim seit über 45 Jahren </p></div></div></section>`);
}
const _sfc_setup$5 = _sfc_main$5.setup;
_sfc_main$5.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/Hero.vue");
return _sfc_setup$5 ? _sfc_setup$5(props, ctx) : void 0;
};
const Hero = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$5, [["ssrRender", _sfc_ssrRender], ["__scopeId", "data-v-779d39d7"]]), { __name: "Hero" });
const _sfc_main$4 = {
__name: "TermineVorschau",
__ssrInlineRender: true,
setup(__props) {
const termine = ref([]);
const naechsteTermine = computed(() => {
const heute = /* @__PURE__ */ new Date();
console.log("Heute ist:", heute.toISOString().split("T")[0]);
const kommende = termine.value.filter((t) => {
const terminDatum = new Date(t.datum);
const istKommend = terminDatum >= heute;
console.log(`Termin ${t.titel} (${t.datum}): ${istKommend ? "KOMMEND" : "VERSTRICHEN"}`);
return istKommend;
}).sort((a, b) => new Date(a.datum) - new Date(b.datum));
console.log("Kommende Termine:", kommende);
return kommende;
});
const formatDay = (dateString) => {
const date = new Date(dateString);
return date.getDate();
};
const formatMonth = (dateString) => {
const date = new Date(dateString);
const monate = ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"];
return monate[date.getMonth()];
};
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(_attrs)}><div class="text-center mb-6"><h2 class="text-2xl font-display font-bold text-gray-900 mb-2"> Kommende Termine </h2><div class="w-16 h-0.5 bg-primary-600 mx-auto"></div></div>`);
if (naechsteTermine.value.length > 0) {
_push(`<div class="space-y-2 mb-6"><!--[-->`);
ssrRenderList(naechsteTermine.value, (termin, index) => {
_push(`<div class="bg-gray-50 rounded-lg p-3 hover:bg-gray-100 transition-colors"><div class="flex items-center justify-between"><div class="flex items-center space-x-3"><div class="w-10 h-10 bg-primary-600 rounded-lg flex flex-col items-center justify-center text-white text-xs font-bold"><span>${ssrInterpolate(formatDay(termin.datum))}</span><span>${ssrInterpolate(formatMonth(termin.datum))}</span></div><div><h3 class="font-semibold text-gray-900">${ssrInterpolate(termin.titel)}</h3><p class="text-sm text-gray-600">${ssrInterpolate(termin.beschreibung)}</p></div></div><span class="${ssrRenderClass([
"px-2 py-1 text-xs font-medium rounded-full",
termin.kategorie === "Turnier" ? "bg-yellow-100 text-yellow-800" : "bg-blue-100 text-blue-800"
])}">${ssrInterpolate(termin.kategorie)}</span></div></div>`);
});
_push(`<!--]--></div>`);
} else {
_push(`<div class="text-center py-8 bg-gray-50 rounded-lg">`);
_push(ssrRenderComponent(unref(Calendar), {
size: 32,
class: "text-gray-400 mx-auto mb-2"
}, null, _parent));
_push(`<p class="text-gray-600 text-sm">Keine kommenden Termine</p></div>`);
}
_push(`</div>`);
};
}
};
const _sfc_setup$4 = _sfc_main$4.setup;
_sfc_main$4.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/TermineVorschau.vue");
return _sfc_setup$4 ? _sfc_setup$4(props, ctx) : void 0;
};
const _sfc_main$3 = {
__name: "HomeTermine",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0$1;
_push(`<section${ssrRenderAttrs(mergeProps({ class: "py-16 sm:py-20 bg-gray-50" }, _attrs))}><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="text-center mb-12"><h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4"> Kommende Termine </h2><div class="w-24 h-1 bg-primary-600 mx-auto mb-6"></div></div><div class="max-w-4xl mx-auto">`);
_push(ssrRenderComponent(_sfc_main$4, null, null, _parent));
_push(`</div><div class="text-center mt-8">`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/termine",
class: "inline-flex items-center px-6 py-3 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Alle Termine anzeigen `);
_push2(ssrRenderComponent(unref(ArrowRight), {
size: 20,
class: "ml-2"
}, null, _parent2, _scopeId));
} else {
return [
createTextVNode(" Alle Termine anzeigen "),
createVNode(unref(ArrowRight), {
size: 20,
class: "ml-2"
})
];
}
}),
_: 1
}, _parent));
_push(`</div></div></section>`);
};
}
};
const _sfc_setup$3 = _sfc_main$3.setup;
_sfc_main$3.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/HomeTermine.vue");
return _sfc_setup$3 ? _sfc_setup$3(props, ctx) : void 0;
};
const _sfc_main$2 = {
__name: "PublicNews",
__ssrInlineRender: true,
setup(__props) {
const news = ref([]);
const formatDate = (dateString) => {
if (!dateString) return "";
const date = new Date(dateString);
return date.toLocaleDateString("de-DE", {
year: "numeric",
month: "long",
day: "numeric"
});
};
return (_ctx, _push, _parent, _attrs) => {
if (news.value.length > 0) {
_push(`<section${ssrRenderAttrs(mergeProps({ class: "py-16 sm:py-20 bg-white" }, _attrs))} data-v-f894f108><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" data-v-f894f108><div class="text-center mb-16" data-v-f894f108><h2 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-4" data-v-f894f108> Aktuelles </h2><div class="w-24 h-1 bg-primary-600 mx-auto mb-6" data-v-f894f108></div><p class="text-xl text-gray-600 max-w-3xl mx-auto" data-v-f894f108> Die neuesten Nachrichten aus unserem Verein </p></div><div class="grid md:grid-cols-2 lg:grid-cols-3 gap-8" data-v-f894f108><!--[-->`);
ssrRenderList(news.value, (item) => {
_push(`<article class="bg-gray-50 rounded-xl p-6 border border-gray-200 hover:shadow-lg transition-shadow" data-v-f894f108><div class="flex items-center text-sm text-gray-500 mb-3" data-v-f894f108>`);
_push(ssrRenderComponent(unref(Calendar), {
size: 16,
class: "mr-2"
}, null, _parent));
_push(` ${ssrInterpolate(formatDate(item.created))}</div><h3 class="text-xl font-display font-bold text-gray-900 mb-3" data-v-f894f108>${ssrInterpolate(item.title)}</h3><p class="text-gray-700 line-clamp-3" data-v-f894f108>${ssrInterpolate(item.content)}</p></article>`);
});
_push(`<!--]--></div></div></section>`);
} else {
_push(`<!---->`);
}
};
}
};
const _sfc_setup$2 = _sfc_main$2.setup;
_sfc_main$2.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/PublicNews.vue");
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
};
const PublicNews = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f894f108"]]);
const _sfc_main$1 = {
__name: "HomeActions",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
const _component_NuxtLink = __nuxt_component_0$1;
_push(`<section${ssrRenderAttrs(mergeProps({ class: "py-16 sm:py-20 bg-gradient-to-b from-white to-gray-50" }, _attrs))}><div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"><div class="grid md:grid-cols-2 gap-8 max-w-4xl mx-auto">`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliedschaft",
class: "group bg-white rounded-2xl p-8 shadow-lg hover:shadow-xl transition-all border-2 border-transparent hover:border-primary-600"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="flex items-center mb-4"${_scopeId}><div class="w-16 h-16 bg-primary-100 rounded-xl flex items-center justify-center group-hover:bg-primary-600 transition-colors"${_scopeId}>`);
_push2(ssrRenderComponent(unref(UserPlus), {
size: 32,
class: "text-primary-600 group-hover:text-white transition-colors"
}, null, _parent2, _scopeId));
_push2(`</div><h3 class="ml-4 text-2xl font-display font-bold text-gray-900"${_scopeId}> Mitglied werden </h3></div><p class="text-gray-600 mb-4"${_scopeId}> Werden Sie Teil unserer Tischtennisfamilie und profitieren Sie von regelmäßigem Training, Wettkämpfen und einer tollen Gemeinschaft. </p><div class="flex items-center text-primary-600 font-semibold group-hover:translate-x-2 transition-transform"${_scopeId}> Mehr erfahren `);
_push2(ssrRenderComponent(unref(ArrowRight), {
size: 20,
class: "ml-2"
}, null, _parent2, _scopeId));
_push2(`</div>`);
} else {
return [
createVNode("div", { class: "flex items-center mb-4" }, [
createVNode("div", { class: "w-16 h-16 bg-primary-100 rounded-xl flex items-center justify-center group-hover:bg-primary-600 transition-colors" }, [
createVNode(unref(UserPlus), {
size: 32,
class: "text-primary-600 group-hover:text-white transition-colors"
})
]),
createVNode("h3", { class: "ml-4 text-2xl font-display font-bold text-gray-900" }, " Mitglied werden ")
]),
createVNode("p", { class: "text-gray-600 mb-4" }, " Werden Sie Teil unserer Tischtennisfamilie und profitieren Sie von regelmäßigem Training, Wettkämpfen und einer tollen Gemeinschaft. "),
createVNode("div", { class: "flex items-center text-primary-600 font-semibold group-hover:translate-x-2 transition-transform" }, [
createTextVNode(" Mehr erfahren "),
createVNode(unref(ArrowRight), {
size: 20,
class: "ml-2"
})
])
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/kontakt",
class: "group bg-white rounded-2xl p-8 shadow-lg hover:shadow-xl transition-all border-2 border-transparent hover:border-primary-600"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(`<div class="flex items-center mb-4"${_scopeId}><div class="w-16 h-16 bg-primary-100 rounded-xl flex items-center justify-center group-hover:bg-primary-600 transition-colors"${_scopeId}>`);
_push2(ssrRenderComponent(unref(Mail), {
size: 32,
class: "text-primary-600 group-hover:text-white transition-colors"
}, null, _parent2, _scopeId));
_push2(`</div><h3 class="ml-4 text-2xl font-display font-bold text-gray-900"${_scopeId}> Kontakt aufnehmen </h3></div><p class="text-gray-600 mb-4"${_scopeId}> Haben Sie Fragen oder möchten ein kostenloses Probetraining vereinbaren? Wir freuen uns auf Ihre Nachricht! </p><div class="flex items-center text-primary-600 font-semibold group-hover:translate-x-2 transition-transform"${_scopeId}> Jetzt kontaktieren `);
_push2(ssrRenderComponent(unref(ArrowRight), {
size: 20,
class: "ml-2"
}, null, _parent2, _scopeId));
_push2(`</div>`);
} else {
return [
createVNode("div", { class: "flex items-center mb-4" }, [
createVNode("div", { class: "w-16 h-16 bg-primary-100 rounded-xl flex items-center justify-center group-hover:bg-primary-600 transition-colors" }, [
createVNode(unref(Mail), {
size: 32,
class: "text-primary-600 group-hover:text-white transition-colors"
})
]),
createVNode("h3", { class: "ml-4 text-2xl font-display font-bold text-gray-900" }, " Kontakt aufnehmen ")
]),
createVNode("p", { class: "text-gray-600 mb-4" }, " Haben Sie Fragen oder möchten ein kostenloses Probetraining vereinbaren? Wir freuen uns auf Ihre Nachricht! "),
createVNode("div", { class: "flex items-center text-primary-600 font-semibold group-hover:translate-x-2 transition-transform" }, [
createTextVNode(" Jetzt kontaktieren "),
createVNode(unref(ArrowRight), {
size: 20,
class: "ml-2"
})
])
];
}
}),
_: 1
}, _parent));
_push(`</div></div></section>`);
};
}
};
const _sfc_setup$1 = _sfc_main$1.setup;
_sfc_main$1.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/HomeActions.vue");
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
};
const _sfc_main = {
__name: "index",
__ssrInlineRender: true,
setup(__props) {
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-full" }, _attrs))}>`);
_push(ssrRenderComponent(Hero, null, null, _parent));
_push(ssrRenderComponent(_sfc_main$3, null, null, _parent));
_push(ssrRenderComponent(PublicNews, null, null, _parent));
_push(ssrRenderComponent(_sfc_main$1, null, null, _parent));
_push(`</div>`);
};
}
};
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };
//# sourceMappingURL=index-BcEI2yju.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -425,7 +425,7 @@ const _routes = [
{
name: "index",
path: "/",
component: () => import('./index-BcEI2yju.mjs')
component: () => import('./index-v1Kdy71b.mjs')
},
{
name: "login",
@@ -467,13 +467,18 @@ const _routes = [
name: "cms",
path: "/cms",
meta: { ...__nuxt_page_meta$6 || {}, ...{ "middleware": "auth" } },
component: () => import('./index-DECkfGZG.mjs')
component: () => import('./index-CQoOFH9O.mjs')
},
{
name: "impressum",
path: "/impressum",
component: () => import('./impressum-BqyqWRX3.mjs')
},
{
name: "spielplan",
path: "/spielplan",
component: () => import('./spielplan-CSMIH4ap.mjs')
},
{
name: "tt-regeln",
path: "/tt-regeln",
@@ -499,7 +504,7 @@ const _routes = [
name: "cms-termine",
path: "/cms/termine",
meta: { ...__nuxt_page_meta$5 || {}, ...{ "middleware": "auth" } },
component: () => import('./termine-D2MnyUnm.mjs')
component: () => import('./termine-D0MhYqRR.mjs')
},
{
name: "cms-benutzer",
@@ -527,13 +532,13 @@ const _routes = [
name: "cms-ueber-uns",
path: "/cms/ueber-uns",
meta: { "middleware": "auth" },
component: () => import('./ueber-uns-Bh5wzEzQ.mjs')
component: () => import('./ueber-uns-DjmpTsFo.mjs')
},
{
name: "cms-geschichte",
path: "/cms/geschichte",
meta: { "middleware": "auth" },
component: () => import('./geschichte-CiAph72d.mjs')
component: () => import('./geschichte-CFP6IFpM.mjs')
},
{
name: "mitgliedschaft",
@@ -550,6 +555,12 @@ const _routes = [
path: "/verein/satzung",
component: () => import('./satzung-DQRFjAcf.mjs')
},
{
name: "cms-spielplaene",
path: "/cms/spielplaene",
meta: { "middleware": "auth" },
component: () => import('./spielplaene-Cxh2kXmc.mjs')
},
{
name: "training-trainer",
path: "/training/trainer",
@@ -584,7 +595,7 @@ const _routes = [
{
name: "mannschaften",
path: "/mannschaften",
component: () => import('./index-CZaJ5pcf.mjs')
component: () => import('./index-Bkex19SZ.mjs')
},
{
name: "passwort-vergessen",
@@ -615,7 +626,7 @@ const _routes = [
name: "mitgliederbereich-news",
path: "/mitgliederbereich/news",
meta: { ...__nuxt_page_meta$3 || {}, ...{ "middleware": "auth" } },
component: () => import('./news-DcEX-ozp.mjs')
component: () => import('./news-BiFez7S9.mjs')
},
{
name: "vereinsmeisterschaften",
@@ -626,12 +637,12 @@ const _routes = [
name: "mitgliederbereich",
path: "/mitgliederbereich",
meta: { ...__nuxt_page_meta$2 || {}, ...{ "middleware": "auth" } },
component: () => import('./index-CkGuUg5h.mjs')
component: () => import('./index-DItzZYkA.mjs')
},
{
name: "mannschaften-spielplaene",
path: "/mannschaften/spielplaene",
component: () => import('./spielplaene-DbKtlvd7.mjs')
component: () => import('./spielplaene-CK95OXX8.mjs')
},
{
name: "mitgliederbereich-profil",
@@ -639,6 +650,12 @@ const _routes = [
meta: { ...__nuxt_page_meta$1 || {}, ...{ "middleware": "auth" } },
component: () => import('./profil-Dm_3uuTL.mjs')
},
{
name: "cms-vereinsmeisterschaften",
path: "/cms/vereinsmeisterschaften",
meta: { "middleware": "auth" },
component: () => import('./vereinsmeisterschaften-DNSbF6G8.mjs')
},
{
name: "cms-mitgliedschaftsantraege",
path: "/cms/mitgliedschaftsantraege",
@@ -1888,10 +1905,10 @@ const _sfc_main$5 = {
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Interne News `);
_push2(` News `);
} else {
return [
createTextVNode(" Interne News ")
createTextVNode(" News ")
];
}
}),
@@ -2003,6 +2020,22 @@ const _sfc_main$5 = {
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/vereinsmeisterschaften",
onClick: ($event) => showCmsDropdown.value = false,
class: "block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Vereinsmeisterschaften `);
} else {
return [
createTextVNode(" Vereinsmeisterschaften ")
];
}
}),
_: 1
}, _parent));
_push(`<div class="border-t border-gray-700 my-1"></div>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/news",
@@ -2011,10 +2044,10 @@ const _sfc_main$5 = {
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Interne News `);
_push2(` News `);
} else {
return [
createTextVNode(" Interne News ")
createTextVNode(" News ")
];
}
}),
@@ -2036,6 +2069,22 @@ const _sfc_main$5 = {
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/spielplaene",
onClick: ($event) => showCmsDropdown.value = false,
class: "block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Spielpläne `);
} else {
return [
createTextVNode(" Spielpläne ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/mitglieder",
onClick: ($event) => showCmsDropdown.value = false,
@@ -2497,10 +2546,10 @@ const _sfc_main$5 = {
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Interne News `);
_push2(` News `);
} else {
return [
createTextVNode(" Interne News ")
createTextVNode(" News ")
];
}
}),
@@ -2547,10 +2596,10 @@ const _sfc_main$5 = {
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Interne News `);
_push2(` News `);
} else {
return [
createTextVNode(" Interne News ")
createTextVNode(" News ")
];
}
}),
@@ -2572,6 +2621,22 @@ const _sfc_main$5 = {
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/spielplaene",
onClick: ($event) => isMobileMenuOpen.value = false,
class: "block px-4 py-2 text-sm text-yellow-300 hover:text-white hover:bg-primary-700/50 rounded-lg transition-colors"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Spielpläne `);
} else {
return [
createTextVNode(" Spielpläne ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/mitglieder",
onClick: ($event) => isMobileMenuOpen.value = false,
@@ -2652,6 +2717,22 @@ const _sfc_main$5 = {
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/vereinsmeisterschaften",
onClick: ($event) => isMobileMenuOpen.value = false,
class: "block px-4 py-2 text-sm text-yellow-300 hover:text-white hover:bg-primary-700/50 rounded-lg transition-colors"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` Vereinsmeisterschaften `);
} else {
return [
createTextVNode(" Vereinsmeisterschaften ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/einstellungen",
onClick: ($event) => isMobileMenuOpen.value = false,

View File

@@ -1,13 +1,13 @@
const interopDefault = r => r.default || r || [];
const styles = {
"components/Hero.vue": () => import('./Hero-styles.CNXkzfUC.mjs').then(interopDefault),
"components/PublicNews.vue": () => import('./PublicNews-styles.43u9giRy.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault),
"components/Hero.vue": () => import('./Hero-styles.03iOjY05.mjs').then(interopDefault),
"components/PublicNews.vue": () => import('./PublicNews-styles.nhqk16g5.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=28200092&lang.css": () => import('./Hero-styles.CNXkzfUC.mjs').then(interopDefault),
"components/PublicNews.vue?vue&type=style&index=0&scoped=d13bda1e&lang.css": () => import('./PublicNews-styles.43u9giRy.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-404.vue?vue&type=style&index=0&scoped=b728498f&lang.css": () => import('./error-404-styles.BsF5Lbhq.mjs').then(interopDefault),
"node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=779d39d7&lang.css": () => import('./Hero-styles.03iOjY05.mjs').then(interopDefault),
"components/PublicNews.vue?vue&type=style&index=0&scoped=f894f108&lang.css": () => import('./PublicNews-styles.nhqk16g5.mjs').then(interopDefault)
"node_modules/nuxt/dist/app/components/error-500.vue?vue&type=style&index=0&scoped=70d84538&lang.css": () => import('./error-500-styles.Dccc6iq5.mjs').then(interopDefault)
};
export { styles as default };