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,5 +1,5 @@
{ {
"date": "2025-10-23T13:58:10.357Z", "date": "2025-11-05T10:20:03.814Z",
"preset": "node-server", "preset": "node-server",
"framework": { "framework": {
"name": "nuxt", "name": "nuxt",

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +0,0 @@
import{e as a}from"#entry";/**
* @license lucide-vue-next v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const t=a("ExternalLinkIcon",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);export{t as E};

View File

@@ -1 +1 @@
{"id":"5eacfda6-f6ed-4268-8599-129783c464db","timestamp":1761227881976} {"id":"5350e559-0385-4382-86b5-e023f99170bd","timestamp":1762337994068}

View File

@@ -1 +0,0 @@
@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}.line-clamp-3[data-v-f894f108]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

View File

@@ -1,6 +0,0 @@
import{e}from"#entry";/**
* @license lucide-vue-next v0.344.0 - ISC
*
* This source code is licensed under the ISC license.
* See the LICENSE file in the root directory of this source tree.
*/const a=e("BarChartIcon",[["line",{x1:"12",x2:"12",y1:"20",y2:"10",key:"1vz5eb"}],["line",{x1:"18",x2:"18",y1:"20",y2:"4",key:"cun8e5"}],["line",{x1:"6",x2:"6",y1:"20",y2:"16",key:"hq0ia6"}]]);export{a as B};

View File

@@ -1,2 +1,2 @@
"datum","titel","beschreibung","kategorie" "datum","uhrzeit","titel","beschreibung","kategorie"
"2025-12-18","Weihnachtsfeier 2025 im Gasthaus Zum Einhorn in Frankfurt - Bonames","","Veranstaltung" "2025-12-18","19:00","Weihnachtsfeier 2025 im Gasthaus Zum Einhorn in Frankfurt - Bonames","","Veranstaltung"
1 datum uhrzeit titel beschreibung kategorie
2 2025-12-18 19:00 Weihnachtsfeier 2025 im Gasthaus Zum Einhorn in Frankfurt - Bonames Veranstaltung

View File

@@ -1,4 +1,4 @@
"jahr","kategorie","platz","spieler1","spieler2","bemerkung" Jahr,Kategorie,Platz,Spieler1,Spieler2,Bemerkung
"2024","Einzel","1","Michael Koch","","" "2024","Einzel","1","Michael Koch","",""
"2024","Einzel","2","Olaf Nüßlein","","" "2024","Einzel","2","Olaf Nüßlein","",""
"2024","Einzel","3","Bernd Meyer","","" "2024","Einzel","3","Bernd Meyer","",""
@@ -46,3 +46,4 @@
"2016","Doppel","1","Jürgen Kratz","Matthias Schmidt","" "2016","Doppel","1","Jürgen Kratz","Matthias Schmidt",""
"2016","Doppel","2","André Gilzinger","Bernd Meyer","" "2016","Doppel","2","André Gilzinger","Bernd Meyer",""
"2016","Doppel","3","Sven Baublies","Dagmar Bereksasi","" "2016","Doppel","3","Sven Baublies","Dagmar Bereksasi",""
"2025","Doppel","1","a","b",""
1 jahr Jahr kategorie Kategorie platz Platz spieler1 Spieler1 spieler2 Spieler2 bemerkung Bemerkung
2 2024 Einzel 1 Michael Koch
3 2024 Einzel 2 Olaf Nüßlein
4 2024 Einzel 3 Bernd Meyer
46 2016 Doppel 1 Jürgen Kratz Matthias Schmidt
47 2016 Doppel 2 André Gilzinger Bernd Meyer
48 2016 Doppel 3 Sven Baublies Dagmar Bereksasi
49 2025 Doppel 1 a b

View File

@@ -37,9 +37,10 @@ async function readTermine() {
id: randomUUID(), id: randomUUID(),
// Generate ID on-the-fly for editing // Generate ID on-the-fly for editing
datum: values[0], datum: values[0],
titel: values[1], uhrzeit: values[1] || "",
beschreibung: values[2], titel: values[2] || "",
kategorie: values[3] beschreibung: values[3] || "",
kategorie: values[4] || "Sonstiges"
}); });
} }
} }
@@ -54,17 +55,19 @@ async function readTermine() {
} }
async function writeTermine(termine) { async function writeTermine(termine) {
try { try {
let csv = '"datum","titel","beschreibung","kategorie"\n'; let csv = '"datum","uhrzeit","titel","beschreibung","kategorie"\n';
for (const termin of termine) { for (const termin of termine) {
const datum = termin.datum || ""; const datum = termin.datum || "";
const uhrzeit = termin.uhrzeit || "";
const titel = termin.titel || ""; const titel = termin.titel || "";
const beschreibung = termin.beschreibung || ""; const beschreibung = termin.beschreibung || "";
const kategorie = termin.kategorie || ""; const kategorie = termin.kategorie || "";
const escapedDatum = datum.replace(/"/g, '""'); const escapedDatum = datum.replace(/"/g, '""');
const escapedUhrzeit = uhrzeit.replace(/"/g, '""');
const escapedTitel = titel.replace(/"/g, '""'); const escapedTitel = titel.replace(/"/g, '""');
const escapedBeschreibung = beschreibung.replace(/"/g, '""'); const escapedBeschreibung = beschreibung.replace(/"/g, '""');
const escapedKategorie = kategorie.replace(/"/g, '""'); const escapedKategorie = kategorie.replace(/"/g, '""');
csv += `"${escapedDatum}","${escapedTitel}","${escapedBeschreibung}","${escapedKategorie}" csv += `"${escapedDatum}","${escapedUhrzeit}","${escapedTitel}","${escapedBeschreibung}","${escapedKategorie}"
`; `;
} }
await promises.writeFile(TERMINE_FILE, csv, "utf-8"); await promises.writeFile(TERMINE_FILE, csv, "utf-8");
@@ -78,6 +81,7 @@ async function saveTermin(terminData) {
const termine = await readTermine(); const termine = await readTermine();
const newTermin = { const newTermin = {
datum: terminData.datum, datum: terminData.datum,
uhrzeit: terminData.uhrzeit || "",
titel: terminData.titel, titel: terminData.titel,
beschreibung: terminData.beschreibung || "", beschreibung: terminData.beschreibung || "",
kategorie: terminData.kategorie || "Sonstiges" kategorie: terminData.kategorie || "Sonstiges"
@@ -90,7 +94,7 @@ async function saveTermin(terminData) {
async function deleteTermin(terminData) { async function deleteTermin(terminData) {
let termine = await readTermine(); let termine = await readTermine();
termine = termine.filter( termine = termine.filter(
(t) => !(t.datum === terminData.datum && t.titel === terminData.titel && t.beschreibung === terminData.beschreibung && t.kategorie === terminData.kategorie) (t) => !(t.datum === terminData.datum && (t.uhrzeit || "") === (terminData.uhrzeit || "") && t.titel === terminData.titel && t.beschreibung === terminData.beschreibung && t.kategorie === terminData.kategorie)
); );
await writeTermine(termine); await writeTermine(termine);
return true; return true;

View File

@@ -1 +1 @@
{"version":3,"file":"termine.mjs","sources":["../../../../server/utils/termine.js"],"sourcesContent":null,"names":["fs"],"mappings":"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"} {"version":3,"file":"termine.mjs","sources":["../../../../server/utils/termine.js"],"sourcesContent":null,"names":["fs"],"mappings":"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"}

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" "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": { "_DAACT36i.js": {
"resourceType": "script", "resourceType": "script",
"module": true, "module": true,
@@ -227,17 +216,6 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js" "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": { "_oN0_bS6A.js": {
"resourceType": "script", "resourceType": "script",
"module": true, "module": true,
@@ -261,7 +239,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D-Zvexq_.js", "file": "BIgEmhqk.js",
"name": "auth", "name": "auth",
"src": "middleware/auth.js", "src": "middleware/auth.js",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -318,7 +296,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BBtX9g-c.js", "file": "BEmwqjje.js",
"name": "entry", "name": "entry",
"src": "node_modules/nuxt/dist/app/entry.js", "src": "node_modules/nuxt/dist/app/entry.js",
"isEntry": true, "isEntry": true,
@@ -328,14 +306,14 @@ const client_manifest = {
"node_modules/nuxt/dist/app/components/error-500.vue" "node_modules/nuxt/dist/app/components/error-500.vue"
], ],
"css": [ "css": [
"entry.WJcUQO4N.css" "entry.CYvTzE5H.css"
], ],
"assets": [ "assets": [
"Harheimer TC.CKfYAfp1.svg" "Harheimer TC.CKfYAfp1.svg"
] ]
}, },
"entry.WJcUQO4N.css": { "entry.CYvTzE5H.css": {
"file": "entry.WJcUQO4N.css", "file": "entry.CYvTzE5H.css",
"resourceType": "style", "resourceType": "style",
"prefetch": true, "prefetch": true,
"preload": true "preload": true
@@ -351,7 +329,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D7LlSYAz.js", "file": "Bg-xR82b.js",
"name": "anlagen", "name": "anlagen",
"src": "pages/anlagen.vue", "src": "pages/anlagen.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -365,7 +343,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D7wLfWza.js", "file": "DTKApGrI.js",
"name": "benutzer", "name": "benutzer",
"src": "pages/cms/benutzer.vue", "src": "pages/cms/benutzer.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -381,7 +359,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BlTx75vv.js", "file": "CKWZtWUB.js",
"name": "einstellungen", "name": "einstellungen",
"src": "pages/cms/einstellungen.vue", "src": "pages/cms/einstellungen.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -403,7 +381,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "G3v2TcOj.js", "file": "GPPAkzQU.js",
"name": "geschichte", "name": "geschichte",
"src": "pages/cms/geschichte.vue", "src": "pages/cms/geschichte.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -417,7 +395,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CcTzWjtb.js", "file": "CANvpwsn.js",
"name": "index", "name": "index",
"src": "pages/cms/index.vue", "src": "pages/cms/index.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -435,7 +413,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "XVGNuni0.js", "file": "BHjJgyPQ.js",
"name": "mitgliedschaftsantraege", "name": "mitgliedschaftsantraege",
"src": "pages/cms/mitgliedschaftsantraege.vue", "src": "pages/cms/mitgliedschaftsantraege.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -449,7 +427,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CJOOzUp1.js", "file": "gImTM9MK.js",
"name": "satzung", "name": "satzung",
"src": "pages/cms/satzung.vue", "src": "pages/cms/satzung.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -458,12 +436,26 @@ const client_manifest = {
"_Qy3ajxTk.js" "_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": { "pages/cms/termine.vue": {
"resourceType": "script", "resourceType": "script",
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CHELWMKR.js", "file": "DsBHYVkM.js",
"name": "termine", "name": "termine",
"src": "pages/cms/termine.vue", "src": "pages/cms/termine.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -481,7 +473,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "lwS618zS.js", "file": "B0O50Q40.js",
"name": "tt-regeln", "name": "tt-regeln",
"src": "pages/cms/tt-regeln.vue", "src": "pages/cms/tt-regeln.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -495,7 +487,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CfC7HTR7.js", "file": "BuN7Api-.js",
"name": "ueber-uns", "name": "ueber-uns",
"src": "pages/cms/ueber-uns.vue", "src": "pages/cms/ueber-uns.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -504,12 +496,26 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js" "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": { "pages/galerie.vue": {
"resourceType": "script", "resourceType": "script",
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "Bu6whu8C.js", "file": "JRh__Fev.js",
"name": "galerie", "name": "galerie",
"src": "pages/galerie.vue", "src": "pages/galerie.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -523,7 +529,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "Bqdk1y3w.js", "file": "CHQH_CwJ.js",
"name": "geschichte", "name": "geschichte",
"src": "pages/geschichte.vue", "src": "pages/geschichte.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -537,7 +543,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "SiWFe9PJ.js", "file": "B9LKmM6w.js",
"name": "impressum", "name": "impressum",
"src": "pages/impressum.vue", "src": "pages/impressum.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -552,7 +558,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "B6R2Q32I.js", "file": "z7RFtKay.js",
"name": "index", "name": "index",
"src": "pages/index.vue", "src": "pages/index.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -564,11 +570,11 @@ const client_manifest = {
"_BC4PNGtJ.js" "_BC4PNGtJ.js"
], ],
"css": [ "css": [
"index.ByttcLyP.css" "index.D01TNCBR.css"
] ]
}, },
"index.ByttcLyP.css": { "index.D01TNCBR.css": {
"file": "index.ByttcLyP.css", "file": "index.D01TNCBR.css",
"resourceType": "style", "resourceType": "style",
"prefetch": true, "prefetch": true,
"preload": true "preload": true
@@ -578,7 +584,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "5IKOyEE8.js", "file": "B7iv_v5q.js",
"name": "kontakt", "name": "kontakt",
"src": "pages/kontakt.vue", "src": "pages/kontakt.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -596,7 +602,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "TnZylaYP.js", "file": "BY3tjjYe.js",
"name": "login", "name": "login",
"src": "pages/login.vue", "src": "pages/login.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -613,14 +619,13 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DrS211Qg.js", "file": "B1VMaWHv.js",
"name": "_slug_", "name": "_slug_",
"src": "pages/mannschaften/[slug].vue", "src": "pages/mannschaften/[slug].vue",
"isDynamicEntry": true, "isDynamicEntry": true,
"imports": [ "imports": [
"node_modules/nuxt/dist/app/entry.js", "node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js", "_Qy3ajxTk.js"
"_jVj3QaoK.js"
] ]
}, },
"pages/mannschaften/damen.vue": { "pages/mannschaften/damen.vue": {
@@ -642,7 +647,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BEK-x74F.js", "file": "BQ1JAN-t.js",
"name": "herren", "name": "herren",
"src": "pages/mannschaften/herren.vue", "src": "pages/mannschaften/herren.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -656,13 +661,12 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CGF4oWdy.js", "file": "rVkivqmM.js",
"name": "index", "name": "index",
"src": "pages/mannschaften/index.vue", "src": "pages/mannschaften/index.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
"imports": [ "imports": [
"node_modules/nuxt/dist/app/entry.js", "node_modules/nuxt/dist/app/entry.js",
"_jVj3QaoK.js",
"_DkeYb0_S.js", "_DkeYb0_S.js",
"_Qy3ajxTk.js" "_Qy3ajxTk.js"
] ]
@@ -672,7 +676,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BOTV4xuv.js", "file": "BWWcyQAZ.js",
"name": "jugend", "name": "jugend",
"src": "pages/mannschaften/jugend.vue", "src": "pages/mannschaften/jugend.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -686,15 +690,13 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DmeaandR.js", "file": "CtbKwxql.js",
"name": "spielplaene", "name": "spielplaene",
"src": "pages/mannschaften/spielplaene.vue", "src": "pages/mannschaften/spielplaene.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
"imports": [ "imports": [
"_Qy3ajxTk.js",
"_BteKZQ9T.js",
"node_modules/nuxt/dist/app/entry.js", "node_modules/nuxt/dist/app/entry.js",
"_Cx4UcKGu.js" "_Qy3ajxTk.js"
] ]
}, },
"pages/mitgliederbereich/index.vue": { "pages/mitgliederbereich/index.vue": {
@@ -702,7 +704,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DBoACobG.js", "file": "WB0M-5W8.js",
"name": "index", "name": "index",
"src": "pages/mitgliederbereich/index.vue", "src": "pages/mitgliederbereich/index.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -719,7 +721,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BSvOuZsL.js", "file": "DUnJ77Nu.js",
"name": "mitglieder", "name": "mitglieder",
"src": "pages/mitgliederbereich/mitglieder.vue", "src": "pages/mitgliederbereich/mitglieder.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -742,7 +744,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DwIxbZay.js", "file": "DHTQ1uwI.js",
"name": "news", "name": "news",
"src": "pages/mitgliederbereich/news.vue", "src": "pages/mitgliederbereich/news.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -764,7 +766,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "C7eIgk1J.js", "file": "D1wPw_Gu.js",
"name": "profil", "name": "profil",
"src": "pages/mitgliederbereich/profil.vue", "src": "pages/mitgliederbereich/profil.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -781,7 +783,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D9eqLvUd.js", "file": "DEC6XYYJ.js",
"name": "mitgliedschaft", "name": "mitgliedschaft",
"src": "pages/mitgliedschaft.vue", "src": "pages/mitgliedschaft.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -794,7 +796,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D8fhH48e.js", "file": "DjM31nDA.js",
"name": "passwort-vergessen", "name": "passwort-vergessen",
"src": "pages/passwort-vergessen.vue", "src": "pages/passwort-vergessen.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -811,7 +813,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DCJCzUpS.js", "file": "BYVjJJfr.js",
"name": "registrieren", "name": "registrieren",
"src": "pages/registrieren.vue", "src": "pages/registrieren.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -828,7 +830,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "B45eiNl0.js", "file": "DaUHoOti.js",
"name": "satzung", "name": "satzung",
"src": "pages/satzung.vue", "src": "pages/satzung.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -838,12 +840,26 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js" "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": { "pages/spielsysteme.vue": {
"resourceType": "script", "resourceType": "script",
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CzngvAVI.js", "file": "C27DLx1c.js",
"name": "spielsysteme", "name": "spielsysteme",
"src": "pages/spielsysteme.vue", "src": "pages/spielsysteme.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -853,8 +869,7 @@ const client_manifest = {
"_YJHbYJtA.js", "_YJHbYJtA.js",
"node_modules/nuxt/dist/app/entry.js", "node_modules/nuxt/dist/app/entry.js",
"_DUm-savV.js", "_DUm-savV.js",
"_CkzaQq3X.js", "_CkzaQq3X.js"
"_Cx4UcKGu.js"
] ]
}, },
"pages/termine.vue": { "pages/termine.vue": {
@@ -862,7 +877,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "CNecvSw-.js", "file": "C1jo0lQH.js",
"name": "termine", "name": "termine",
"src": "pages/termine.vue", "src": "pages/termine.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -877,7 +892,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BejXl4Ry.js", "file": "B9lUQxCj.js",
"name": "anfaenger", "name": "anfaenger",
"src": "pages/training/anfaenger.vue", "src": "pages/training/anfaenger.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -892,7 +907,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BKvBGWYj.js", "file": "BihH_yuU.js",
"name": "index", "name": "index",
"src": "pages/training/index.vue", "src": "pages/training/index.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -907,7 +922,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "B7Xj1aAc.js", "file": "tgU1A5jl.js",
"name": "trainer", "name": "trainer",
"src": "pages/training/trainer.vue", "src": "pages/training/trainer.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -921,7 +936,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "DInduCQ0.js", "file": "CHkqy7mB.js",
"name": "tt-regeln", "name": "tt-regeln",
"src": "pages/tt-regeln.vue", "src": "pages/tt-regeln.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -941,7 +956,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D25xf35j.js", "file": "DoQDnat2.js",
"name": "ueber-uns", "name": "ueber-uns",
"src": "pages/ueber-uns.vue", "src": "pages/ueber-uns.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -956,7 +971,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "B1qBTDuC.js", "file": "vygoqABK.js",
"name": "geschichte", "name": "geschichte",
"src": "pages/verein/geschichte.vue", "src": "pages/verein/geschichte.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -970,7 +985,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BZfUaD4r.js", "file": "t6YtlcxA.js",
"name": "satzung", "name": "satzung",
"src": "pages/verein/satzung.vue", "src": "pages/verein/satzung.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -984,7 +999,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "D565ijOU.js", "file": "DB4lwRH4.js",
"name": "tt-regeln", "name": "tt-regeln",
"src": "pages/verein/tt-regeln.vue", "src": "pages/verein/tt-regeln.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -998,7 +1013,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "NvbKvUY5.js", "file": "Dhn1q0tB.js",
"name": "ueber-uns", "name": "ueber-uns",
"src": "pages/verein/ueber-uns.vue", "src": "pages/verein/ueber-uns.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -1012,7 +1027,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "BwIK_w7L.js", "file": "BSgvdOgQ.js",
"name": "vereinsmeisterschaften", "name": "vereinsmeisterschaften",
"src": "pages/vereinsmeisterschaften.vue", "src": "pages/vereinsmeisterschaften.vue",
"isDynamicEntry": true, "isDynamicEntry": true,
@@ -1027,7 +1042,7 @@ const client_manifest = {
"module": true, "module": true,
"prefetch": true, "prefetch": true,
"preload": true, "preload": true,
"file": "B78Xcyyd.js", "file": "CED8cBGM.js",
"name": "vorstand", "name": "vorstand",
"src": "pages/vorstand.vue", "src": "pages/vorstand.vue",
"isDynamicEntry": true, "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", name: "index",
path: "/", path: "/",
component: () => import('./index-BcEI2yju.mjs') component: () => import('./index-v1Kdy71b.mjs')
}, },
{ {
name: "login", name: "login",
@@ -467,13 +467,18 @@ const _routes = [
name: "cms", name: "cms",
path: "/cms", path: "/cms",
meta: { ...__nuxt_page_meta$6 || {}, ...{ "middleware": "auth" } }, meta: { ...__nuxt_page_meta$6 || {}, ...{ "middleware": "auth" } },
component: () => import('./index-DECkfGZG.mjs') component: () => import('./index-CQoOFH9O.mjs')
}, },
{ {
name: "impressum", name: "impressum",
path: "/impressum", path: "/impressum",
component: () => import('./impressum-BqyqWRX3.mjs') component: () => import('./impressum-BqyqWRX3.mjs')
}, },
{
name: "spielplan",
path: "/spielplan",
component: () => import('./spielplan-CSMIH4ap.mjs')
},
{ {
name: "tt-regeln", name: "tt-regeln",
path: "/tt-regeln", path: "/tt-regeln",
@@ -499,7 +504,7 @@ const _routes = [
name: "cms-termine", name: "cms-termine",
path: "/cms/termine", path: "/cms/termine",
meta: { ...__nuxt_page_meta$5 || {}, ...{ "middleware": "auth" } }, meta: { ...__nuxt_page_meta$5 || {}, ...{ "middleware": "auth" } },
component: () => import('./termine-D2MnyUnm.mjs') component: () => import('./termine-D0MhYqRR.mjs')
}, },
{ {
name: "cms-benutzer", name: "cms-benutzer",
@@ -527,13 +532,13 @@ const _routes = [
name: "cms-ueber-uns", name: "cms-ueber-uns",
path: "/cms/ueber-uns", path: "/cms/ueber-uns",
meta: { "middleware": "auth" }, meta: { "middleware": "auth" },
component: () => import('./ueber-uns-Bh5wzEzQ.mjs') component: () => import('./ueber-uns-DjmpTsFo.mjs')
}, },
{ {
name: "cms-geschichte", name: "cms-geschichte",
path: "/cms/geschichte", path: "/cms/geschichte",
meta: { "middleware": "auth" }, meta: { "middleware": "auth" },
component: () => import('./geschichte-CiAph72d.mjs') component: () => import('./geschichte-CFP6IFpM.mjs')
}, },
{ {
name: "mitgliedschaft", name: "mitgliedschaft",
@@ -550,6 +555,12 @@ const _routes = [
path: "/verein/satzung", path: "/verein/satzung",
component: () => import('./satzung-DQRFjAcf.mjs') component: () => import('./satzung-DQRFjAcf.mjs')
}, },
{
name: "cms-spielplaene",
path: "/cms/spielplaene",
meta: { "middleware": "auth" },
component: () => import('./spielplaene-Cxh2kXmc.mjs')
},
{ {
name: "training-trainer", name: "training-trainer",
path: "/training/trainer", path: "/training/trainer",
@@ -584,7 +595,7 @@ const _routes = [
{ {
name: "mannschaften", name: "mannschaften",
path: "/mannschaften", path: "/mannschaften",
component: () => import('./index-CZaJ5pcf.mjs') component: () => import('./index-Bkex19SZ.mjs')
}, },
{ {
name: "passwort-vergessen", name: "passwort-vergessen",
@@ -615,7 +626,7 @@ const _routes = [
name: "mitgliederbereich-news", name: "mitgliederbereich-news",
path: "/mitgliederbereich/news", path: "/mitgliederbereich/news",
meta: { ...__nuxt_page_meta$3 || {}, ...{ "middleware": "auth" } }, meta: { ...__nuxt_page_meta$3 || {}, ...{ "middleware": "auth" } },
component: () => import('./news-DcEX-ozp.mjs') component: () => import('./news-BiFez7S9.mjs')
}, },
{ {
name: "vereinsmeisterschaften", name: "vereinsmeisterschaften",
@@ -626,12 +637,12 @@ const _routes = [
name: "mitgliederbereich", name: "mitgliederbereich",
path: "/mitgliederbereich", path: "/mitgliederbereich",
meta: { ...__nuxt_page_meta$2 || {}, ...{ "middleware": "auth" } }, meta: { ...__nuxt_page_meta$2 || {}, ...{ "middleware": "auth" } },
component: () => import('./index-CkGuUg5h.mjs') component: () => import('./index-DItzZYkA.mjs')
}, },
{ {
name: "mannschaften-spielplaene", name: "mannschaften-spielplaene",
path: "/mannschaften/spielplaene", path: "/mannschaften/spielplaene",
component: () => import('./spielplaene-DbKtlvd7.mjs') component: () => import('./spielplaene-CK95OXX8.mjs')
}, },
{ {
name: "mitgliederbereich-profil", name: "mitgliederbereich-profil",
@@ -639,6 +650,12 @@ const _routes = [
meta: { ...__nuxt_page_meta$1 || {}, ...{ "middleware": "auth" } }, meta: { ...__nuxt_page_meta$1 || {}, ...{ "middleware": "auth" } },
component: () => import('./profil-Dm_3uuTL.mjs') component: () => import('./profil-Dm_3uuTL.mjs')
}, },
{
name: "cms-vereinsmeisterschaften",
path: "/cms/vereinsmeisterschaften",
meta: { "middleware": "auth" },
component: () => import('./vereinsmeisterschaften-DNSbF6G8.mjs')
},
{ {
name: "cms-mitgliedschaftsantraege", name: "cms-mitgliedschaftsantraege",
path: "/cms/mitgliedschaftsantraege", path: "/cms/mitgliedschaftsantraege",
@@ -1888,10 +1905,10 @@ const _sfc_main$5 = {
}, { }, {
default: withCtx((_, _push2, _parent2, _scopeId) => { default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) { if (_push2) {
_push2(` Interne News `); _push2(` News `);
} else { } else {
return [ return [
createTextVNode(" Interne News ") createTextVNode(" News ")
]; ];
} }
}), }),
@@ -2003,6 +2020,22 @@ const _sfc_main$5 = {
}), }),
_: 1 _: 1
}, _parent)); }, _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(`<div class="border-t border-gray-700 my-1"></div>`);
_push(ssrRenderComponent(_component_NuxtLink, { _push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/news", to: "/mitgliederbereich/news",
@@ -2011,10 +2044,10 @@ const _sfc_main$5 = {
}, { }, {
default: withCtx((_, _push2, _parent2, _scopeId) => { default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) { if (_push2) {
_push2(` Interne News `); _push2(` News `);
} else { } else {
return [ return [
createTextVNode(" Interne News ") createTextVNode(" News ")
]; ];
} }
}), }),
@@ -2036,6 +2069,22 @@ const _sfc_main$5 = {
}), }),
_: 1 _: 1
}, _parent)); }, _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, { _push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/mitglieder", to: "/mitgliederbereich/mitglieder",
onClick: ($event) => showCmsDropdown.value = false, onClick: ($event) => showCmsDropdown.value = false,
@@ -2497,10 +2546,10 @@ const _sfc_main$5 = {
}, { }, {
default: withCtx((_, _push2, _parent2, _scopeId) => { default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) { if (_push2) {
_push2(` Interne News `); _push2(` News `);
} else { } else {
return [ return [
createTextVNode(" Interne News ") createTextVNode(" News ")
]; ];
} }
}), }),
@@ -2547,10 +2596,10 @@ const _sfc_main$5 = {
}, { }, {
default: withCtx((_, _push2, _parent2, _scopeId) => { default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) { if (_push2) {
_push2(` Interne News `); _push2(` News `);
} else { } else {
return [ return [
createTextVNode(" Interne News ") createTextVNode(" News ")
]; ];
} }
}), }),
@@ -2572,6 +2621,22 @@ const _sfc_main$5 = {
}), }),
_: 1 _: 1
}, _parent)); }, _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, { _push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/mitglieder", to: "/mitgliederbereich/mitglieder",
onClick: ($event) => isMobileMenuOpen.value = false, onClick: ($event) => isMobileMenuOpen.value = false,
@@ -2652,6 +2717,22 @@ const _sfc_main$5 = {
}), }),
_: 1 _: 1
}, _parent)); }, _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, { _push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms/einstellungen", to: "/cms/einstellungen",
onClick: ($event) => isMobileMenuOpen.value = false, onClick: ($event) => isMobileMenuOpen.value = false,

View File

@@ -1,13 +1,13 @@
const interopDefault = r => r.default || r || []; const interopDefault = r => r.default || r || [];
const styles = { 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-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), "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/Hero.vue?vue&type=style&index=0&scoped=28200092&lang.css": () => import('./Hero-styles.CNXkzfUC.mjs').then(interopDefault),
"components/PublicNews.vue": () => import('./PublicNews-styles.nhqk16g5.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-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), "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)
}; };
export { styles as default }; export { styles as default };

File diff suppressed because it is too large Load Diff

View File

@@ -15,7 +15,16 @@ import 'crypto';
const newsPublic_get = defineEventHandler(async (event) => { const newsPublic_get = defineEventHandler(async (event) => {
try { try {
const allNews = await readNews(); const allNews = await readNews();
const publicNews = allNews.filter((item) => item.isPublic === true); const now = /* @__PURE__ */ new Date();
const publicNews = allNews.filter((item) => {
if (!item.isPublic) return false;
if (item.isHidden) return false;
if (item.expiresAt) {
const expiresAt = new Date(item.expiresAt);
if (expiresAt <= now) return false;
}
return true;
});
publicNews.sort((a, b) => new Date(b.created) - new Date(a.created)); publicNews.sort((a, b) => new Date(b.created) - new Date(a.created));
const latestNews = publicNews.slice(0, 3); const latestNews = publicNews.slice(0, 3);
return { return {

View File

@@ -1 +1 @@
{"version":3,"file":"news-public.get.mjs","sources":["../../../../../server/api/news-public.get.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;AAEA,uBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,OAAA,GAAA,MAAA,QAAA,EAAA;AAGA,IAAA,MAAA,aAAA,OAAA,CAAA,MAAA,CAAA,CAAA,IAAA,KAAA,IAAA,CAAA,aAAA,IAAA,CAAA;AAGA,IAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAGA,IAAA,MAAA,UAAA,GAAA,UAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,IAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,iDAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"news-public.get.mjs","sources":["../../../../../server/api/news-public.get.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;AAEA,uBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,OAAA,GAAA,MAAA,QAAA,EAAA;AACA,IAAA,MAAA,GAAA,uBAAA,IAAA,EAAA;AAGA,IAAA,MAAA,UAAA,GAAA,OAAA,CAAA,MAAA,CAAA,CAAA,IAAA,KAAA;AAEA,MAAA,IAAA,CAAA,IAAA,CAAA,QAAA,EAAA,OAAA,KAAA;AAGA,MAAA,IAAA,IAAA,CAAA,UAAA,OAAA,KAAA;AAGA,MAAA,IAAA,KAAA,SAAA,EAAA;AACA,QAAA,MAAA,SAAA,GAAA,IAAA,IAAA,CAAA,IAAA,CAAA,SAAA,CAAA;AACA,QAAA,IAAA,SAAA,IAAA,KAAA,OAAA,KAAA;AAAA,MACA;AAEA,MAAA,OAAA,IAAA;AAAA,IACA,CAAA,CAAA;AAGA,IAAA,UAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAGA,IAAA,MAAA,UAAA,GAAA,UAAA,CAAA,KAAA,CAAA,CAAA,EAAA,CAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,IAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,iDAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -39,7 +39,7 @@ const news_post = defineEventHandler(async (event) => {
}); });
} }
const body = await readBody(event); const body = await readBody(event);
const { id, title, content, isPublic } = body; const { id, title, content, isPublic, expiresAt, isHidden } = body;
if (!title || !content) { if (!title || !content) {
throw createError({ throw createError({
statusCode: 400, statusCode: 400,
@@ -51,6 +51,8 @@ const news_post = defineEventHandler(async (event) => {
title, title,
content, content,
isPublic: isPublic || false, isPublic: isPublic || false,
expiresAt: expiresAt || void 0,
isHidden: isHidden || false,
author: user.name author: user.name
}); });
return { return {

View File

@@ -1 +1 @@
{"version":3,"file":"news.post.mjs","sources":["../../../../../server/api/news.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,QAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,QAAA,IAAA,KAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,mCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"news.post.mjs","sources":["../../../../../server/api/news.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,kBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,SAAA,QAAA,EAAA,SAAA,EAAA,UAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,QAAA,CAAA;AAAA,MACA,IAAA,EAAA,IAAA,KAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,QAAA,IAAA,KAAA;AAAA,MACA,WAAA,SAAA,IAAA,KAAA,CAAA;AAAA,MACA,UAAA,QAAA,IAAA,KAAA;AAAA,MACA,QAAA,IAAA,CAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,mCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -39,7 +39,7 @@ const termineManage_delete = defineEventHandler(async (event) => {
}); });
} }
const query = getQuery(event); const query = getQuery(event);
const { datum, titel, beschreibung, kategorie } = query; const { datum, uhrzeit, titel, beschreibung, kategorie } = query;
if (!datum || !titel) { if (!datum || !titel) {
throw createError({ throw createError({
statusCode: 400, statusCode: 400,
@@ -48,6 +48,7 @@ const termineManage_delete = defineEventHandler(async (event) => {
} }
await deleteTermin({ await deleteTermin({
datum, datum,
uhrzeit: uhrzeit || "",
titel, titel,
beschreibung: beschreibung || "", beschreibung: beschreibung || "",
kategorie: kategorie || "Sonstiges" kategorie: kategorie || "Sonstiges"

View File

@@ -1 +1 @@
{"version":3,"file":"termine-manage.delete.mjs","sources":["../../../../../server/api/termine-manage.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,6BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,WAAA,GAAA,KAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,YAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA,YAAA,IAAA,EAAA;AAAA,MACA,WAAA,SAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,uCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"termine-manage.delete.mjs","sources":["../../../../../server/api/termine-manage.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,6BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,KAAA,GAAA,SAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,YAAA,EAAA,WAAA,GAAA,KAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,YAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,OAAA,IAAA,EAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA,YAAA,IAAA,EAAA;AAAA,MACA,WAAA,SAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,uCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -39,7 +39,7 @@ const termineManage_post = defineEventHandler(async (event) => {
}); });
} }
const body = await readBody(event); const body = await readBody(event);
const { datum, titel, beschreibung, kategorie } = body; const { datum, uhrzeit, titel, beschreibung, kategorie } = body;
if (!datum || !titel) { if (!datum || !titel) {
throw createError({ throw createError({
statusCode: 400, statusCode: 400,
@@ -48,6 +48,7 @@ const termineManage_post = defineEventHandler(async (event) => {
} }
await saveTermin({ await saveTermin({
datum, datum,
uhrzeit: uhrzeit || "",
titel, titel,
beschreibung: beschreibung || "", beschreibung: beschreibung || "",
kategorie: kategorie || "Sonstiges" kategorie: kategorie || "Sonstiges"

View File

@@ -1 +1 @@
{"version":3,"file":"termine-manage.post.mjs","sources":["../../../../../server/api/termine-manage.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,KAAA,EAAA,KAAA,EAAA,YAAA,EAAA,WAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA,YAAA,IAAA,EAAA;AAAA,MACA,WAAA,SAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,sCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"termine-manage.post.mjs","sources":["../../../../../server/api/termine-manage.post.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,2BAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,KAAA,GAAA,SAAA,CAAA,KAAA,EAAA,YAAA,CAAA;AAEA,IAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,OAAA,GAAA,YAAA,KAAA,CAAA;AAEA,IAAA,IAAA,CAAA,OAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,WAAA,CAAA,OAAA,CAAA,EAAA,CAAA;AAGA,IAAA,IAAA,CAAA,IAAA,IAAA,IAAA,CAAA,SAAA,OAAA,IAAA,IAAA,CAAA,SAAA,UAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,IAAA,GAAA,MAAA,QAAA,CAAA,KAAA,CAAA;AACA,IAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,YAAA,EAAA,WAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,KAAA,IAAA,CAAA,KAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,CAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,OAAA,IAAA,EAAA;AAAA,MACA,KAAA;AAAA,MACA,cAAA,YAAA,IAAA,EAAA;AAAA,MACA,WAAA,SAAA,IAAA;AAAA,KACA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA,OAAA,EAAA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,sCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -44,9 +44,10 @@ const termine_get = defineEventHandler(async (event) => {
if (values.length >= 4) { if (values.length >= 4) {
termine.push({ termine.push({
datum: values[0], datum: values[0],
titel: values[1], uhrzeit: values[1] || "",
beschreibung: values[2], titel: values[2] || "",
kategorie: values[3] beschreibung: values[3] || "",
kategorie: values[4] || "Sonstiges"
}); });
} }
} }

View File

@@ -1 +1 @@
{"version":3,"file":"termine.get.mjs","sources":["../../../../../server/api/termine.get.js"],"sourcesContent":null,"names":["fs"],"mappings":";;;;;;;;;;;;AAGA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,GAAA,GAAA,QAAA,GAAA,EAAA;AAGA,IAAA,IAAA,OAAA;AACA,IAAA,IAAA,GAAA,CAAA,QAAA,CAAA,SAAA,CAAA,EAAA;AACA,MAAA,OAAA,GAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,4BAAA,CAAA;AAAA,IACA,CAAA,MAAA;AACA,MAAA,OAAA,GAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,yBAAA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,GAAA,GAAA,MAAAA,QAAA,CAAA,QAAA,CAAA,SAAA,OAAA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,GAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,OAAA,CAAA,IAAA,KAAA,IAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA;AAEA,IAAA,IAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AACA,MAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,EAAA;AACA,IAAA,KAAA,IAAA,CAAA,GAAA,CAAA,EAAA,CAAA,GAAA,KAAA,CAAA,QAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,SAAA,EAAA;AACA,MAAA,IAAA,OAAA,GAAA,EAAA;AACA,MAAA,IAAA,QAAA,GAAA,KAAA;AAEA,MAAA,KAAA,IAAA,IAAA,CAAA,EAAA,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,EAAA;AACA,QAAA,MAAA,IAAA,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,QAAA,IAAA,SAAA,GAAA,EAAA;AACA,UAAA,QAAA,GAAA,CAAA,QAAA;AAAA,QACA,CAAA,MAAA,IAAA,IAAA,KAAA,GAAA,IAAA,CAAA,QAAA,EAAA;AACA,UAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA;AACA,UAAA,OAAA,GAAA,EAAA;AAAA,QACA,CAAA,MAAA;AACA,UAAA,OAAA,IAAA,IAAA;AAAA,QACA;AAAA,MACA;AACA,MAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA;AAEA,MAAA,IAAA,MAAA,CAAA,UAAA,CAAA,EAAA;AACA,QAAA,OAAA,CAAA,IAAA,CAAA;AAAA,UACA,KAAA,EAAA,OAAA,CAAA,CAAA;AAAA,UACA,KAAA,EAAA,OAAA,CAAA,CAAA;AAAA,UACA,YAAA,EAAA,OAAA,CAAA,CAAA;AAAA,UACA,SAAA,EAAA,OAAA,CAAA;AAAA,SACA,CAAA;AAAA,MACA;AAAA,IACA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,kCAAA,KAAA,CAAA;AACA,IAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"} {"version":3,"file":"termine.get.mjs","sources":["../../../../../server/api/termine.get.js"],"sourcesContent":null,"names":["fs"],"mappings":";;;;;;;;;;;;AAGA,oBAAA,kBAAA,CAAA,OAAA,KAAA,KAAA;AACA,EAAA,IAAA;AACA,IAAA,MAAA,GAAA,GAAA,QAAA,GAAA,EAAA;AAGA,IAAA,IAAA,OAAA;AACA,IAAA,IAAA,GAAA,CAAA,QAAA,CAAA,SAAA,CAAA,EAAA;AACA,MAAA,OAAA,GAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,4BAAA,CAAA;AAAA,IACA,CAAA,MAAA;AACA,MAAA,OAAA,GAAA,IAAA,CAAA,IAAA,CAAA,GAAA,EAAA,yBAAA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,GAAA,GAAA,MAAAA,QAAA,CAAA,QAAA,CAAA,SAAA,OAAA,CAAA;AACA,IAAA,MAAA,KAAA,GAAA,GAAA,CAAA,KAAA,CAAA,IAAA,CAAA,CAAA,OAAA,CAAA,IAAA,KAAA,IAAA,CAAA,IAAA,EAAA,KAAA,EAAA,CAAA;AAEA,IAAA,IAAA,KAAA,CAAA,SAAA,CAAA,EAAA;AACA,MAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA;AAAA,IACA;AAEA,IAAA,MAAA,UAAA,EAAA;AACA,IAAA,KAAA,IAAA,CAAA,GAAA,CAAA,EAAA,CAAA,GAAA,KAAA,CAAA,QAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,SAAA,EAAA;AACA,MAAA,IAAA,OAAA,GAAA,EAAA;AACA,MAAA,IAAA,QAAA,GAAA,KAAA;AAEA,MAAA,KAAA,IAAA,IAAA,CAAA,EAAA,CAAA,GAAA,MAAA,CAAA,CAAA,CAAA,QAAA,CAAA,EAAA,EAAA;AACA,QAAA,MAAA,IAAA,GAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAEA,QAAA,IAAA,SAAA,GAAA,EAAA;AACA,UAAA,QAAA,GAAA,CAAA,QAAA;AAAA,QACA,CAAA,MAAA,IAAA,IAAA,KAAA,GAAA,IAAA,CAAA,QAAA,EAAA;AACA,UAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA;AACA,UAAA,OAAA,GAAA,EAAA;AAAA,QACA,CAAA,MAAA;AACA,UAAA,OAAA,IAAA,IAAA;AAAA,QACA;AAAA,MACA;AACA,MAAA,MAAA,CAAA,IAAA,CAAA,OAAA,CAAA,IAAA,EAAA,CAAA;AAEA,MAAA,IAAA,MAAA,CAAA,UAAA,CAAA,EAAA;AACA,QAAA,OAAA,CAAA,IAAA,CAAA;AAAA,UACA,KAAA,EAAA,OAAA,CAAA,CAAA;AAAA,UACA,OAAA,EAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA;AAAA,UACA,KAAA,EAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA;AAAA,UACA,YAAA,EAAA,MAAA,CAAA,CAAA,CAAA,IAAA,EAAA;AAAA,UACA,SAAA,EAAA,MAAA,CAAA,CAAA,CAAA,IAAA;AAAA,SACA,CAAA;AAAA,MACA;AAAA,IACA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,kCAAA,KAAA,CAAA;AACA,IAAA,OAAA,EAAA,OAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -272,7 +272,7 @@ async function renderInlineStyles(usedModules) {
const renderSSRHeadOptions = {"omitLineBreaks":true}; const renderSSRHeadOptions = {"omitLineBreaks":true};
const entryFileName = "BBtX9g-c.js"; const entryFileName = "BEmwqjje.js";
globalThis.__buildAssetsURL = buildAssetsURL; globalThis.__buildAssetsURL = buildAssetsURL;
globalThis.__publicAssetsURL = publicAssetsURL; globalThis.__publicAssetsURL = publicAssetsURL;

View File

@@ -64,20 +64,7 @@
</div> </div>
</div> </div>
<!-- Links -->
<div class="border-t border-gray-200 pt-6 mt-6">
<div class="text-center">
<a
v-if="mannschaft.weitere_informationen_link && mannschaft.weitere_informationen_link !== ''"
:href="mannschaft.weitere_informationen_link"
target="_blank"
class="inline-flex items-center px-6 py-3 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors"
>
<BarChart :size="20" class="mr-2" />
Weitere Informationen
</a>
</div>
</div>
<!-- Letzte Aktualisierung --> <!-- Letzte Aktualisierung -->
<div class="border-t border-gray-200 pt-4 mt-6"> <div class="border-t border-gray-200 pt-4 mt-6">

View File

@@ -13,57 +13,7 @@
<MannschaftenUebersicht /> <MannschaftenUebersicht />
<div class="mt-16"> <div class="mt-16">
<h2 class="text-3xl font-display font-bold text-gray-900 mb-8 text-center"> <div class="bg-primary-50 p-8 rounded-xl border border-primary-100">
Weitere Informationen
</h2>
<div class="grid md:grid-cols-3 gap-8">
<NuxtLink
to="/mannschaften/herren"
class="group bg-white p-8 rounded-xl shadow-lg hover:shadow-2xl transition-all border border-gray-100 hover:border-primary-600"
>
<div class="w-16 h-16 bg-gradient-to-br from-primary-500 to-primary-700 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
<Users :size="32" class="text-white" />
</div>
<h3 class="text-2xl font-display font-bold text-gray-900 mb-2 group-hover:text-primary-600 transition-colors">
Herren
</h3>
<p class="text-gray-600">
3 Mannschaften in verschiedenen Ligen
</p>
</NuxtLink>
<NuxtLink
to="/mannschaften/damen"
class="group bg-white p-8 rounded-xl shadow-lg hover:shadow-2xl transition-all border border-gray-100 hover:border-primary-600"
>
<div class="w-16 h-16 bg-gradient-to-br from-primary-500 to-primary-700 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
<Users :size="32" class="text-white" />
</div>
<h3 class="text-2xl font-display font-bold text-gray-900 mb-2 group-hover:text-primary-600 transition-colors">
Damen
</h3>
<p class="text-gray-600">
1 Mannschaft in der Bezirksliga
</p>
</NuxtLink>
<NuxtLink
to="/mannschaften/jugend"
class="group bg-white p-8 rounded-xl shadow-lg hover:shadow-2xl transition-all border border-gray-100 hover:border-primary-600"
>
<div class="w-16 h-16 bg-gradient-to-br from-primary-500 to-primary-700 rounded-xl flex items-center justify-center mb-4 group-hover:scale-110 transition-transform">
<Users :size="32" class="text-white" />
</div>
<h3 class="text-2xl font-display font-bold text-gray-900 mb-2 group-hover:text-primary-600 transition-colors">
Jugend
</h3>
<p class="text-gray-600">
2 Jugendmannschaften
</p>
</NuxtLink>
</div>
<div class="mt-12 bg-primary-50 p-8 rounded-xl border border-primary-100">
<h3 class="text-2xl font-display font-bold text-gray-900 mb-4"> <h3 class="text-2xl font-display font-bold text-gray-900 mb-4">
Spielpläne & Ergebnisse Spielpläne & Ergebnisse
</h3> </h3>
@@ -83,7 +33,6 @@
</template> </template>
<script setup> <script setup>
import { Users } from 'lucide-vue-next'
import MannschaftenUebersicht from '~/components/MannschaftenUebersicht.vue' import MannschaftenUebersicht from '~/components/MannschaftenUebersicht.vue'
useHead({ useHead({

View File

@@ -27,7 +27,7 @@
<div> <div>
<h3 class="text-xl font-semibold text-gray-900 mb-1">{{ termin.titel }}</h3> <h3 class="text-xl font-semibold text-gray-900 mb-1">{{ termin.titel }}</h3>
<p class="text-gray-600 mb-2">{{ termin.beschreibung }}</p> <p class="text-gray-600 mb-2">{{ termin.beschreibung }}</p>
<p class="text-sm text-gray-500">{{ formatFullDate(termin.datum) }}</p> <p class="text-sm text-gray-500">{{ formatFullDateTime(termin.datum, termin.uhrzeit) }}</p>
</div> </div>
<span :class="[ <span :class="[
'px-3 py-1 text-sm font-medium rounded-full', 'px-3 py-1 text-sm font-medium rounded-full',
@@ -74,10 +74,20 @@ const naechsteTermine = computed(() => {
return termine.value return termine.value
.filter(t => { .filter(t => {
const terminDatum = new Date(t.datum) // Datum + optionale Uhrzeit berücksichtigen
let terminDatum
if (t.uhrzeit && /^\d{2}:\d{2}$/.test(t.uhrzeit)) {
terminDatum = new Date(`${t.datum}T${t.uhrzeit}:00`)
} else {
terminDatum = new Date(t.datum)
}
return terminDatum >= heute return terminDatum >= heute
}) })
.sort((a, b) => new Date(a.datum) - new Date(b.datum)) .sort((a, b) => {
const da = new Date(`${a.datum}${a.uhrzeit ? 'T' + a.uhrzeit + ':00' : ''}`)
const db = new Date(`${b.datum}${b.uhrzeit ? 'T' + b.uhrzeit + ':00' : ''}`)
return da - db
})
}) })
const formatDay = (dateString) => { const formatDay = (dateString) => {
@@ -95,10 +105,15 @@ const formatFullDate = (dateString) => {
const date = new Date(dateString) const date = new Date(dateString)
const wochentage = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'] const wochentage = ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']
const monate = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'] const monate = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
return `${wochentage[date.getDay()]}, ${date.getDate()}. ${monate[date.getMonth()]} ${date.getFullYear()}` return `${wochentage[date.getDay()]}, ${date.getDate()}. ${monate[date.getMonth()]} ${date.getFullYear()}`
} }
const formatFullDateTime = (datum, uhrzeit) => {
const base = formatFullDate(datum)
const time = uhrzeit && /^\d{2}:\d{2}$/.test(uhrzeit) ? `${uhrzeit} Uhr` : ''
return time ? `${base} ${time}` : base
}
const loadTermine = async () => { const loadTermine = async () => {
try { try {
const response = await $fetch('/api/termine') const response = await $fetch('/api/termine')

View File

@@ -98,8 +98,8 @@
"strasse": "Reginastr. 46", "strasse": "Reginastr. 46",
"plz": "60437", "plz": "60437",
"ort": "Frankfurt", "ort": "Frankfurt",
"telefon": "06101 122", "telefon": "06101-9953015",
"email": "j.dichmann@gmx.de" "email": "rogerdichmann@gmx.de"
}, },
"stellvertreter": { "stellvertreter": {
"vorname": "Jürgen", "vorname": "Jürgen",
@@ -126,7 +126,7 @@
"plz": "60437", "plz": "60437",
"ort": "Frankfurt", "ort": "Frankfurt",
"telefon": "06101-4992227", "telefon": "06101-4992227",
"email": "" "email": "j.dichmann@gmx.de"
}, },
"sportwart": { "sportwart": {
"vorname": "", "vorname": "",