Replace footer Mitglieder dropdown with direct Abmelden button when logged in

This commit is contained in:
Torsten Schulz (local)
2025-10-21 14:48:09 +02:00
parent cf2855be83
commit 55a70a1c98
31 changed files with 764 additions and 296 deletions

View File

@@ -1,5 +1,5 @@
{
"date": "2025-10-21T12:43:35.107Z",
"date": "2025-10-21T12:47:48.207Z",
"preset": "node-server",
"framework": {
"name": "nuxt",

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
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 t=e("SquarePenIcon",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z",key:"1lpok0"}]]);/**
* @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 c=e("Trash2Icon",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);export{t as S,c as T};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"id":"fded8fe3-e37f-48d2-bfc6-ef86564402c9","timestamp":1761050608299}
{"id":"6ef9e296-99be-4599-9f49-638dee8af612","timestamp":1761050861173}

View File

@@ -0,0 +1 @@
{"id":"6ef9e296-99be-4599-9f49-638dee8af612","timestamp":1761050861173,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

View File

@@ -1 +0,0 @@
{"id":"fded8fe3-e37f-48d2-bfc6-ef86564402c9","timestamp":1761050608299,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,66 @@
import { promises } from 'fs';
import path from 'path';
const getDataPath = (filename) => {
const cwd = process.cwd();
if (cwd.endsWith(".output")) {
return path.join(cwd, "../server/data", filename);
}
return path.join(cwd, "server/data", filename);
};
const NEWS_FILE = getDataPath("news.json");
async function readNews() {
try {
const data = await promises.readFile(NEWS_FILE, "utf-8");
return JSON.parse(data);
} catch (error) {
if (error.code === "ENOENT") {
return [];
}
console.error("Fehler beim Lesen der News:", error);
return [];
}
}
async function writeNews(news) {
try {
await promises.writeFile(NEWS_FILE, JSON.stringify(news, null, 2), "utf-8");
return true;
} catch (error) {
console.error("Fehler beim Schreiben der News:", error);
return false;
}
}
async function saveNews(newsData) {
const newsList = await readNews();
if (newsData.id) {
const index = newsList.findIndex((n) => n.id === newsData.id);
if (index !== -1) {
newsList[index] = {
...newsList[index],
...newsData,
updated: (/* @__PURE__ */ new Date()).toISOString()
};
} else {
throw new Error("News nicht gefunden");
}
} else {
const newItem = {
id: `n${Date.now()}`,
...newsData,
created: (/* @__PURE__ */ new Date()).toISOString(),
updated: (/* @__PURE__ */ new Date()).toISOString()
};
newsList.unshift(newItem);
}
await writeNews(newsList);
return true;
}
async function deleteNews(id) {
const newsList = await readNews();
const filtered = newsList.filter((n) => n.id !== id);
await writeNews(filtered);
return true;
}
export { deleteNews as d, readNews as r, saveNews as s };
//# sourceMappingURL=news.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"news.mjs","sources":["../../../../server/utils/news.js"],"sourcesContent":null,"names":["fs"],"mappings":";;;AAIA,MAAM,WAAA,GAAc,CAAC,QAAA,KAAa;AAChC,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,EAAI;AAGxB,EAAA,IAAI,GAAA,CAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AAC3B,IAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,gBAAA,EAAkB,QAAQ,CAAA;AAAA,EAClD;AAGA,EAAA,OAAO,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,aAAA,EAAe,QAAQ,CAAA;AAC/C,CAAA;AAEA,MAAM,SAAA,GAAY,YAAY,WAAW,CAAA;AAGzC,eAAsB,QAAA,GAAW;AAC/B,EAAA,IAAI;AACF,IAAA,MAAM,IAAA,GAAO,MAAMA,QAAA,CAAG,QAAA,CAAS,WAAW,OAAO,CAAA;AACjD,IAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,EACxB,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,CAAM,SAAS,QAAA,EAAU;AAC3B,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAA,CAAQ,KAAA,CAAM,+BAA+B,KAAK,CAAA;AAClD,IAAA,OAAO,EAAC;AAAA,EACV;AACF;AAGA,eAAsB,UAAU,IAAA,EAAM;AACpC,EAAA,IAAI;AACF,IAAA,MAAMA,QAAA,CAAG,UAAU,SAAA,EAAW,IAAA,CAAK,UAAU,IAAA,EAAM,IAAA,EAAM,CAAC,CAAA,EAAG,OAAO,CAAA;AACpE,IAAA,OAAO,IAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,mCAAmC,KAAK,CAAA;AACtD,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AASA,eAAsB,SAAS,QAAA,EAAU;AACvC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAEhC,EAAA,IAAI,SAAS,EAAA,EAAI;AAEf,IAAA,MAAM,QAAQ,QAAA,CAAS,SAAA,CAAU,OAAK,CAAA,CAAE,EAAA,KAAO,SAAS,EAAE,CAAA;AAC1D,IAAA,IAAI,UAAU,EAAA,EAAI;AAChB,MAAA,QAAA,CAAS,KAAK,CAAA,GAAI;AAAA,QAChB,GAAG,SAAS,KAAK,CAAA;AAAA,QACjB,GAAG,QAAA;AAAA,QACH,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,OAClC;AAAA,IACF,CAAA,MAAO;AACL,MAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,IACvC;AAAA,EACF,CAAA,MAAO;AAEL,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,EAAA,EAAI,CAAA,CAAA,EAAI,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAAA,MAClB,GAAG,QAAA;AAAA,MACH,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAAA,MAChC,OAAA,EAAA,iBAAS,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,KAClC;AACA,IAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAAA,EAC1B;AAEA,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;AAGA,eAAsB,WAAW,EAAA,EAAI;AACnC,EAAA,MAAM,QAAA,GAAW,MAAM,QAAA,EAAS;AAChC,EAAA,MAAM,WAAW,QAAA,CAAS,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,CAAE,OAAO,EAAE,CAAA;AACjD,EAAA,MAAM,UAAU,QAAQ,CAAA;AACxB,EAAA,OAAO,IAAA;AACT;;;;"}

View File

@@ -43,6 +43,17 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js"
]
},
"_CGpRzXRB.js": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CGpRzXRB.js",
"name": "trash-2",
"imports": [
"node_modules/nuxt/dist/app/entry.js"
]
},
"_CUq_0rkE.js": {
"resourceType": "script",
"module": true,
@@ -274,7 +285,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "Dorx0xsu.js",
"file": "C2cwm15W.js",
"name": "entry",
"src": "node_modules/nuxt/dist/app/entry.js",
"isEntry": true,
@@ -284,14 +295,14 @@ const client_manifest = {
"node_modules/nuxt/dist/app/components/error-500.vue"
],
"css": [
"entry.FYEsgUy-.css"
"entry.DJXn10xo.css"
],
"assets": [
"Harheimer TC.CKfYAfp1.svg"
]
},
"entry.FYEsgUy-.css": {
"file": "entry.FYEsgUy-.css",
"entry.DJXn10xo.css": {
"file": "entry.DJXn10xo.css",
"resourceType": "style",
"prefetch": true,
"preload": true
@@ -563,7 +574,7 @@ const client_manifest = {
"module": true,
"prefetch": true,
"preload": true,
"file": "Ctsomia6.js",
"file": "BFjcARf_.js",
"name": "mitglieder",
"src": "pages/mitgliederbereich/mitglieder.vue",
"isDynamicEntry": true,
@@ -571,12 +582,32 @@ const client_manifest = {
"node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js",
"_CUq_0rkE.js",
"_CGpRzXRB.js",
"_SRZHqrjk.js",
"_C5SyyWEb.js",
"_BteKZQ9T.js",
"_C8kQt0fa.js"
]
},
"pages/mitgliederbereich/news.vue": {
"resourceType": "script",
"module": true,
"prefetch": true,
"preload": true,
"file": "CwfNFVsO.js",
"name": "news",
"src": "pages/mitgliederbereich/news.vue",
"isDynamicEntry": true,
"imports": [
"node_modules/nuxt/dist/app/entry.js",
"_Qy3ajxTk.js",
"_CUq_0rkE.js",
"_YJHbYJtA.js",
"_CGpRzXRB.js",
"_DAACT36i.js",
"_C8kQt0fa.js"
]
},
"pages/mitgliederbereich/profil.vue": {
"resourceType": "script",
"module": true,

File diff suppressed because one or more lines are too long

View File

@@ -44,7 +44,9 @@ const _sfc_main = {
return authStore.role === "admin" || authStore.role === "vorstand";
});
const canViewContactData = computed(() => {
return authStore.role === "vorstand";
const role = authStore.role;
console.log("Current role:", role, "Can view contact:", role === "vorstand");
return role === "vorstand";
});
const formatDate = (dateString) => {
if (!dateString) return "";
@@ -288,4 +290,4 @@ _sfc_main.setup = (props, ctx) => {
};
export { _sfc_main as default };
//# sourceMappingURL=mitglieder-B4jiyTlo.mjs.map
//# sourceMappingURL=mitglieder-DAbmufxC.mjs.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,167 @@
import { ref, computed, mergeProps, unref, useSSRContext } from 'vue';
import { ssrRenderAttrs, ssrRenderComponent, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr } from 'vue/server-renderer';
import { Plus, Loader2, User, Calendar, Edit, Trash2, Newspaper, AlertCircle } from 'lucide-vue-next';
import { u as useAuthStore } from './server.mjs';
import { u as useHead } from './composables-CK-Mp9jS.mjs';
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 = {
__name: "news",
__ssrInlineRender: true,
setup(__props) {
const authStore = useAuthStore();
const isLoading = ref(true);
const isSaving = ref(false);
const news = ref([]);
const showModal = ref(false);
const editingNews = ref(null);
const errorMessage = ref("");
const formData = ref({
title: "",
content: ""
});
const canWrite = computed(() => {
return authStore.role === "admin" || authStore.role === "vorstand";
});
const formatDate = (dateString) => {
if (!dateString) return "";
const date = new Date(dateString);
return date.toLocaleDateString("de-DE", {
year: "numeric",
month: "long",
day: "numeric",
hour: "2-digit",
minute: "2-digit"
});
};
useHead({
title: "Interne News - Harheimer TC"
});
return (_ctx, _push, _parent, _attrs) => {
_push(`<div${ssrRenderAttrs(mergeProps({ class: "min-h-full py-16 bg-gray-50" }, _attrs))}><div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8"><div class="flex justify-between items-center mb-6"><div><h1 class="text-4xl sm:text-5xl font-display font-bold text-gray-900 mb-2"> Interne News </h1><div class="w-24 h-1 bg-primary-600 mb-4"></div></div>`);
if (canWrite.value) {
_push(`<button class="flex items-center px-4 py-2 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors">`);
_push(ssrRenderComponent(unref(Plus), {
size: 20,
class: "mr-2"
}, null, _parent));
_push(` News erstellen </button>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
if (isLoading.value) {
_push(`<div class="flex items-center justify-center py-12">`);
_push(ssrRenderComponent(unref(Loader2), {
size: 40,
class: "animate-spin text-primary-600"
}, null, _parent));
_push(`</div>`);
} else {
_push(`<div class="space-y-6"><!--[-->`);
ssrRenderList(news.value, (item) => {
_push(`<article class="bg-white rounded-xl shadow-lg p-6 border border-gray-100"><div class="flex justify-between items-start mb-4"><div class="flex-1"><h2 class="text-2xl font-display font-bold text-gray-900 mb-2">${ssrInterpolate(item.title)}</h2><div class="flex items-center text-sm text-gray-500 space-x-4"><div class="flex items-center">`);
_push(ssrRenderComponent(unref(User), {
size: 16,
class: "mr-1"
}, null, _parent));
_push(` ${ssrInterpolate(item.author)}</div><div class="flex items-center">`);
_push(ssrRenderComponent(unref(Calendar), {
size: 16,
class: "mr-1"
}, null, _parent));
_push(` ${ssrInterpolate(formatDate(item.created))}</div>`);
if (item.updated !== item.created) {
_push(`<div class="flex items-center">`);
_push(ssrRenderComponent(unref(Edit), {
size: 16,
class: "mr-1"
}, null, _parent));
_push(` Aktualisiert: ${ssrInterpolate(formatDate(item.updated))}</div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
if (canWrite.value) {
_push(`<div class="flex space-x-2 ml-4"><button class="p-2 text-blue-600 hover:bg-blue-50 rounded-lg transition-colors" title="Bearbeiten">`);
_push(ssrRenderComponent(unref(Edit), { size: 20 }, null, _parent));
_push(`</button><button class="p-2 text-red-600 hover:bg-red-50 rounded-lg transition-colors" title="Löschen">`);
_push(ssrRenderComponent(unref(Trash2), { size: 20 }, null, _parent));
_push(`</button></div>`);
} else {
_push(`<!---->`);
}
_push(`</div><div class="prose prose-lg max-w-none text-gray-700 whitespace-pre-wrap">${ssrInterpolate(item.content)}</div></article>`);
});
_push(`<!--]-->`);
if (news.value.length === 0) {
_push(`<div class="text-center py-12">`);
_push(ssrRenderComponent(unref(Newspaper), {
size: 48,
class: "mx-auto text-gray-400 mb-4"
}, null, _parent));
_push(`<p class="text-gray-500 text-lg">Noch keine internen News vorhanden.</p>`);
if (canWrite.value) {
_push(`<p class="text-gray-400 text-sm mt-2"> Klicken Sie auf &quot;News erstellen&quot;, um die erste News zu veröffentlichen. </p>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
_push(`</div>`);
}
if (showModal.value) {
_push(`<div class="fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4"><div class="bg-white rounded-xl shadow-2xl max-w-3xl w-full p-8 max-h-[90vh] overflow-y-auto"><h2 class="text-2xl font-display font-bold text-gray-900 mb-6">${ssrInterpolate(editingNews.value ? "News bearbeiten" : "News erstellen")}</h2><form class="space-y-4"><div><label class="block text-sm font-medium text-gray-700 mb-2">Titel *</label><input${ssrRenderAttr("value", formData.value.title)} type="text" required class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500"${ssrIncludeBooleanAttr(isSaving.value) ? " disabled" : ""}></div><div><label class="block text-sm font-medium text-gray-700 mb-2">Inhalt *</label><textarea rows="12" required class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary-500"${ssrIncludeBooleanAttr(isSaving.value) ? " disabled" : ""}>${ssrInterpolate(formData.value.content)}</textarea></div>`);
if (errorMessage.value) {
_push(`<div class="flex items-center p-3 rounded-md bg-red-50 text-red-700 text-sm">`);
_push(ssrRenderComponent(unref(AlertCircle), {
size: 20,
class: "mr-2"
}, null, _parent));
_push(` ${ssrInterpolate(errorMessage.value)}</div>`);
} else {
_push(`<!---->`);
}
_push(`<div class="flex justify-end space-x-4 pt-4"><button type="button" class="px-6 py-2 border border-gray-300 text-gray-700 rounded-lg hover:bg-gray-50 transition-colors"${ssrIncludeBooleanAttr(isSaving.value) ? " disabled" : ""}> Abbrechen </button><button type="submit" class="px-6 py-2 bg-primary-600 hover:bg-primary-700 text-white font-semibold rounded-lg transition-colors flex items-center"${ssrIncludeBooleanAttr(isSaving.value) ? " disabled" : ""}>`);
if (isSaving.value) {
_push(ssrRenderComponent(unref(Loader2), {
size: 20,
class: "animate-spin mr-2"
}, null, _parent));
} else {
_push(`<!---->`);
}
_push(`<span>${ssrInterpolate(isSaving.value ? "Speichert..." : "Speichern")}</span></button></div></form></div></div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div>`);
};
}
};
const _sfc_setup = _sfc_main.setup;
_sfc_main.setup = (props, ctx) => {
const ssrContext = useSSRContext();
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/mitgliederbereich/news.vue");
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
};
export { _sfc_main as default };
//# sourceMappingURL=news-DWac_3TU.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"news-DWac_3TU.mjs","sources":["../../../../pages/mitgliederbereich/news.vue"],"sourcesContent":null,"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderList","_ssrInterpolate","_ssrRenderComponent","_unref","_ssrRenderAttr"],"mappings":"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"}

View File

@@ -397,6 +397,9 @@ const unhead_k2P3m_ZDyjlr2mMYnoDPwavjsDN8hBlk9cFai0bbopU = /* @__PURE__ */ defin
function toArray(value) {
return Array.isArray(value) ? value : [value];
}
const __nuxt_page_meta$4 = {
layout: "default"
};
const __nuxt_page_meta$3 = {
layout: "default"
};
@@ -418,7 +421,7 @@ const _routes = [
{
name: "login",
path: "/login",
meta: __nuxt_page_meta$3 || {},
meta: __nuxt_page_meta$4 || {},
component: () => import('./login-BdWGyHdA.mjs')
},
{
@@ -543,6 +546,12 @@ const _routes = [
path: "/mannschaften/jugend",
component: () => import('./jugend-CDQZwKSx.mjs')
},
{
name: "mitgliederbereich-news",
path: "/mitgliederbereich/news",
meta: { ...__nuxt_page_meta$3 || {}, ...{ "middleware": "auth" } },
component: () => import('./news-DWac_3TU.mjs')
},
{
name: "vereinsmeisterschaften",
path: "/vereinsmeisterschaften",
@@ -569,7 +578,7 @@ const _routes = [
name: "mitgliederbereich-mitglieder",
path: "/mitgliederbereich/mitglieder",
meta: { ...__nuxt_page_meta || {}, ...{ "middleware": "auth" } },
component: () => import('./mitglieder-B4jiyTlo.mjs')
component: () => import('./mitglieder-DAbmufxC.mjs')
}
];
const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;
@@ -2403,112 +2412,119 @@ const _sfc_main$3 = {
}),
_: 1
}, _parent));
_push(`<div class="relative"><button class="flex items-center space-x-1 text-gray-400 hover:text-primary-400 transition-colors">`);
_push(ssrRenderComponent(unref(User), { size: 16 }, null, _parent));
_push(`<span>Mitglieder</span>`);
_push(ssrRenderComponent(unref(ChevronUp), {
size: 14,
class: ["transition-transform", isMemberMenuOpen.value ? "rotate-0" : "rotate-180"]
}, null, _parent));
_push(`</button>`);
if (isMemberMenuOpen.value) {
_push(`<div class="absolute bottom-full right-0 mb-2 w-48 bg-gray-800 border border-gray-700 rounded-lg shadow-xl overflow-hidden">`);
if (isLoggedIn.value) {
_push(`<!--[-->`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich",
onClick: ($event) => isMemberMenuOpen.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(` Mitgliederbereich `);
} else {
return [
createTextVNode(" Mitgliederbereich ")
];
}
}),
_: 1
}, _parent));
if (isAdmin.value) {
if (isLoggedIn.value) {
_push(`<button class="flex items-center space-x-1 text-gray-400 hover:text-primary-400 transition-colors">`);
_push(ssrRenderComponent(unref(User), { size: 16 }, null, _parent));
_push(`<span>Abmelden</span></button>`);
} else {
_push(`<div class="relative"><button class="flex items-center space-x-1 text-gray-400 hover:text-primary-400 transition-colors">`);
_push(ssrRenderComponent(unref(User), { size: 16 }, null, _parent));
_push(`<span>Mitglieder</span>`);
_push(ssrRenderComponent(unref(ChevronUp), {
size: 14,
class: ["transition-transform", isMemberMenuOpen.value ? "rotate-0" : "rotate-180"]
}, null, _parent));
_push(`</button>`);
if (isMemberMenuOpen.value) {
_push(`<div class="absolute bottom-full right-0 mb-2 w-48 bg-gray-800 border border-gray-700 rounded-lg shadow-xl overflow-hidden">`);
if (isLoggedIn.value) {
_push(`<!--[-->`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms",
to: "/mitgliederbereich",
onClick: ($event) => isMemberMenuOpen.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(` CMS `);
_push2(` Mitgliederbereich `);
} else {
return [
createTextVNode(" CMS ")
createTextVNode(" Mitgliederbereich ")
];
}
}),
_: 1
}, _parent));
if (isAdmin.value) {
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/cms",
onClick: ($event) => isMemberMenuOpen.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(` CMS `);
} else {
return [
createTextVNode(" CMS ")
];
}
}),
_: 1
}, _parent));
} else {
_push(`<!---->`);
}
_push(`<button class="w-full text-left px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"> Abmelden </button><!--]-->`);
} else {
_push(`<!---->`);
_push(`<!--[-->`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/login",
onClick: ($event) => isMemberMenuOpen.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(` Anmelden `);
} else {
return [
createTextVNode(" Anmelden ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/registrieren",
onClick: ($event) => isMemberMenuOpen.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(` Registrieren `);
} else {
return [
createTextVNode(" Registrieren ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/passwort-vergessen",
onClick: ($event) => isMemberMenuOpen.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(` Passwort vergessen `);
} else {
return [
createTextVNode(" Passwort vergessen ")
];
}
}),
_: 1
}, _parent));
_push(`<!--]-->`);
}
_push(`<button class="w-full text-left px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"> Abmelden </button><!--]-->`);
_push(`</div>`);
} else {
_push(`<!--[-->`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/login",
onClick: ($event) => isMemberMenuOpen.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(` Anmelden `);
} else {
return [
createTextVNode(" Anmelden ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/registrieren",
onClick: ($event) => isMemberMenuOpen.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(` Registrieren `);
} else {
return [
createTextVNode(" Registrieren ")
];
}
}),
_: 1
}, _parent));
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/passwort-vergessen",
onClick: ($event) => isMemberMenuOpen.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(` Passwort vergessen `);
} else {
return [
createTextVNode(" Passwort vergessen ")
];
}
}),
_: 1
}, _parent));
_push(`<!--]-->`);
_push(`<!---->`);
}
_push(`</div>`);
} else {
_push(`<!---->`);
}
_push(`</div></div></div></div></footer>`);
_push(`</div></div></div></footer>`);
};
}
};

View File

@@ -1 +1 @@
{"version":3,"file":"server.mjs","sources":["../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../node_modules/nuxt/dist/app/nuxt.js","../../../../node_modules/nuxt/dist/app/components/injections.js","../../../../node_modules/nuxt/dist/app/utils.js","../../../../node_modules/nuxt/dist/app/composables/router.js","../../../../node_modules/nuxt/dist/app/composables/error.js","../../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../../node_modules/nuxt/dist/app/composables/payload.js","../../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../node_modules/nuxt/dist/app/components/utils.js","../../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../../stores/auth.js","../../../../middleware/auth.global.js","../../../../node_modules/nuxt/dist/app/middleware/manifest-route-rule.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/nuxt/dist/app/components/client-only.js","../../../../node_modules/nuxt/dist/app/components/nuxt-link.js","../../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../../assets/images/logos/Harheimer TC.svg","../../../../components/Navigation.vue","../../../../components/Footer.vue","../../../../app.vue","../../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":null,"names":["$fetch","plugin","provide","plugins","createH3Error","createRadixRouter","login1RYyYL8mxx17qR_nmdKvywxx7lKOLXMFu8pTLfvTLYwMeta","indexqVbusfljIJ04j42RIA_KP4bSP7XytQIXdqcVfR3kPUAMeta","profilyVBy_UvZ8KvchY44_0SJbB0NHOad6MC_S9C8wfDdUWEMeta","mitglieder9TWncRC_sSS_zPWzxBDlRiNjjFojXSJny_uernMe_tAMeta","__executeAsync","createRouter","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useRoute","_ssrRenderAttrs","_mergeProps","_push","_parent","_ssrRenderAttr","_imports_0","_createVNode","_ssrRenderClass","_unref","_ssrRenderList","_ssrInterpolate","_createTextVNode","_toDisplayString","useRouter","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,30,31,36,37,38]}
{"version":3,"file":"server.mjs","sources":["../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../node_modules/nuxt/dist/app/nuxt.js","../../../../node_modules/nuxt/dist/app/components/injections.js","../../../../node_modules/nuxt/dist/app/utils.js","../../../../node_modules/nuxt/dist/app/composables/router.js","../../../../node_modules/nuxt/dist/app/composables/error.js","../../../../node_modules/nuxt/dist/app/composables/manifest.js","../../../../node_modules/nuxt/dist/app/composables/payload.js","../../../../node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../node_modules/nuxt/dist/pages/runtime/utils.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../node_modules/nuxt/dist/app/components/utils.js","../../../../node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../node_modules/nuxt/dist/pages/runtime/validate.js","../../../../stores/auth.js","../../../../middleware/auth.global.js","../../../../node_modules/nuxt/dist/app/middleware/manifest-route-rule.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../node_modules/nuxt/dist/app/components/client-only.js","../../../../node_modules/nuxt/dist/app/components/nuxt-link.js","../../../../node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../virtual:nuxt:%2Fmnt%2Fshare%2Ftorsten%2FPrograms%2Fharheimertc%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../node_modules/nuxt/dist/app/components/route-provider.js","../../../../node_modules/nuxt/dist/pages/runtime/page.js","../../../../assets/images/logos/Harheimer TC.svg","../../../../components/Navigation.vue","../../../../components/Footer.vue","../../../../app.vue","../../../../node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../node_modules/nuxt/dist/app/entry.js"],"sourcesContent":null,"names":["$fetch","plugin","provide","plugins","createH3Error","createRadixRouter","login1RYyYL8mxx17qR_nmdKvywxx7lKOLXMFu8pTLfvTLYwMeta","newsPHTXuxdDl4fgPHQQbukE_XsTEemyPOWVSYs64f8qjC4Meta","indexqVbusfljIJ04j42RIA_KP4bSP7XytQIXdqcVfR3kPUAMeta","profilyVBy_UvZ8KvchY44_0SJbB0NHOad6MC_S9C8wfDdUWEMeta","mitglieder9TWncRC_sSS_zPWzxBDlRiNjjFojXSJny_uernMe_tAMeta","__executeAsync","createRouter","entry","payload_plugin_1_bEQpMjikuQhbV8UJ0PxUqmSvPdmV1jDa5DURnKW4M","router_GNCWhvtYfLTYRZZ135CdFAEjxdMexN0ixiUYCAN_tpw","plugin_vue3_CQ_pO3THrTGIeYc0dvC91V75hY8qpo9B_8yZzOW5SFs","useRoute","_ssrRenderAttrs","_mergeProps","_push","_parent","_ssrRenderAttr","_imports_0","_createVNode","_ssrRenderClass","_unref","_ssrRenderList","_ssrInterpolate","_createTextVNode","_toDisplayString","useRouter","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,29,30,31,36,37,38]}

View File

@@ -3,9 +3,9 @@ const styles = {
"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.DnxJI8Rq.mjs').then(interopDefault),
"components/Hero.vue?vue&type=style&index=0&scoped=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.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=33d25311&lang.css": () => import('./Hero-styles.DnxJI8Rq.mjs').then(interopDefault)
};
export { styles as default };

View File

@@ -4293,7 +4293,7 @@ function _expandFromEnv(value) {
const _inlineRuntimeConfig = {
"app": {
"baseURL": "/",
"buildId": "fded8fe3-e37f-48d2-bfc6-ef86564402c9",
"buildId": "6ef9e296-99be-4599-9f49-638dee8af612",
"buildAssetsDir": "/_nuxt/",
"cdnURL": ""
},
@@ -4741,520 +4741,534 @@ const assets = {
"/documents/Tischtennisregeln light.pdf": {
"type": "application/pdf",
"etag": "\"5177b-y/88q2+Y3RRechJMqWhse21KRdQ\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 333691,
"path": "../public/documents/Tischtennisregeln light.pdf"
},
"/documents/satzung.pdf": {
"type": "application/pdf",
"etag": "\"5c7cf-L0A3nT8D24T9sD57FFbij3QRpzw\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 378831,
"path": "../public/documents/satzung.pdf"
},
"/images/club_about_us.png": {
"type": "image/png",
"etag": "\"202e56-s4fLsHEgoAgKJeBRuI1qxPmqHV0\"",
"mtime": "2025-10-21T12:43:32.659Z",
"size": 2109014,
"path": "../public/images/club_about_us.png"
},
"/data/mannschaften.csv": {
"type": "text/csv; charset=utf-8",
"etag": "\"858-l94GKn8Q0I5RQnhrM0ZPJsYUmcw\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 2136,
"path": "../public/data/mannschaften.csv"
},
"/data/spielsysteme.csv": {
"type": "text/csv; charset=utf-8",
"etag": "\"9bc-4npLrNHYClsD0TKV5vSifxitfV0\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 2492,
"path": "../public/data/spielsysteme.csv"
},
"/data/termine.csv": {
"type": "text/csv; charset=utf-8",
"etag": "\"2e8-sZtaHF6QRmOQHinTWOLAYRgo6xk\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 744,
"path": "../public/data/termine.csv"
},
"/data/vereinsmeisterschaften.csv": {
"type": "text/csv; charset=utf-8",
"etag": "\"989-X8AB+Zegy2xUbjDtbQcXhuuyBDQ\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 2441,
"path": "../public/data/vereinsmeisterschaften.csv"
},
"/images/club_about_us.png": {
"type": "image/png",
"etag": "\"202e56-s4fLsHEgoAgKJeBRuI1qxPmqHV0\"",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 2109014,
"path": "../public/images/club_about_us.png"
},
"/_nuxt/0xufrPn-.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"b10-/isfm3dyRIVsEjgvcmL/XPZzoKo\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 2832,
"path": "../public/_nuxt/0xufrPn-.js"
},
"/_nuxt/48ve60fm.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"557-e04q6bcr4Wja5BTiX/uCY9jcaOk\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 1367,
"path": "../public/_nuxt/48ve60fm.js"
},
"/_nuxt/B-ZRDHEi.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1744-1NcVDhC8iP9qzUGuLES4GLUFuNU\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 5956,
"path": "../public/_nuxt/B-ZRDHEi.js"
},
"/_nuxt/B4mSF5Ac.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"185-hHs3mU4qOcQAkGQaPrUYGaG0yao\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 389,
"path": "../public/_nuxt/B4mSF5Ac.js"
},
"/_nuxt/B8JkES4d.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1860-WvKC8RdCe6cXCpB1GzY85pS096Q\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 6240,
"path": "../public/_nuxt/B8JkES4d.js"
},
"/_nuxt/BFjcARf_.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3458-KO3BlUYxGT9fa8/o5m7cBoNuldE\"",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 13400,
"path": "../public/_nuxt/BFjcARf_.js"
},
"/_nuxt/BJFIhPLo.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"16e9-yq0/LFZyeArARUVXQVCw9WWyEhs\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 5865,
"path": "../public/_nuxt/BJFIhPLo.js"
},
"/_nuxt/BLJfiAQ_.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1827-YlPmbtoIQqGYplyNk7VayRftNJ4\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.716Z",
"size": 6183,
"path": "../public/_nuxt/BLJfiAQ_.js"
},
"/_nuxt/BQ1JAN-t.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"4d4-D2c9LzMtu3t/oTdiDqO210OhOq0\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 1236,
"path": "../public/_nuxt/BQ1JAN-t.js"
},
"/_nuxt/BTRcaDI_.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"e71-89mfqDG6lXCsNo8iythpikNOsNM\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 3697,
"path": "../public/_nuxt/BTRcaDI_.js"
},
"/_nuxt/BVRiFo7f.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"dbf-bs5Lp4co8JtdiCR4NBZg2xEEpZE\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 3519,
"path": "../public/_nuxt/BVRiFo7f.js"
},
"/_nuxt/BWWcyQAZ.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"685-pCeqOgBg8QXGBjOkvDQ5Miivcwk\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 1669,
"path": "../public/_nuxt/BWWcyQAZ.js"
},
"/_nuxt/Be7mAYpw.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"13f6-nhcH7PpHXr9KCHrhZOBaqzyCANs\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 5110,
"path": "../public/_nuxt/Be7mAYpw.js"
},
"/_nuxt/BkTrhdjg.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"81f-bXeZaccLlH7cSuSEhEG6Pk4vEzY\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 2079,
"path": "../public/_nuxt/BkTrhdjg.js"
},
"/_nuxt/BneZCqgq.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1a9f-Hr2fThSa8cJCoHMhFwvPAqgbLZg\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 6815,
"path": "../public/_nuxt/BneZCqgq.js"
},
"/_nuxt/BpG5pLwY.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"16e6-iqlwalhSHX6bpWAAiam6nLgiuVE\"",
"mtime": "2025-10-21T12:43:32.655Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 5862,
"path": "../public/_nuxt/BpG5pLwY.js"
},
"/_nuxt/BteKZQ9T.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1ea-kmrGdt5SPmt15EiBI7kR9gXMQM0\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 490,
"path": "../public/_nuxt/BteKZQ9T.js"
},
"/_nuxt/C0jrEzGC.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5f0-uJRUZKhjlZl/nyiPAoO6Z/4LAHg\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 1520,
"path": "../public/_nuxt/C0jrEzGC.js"
},
"/_nuxt/C2cwm15W.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"32bb2-AwAwSl9QgX8AgfTyBetSnRecwpk\"",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 207794,
"path": "../public/_nuxt/C2cwm15W.js"
},
"/_nuxt/C5SyyWEb.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"2a5-06iX+CL3i0ysaqW9nu7Eg2YzDhQ\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 677,
"path": "../public/_nuxt/C5SyyWEb.js"
},
"/_nuxt/C8kQt0fa.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"197-7X99z1xphxry8OnMwU7Ofs/uE0Q\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 407,
"path": "../public/_nuxt/C8kQt0fa.js"
},
"/_nuxt/CGpRzXRB.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"37d-FnxQohNMb8l0n0XcPv+1bmf1WCE\"",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 893,
"path": "../public/_nuxt/CGpRzXRB.js"
},
"/_nuxt/CHQH_CwJ.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1168-mBOIwVjM5LsxIx13Cs7oT3+LJ+k\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 4456,
"path": "../public/_nuxt/CHQH_CwJ.js"
},
"/_nuxt/CKjxMu8n.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"faa-TEO7v2i4TXlLpDUt7LGSNlcm+Ew\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 4010,
"path": "../public/_nuxt/CKjxMu8n.js"
},
"/_nuxt/CN7ivzv2.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1daf-KIlbDOIuT3G/zezUF5LO1f52Vtc\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 7599,
"path": "../public/_nuxt/CN7ivzv2.js"
},
"/_nuxt/CNvcEwxd.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"11e7-FT5oxPyA+c2iUA/l/5Ieuxws3Pc\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 4583,
"path": "../public/_nuxt/CNvcEwxd.js"
},
"/_nuxt/CUVZhO0q.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"dfc-1G2To51pfChtkPrr4l+DG3FkOHk\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 3580,
"path": "../public/_nuxt/CUVZhO0q.js"
},
"/_nuxt/CUq_0rkE.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"12d-JV4KW1fgT85/V3Ap13X4q2h9U3g\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 301,
"path": "../public/_nuxt/CUq_0rkE.js"
},
"/_nuxt/CWEkTB1z.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"198-ej4DRqc3/5nSwWU3c6wbOD3Ib9w\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 408,
"path": "../public/_nuxt/CWEkTB1z.js"
},
"/_nuxt/Cb5SbJ0y.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1d90-K3fsAPMrslrofiGV21WL0Fu94+E\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 7568,
"path": "../public/_nuxt/Cb5SbJ0y.js"
},
"/_nuxt/CkzaQq3X.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"17d-+xKrHjeww4bpFFkkjUNLD/ebn5A\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 381,
"path": "../public/_nuxt/CkzaQq3X.js"
},
"/_nuxt/CrCcIvVp.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"274-9U7hEMtgHqdnQopnKeJsBKqKyKw\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 628,
"path": "../public/_nuxt/CrCcIvVp.js"
},
"/_nuxt/Ctsomia6.js": {
"/_nuxt/CwfNFVsO.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"372a-KQDPrGTdlSLojA2451YguGQdPus\"",
"mtime": "2025-10-21T12:43:32.656Z",
"size": 14122,
"path": "../public/_nuxt/Ctsomia6.js"
"etag": "\"180d-Sn+P94HE1GehN/waidfsUFXFEAI\"",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 6157,
"path": "../public/_nuxt/CwfNFVsO.js"
},
"/_nuxt/Cx4UcKGu.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"19d-5AMD0EnFEjOkM3qKDpC/NZZzwDI\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 413,
"path": "../public/_nuxt/Cx4UcKGu.js"
},
"/_nuxt/Czdc6-TI.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"165-EMJ/yP2qajGIw0CL3y+L/hvMM/8\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 357,
"path": "../public/_nuxt/Czdc6-TI.js"
},
"/_nuxt/D54FZQPM.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1556-GtYLKNALVpyOhSr1LrAIs5gIV7I\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.717Z",
"size": 5462,
"path": "../public/_nuxt/D54FZQPM.js"
},
"/_nuxt/DAACT36i.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1f9-dVOk5jAwb0VlMLJevIcT+s2NTgM\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 505,
"path": "../public/_nuxt/DAACT36i.js"
},
"/_nuxt/DIYnFFZd.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"3518-Z2dO9ejuo/PHmRggMKxl1caQ7yo\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 13592,
"path": "../public/_nuxt/DIYnFFZd.js"
},
"/_nuxt/DK8ar2Vw.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"bf0-gt2eLpxqF9V/T1JrusLBdWlTOB4\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 3056,
"path": "../public/_nuxt/DK8ar2Vw.js"
},
"/_nuxt/DQ89_Lrx.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1bdb-FX6FWYmVTmAWWkO9E2O91ImJoTI\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 7131,
"path": "../public/_nuxt/DQ89_Lrx.js"
},
"/_nuxt/DaSgy0Cl.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"11f-soKnh1qfNJj5nvt+IcgQXYvg/z4\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 287,
"path": "../public/_nuxt/DaSgy0Cl.js"
},
"/_nuxt/DaUHoOti.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"177f-xSuV2n3wrsWDBysy5o9XsakrXDw\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 6015,
"path": "../public/_nuxt/DaUHoOti.js"
},
"/_nuxt/DkeYb0_S.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"1ce-xiaAbRvqQ+zffTXF3Gc7rq14R0U\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 462,
"path": "../public/_nuxt/DkeYb0_S.js"
},
"/_nuxt/DlAUqK2U.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"5b-eFCz/UrraTh721pgAl0VxBNR1es\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 91,
"path": "../public/_nuxt/DlAUqK2U.js"
},
"/_nuxt/Dorx0xsu.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"32ab5-Fg5TmfBpPFRjzi8hbM9/+XN4yBo\"",
"mtime": "2025-10-21T12:43:32.656Z",
"size": 207541,
"path": "../public/_nuxt/Dorx0xsu.js"
},
"/_nuxt/DuCL6zMI.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"16a2-gJGadr4jKYMWO0Im01z6CSn+n1E\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 5794,
"path": "../public/_nuxt/DuCL6zMI.js"
},
"/_nuxt/H0vOWBHN.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"2029-KNpFGDGtz8iRFY43F+s7ByzEpkM\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 8233,
"path": "../public/_nuxt/H0vOWBHN.js"
},
"/_nuxt/Harheimer TC.CKfYAfp1.svg": {
"type": "image/svg+xml",
"etag": "\"1d2535-Tx2lTuuFn2hBqGZOnDan3/OdRU0\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 1910069,
"path": "../public/_nuxt/Harheimer TC.CKfYAfp1.svg"
},
"/_nuxt/Qy3ajxTk.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"13f-LgrH17St2xFg+RPGvT3uJRaRfFw\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 319,
"path": "../public/_nuxt/Qy3ajxTk.js"
},
"/_nuxt/RGsuuLA3.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"10bb-640PtonCPMgqRn3wO6U3UtHYmDM\"",
"mtime": "2025-10-21T12:43:32.656Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 4283,
"path": "../public/_nuxt/RGsuuLA3.js"
},
"/_nuxt/SRZHqrjk.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"383-+7H4gpbdqNaMFlhjcQOVxgmex04\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 899,
"path": "../public/_nuxt/SRZHqrjk.js"
},
"/_nuxt/XZ6RV9KH.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"175-xr1poEaGS4yjOp907AsRAr6XHLI\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 373,
"path": "../public/_nuxt/XZ6RV9KH.js"
},
"/_nuxt/YJHbYJtA.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"19f-nQw578pUen9o8yYaMA8Bwag6xho\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 415,
"path": "../public/_nuxt/YJHbYJtA.js"
},
"/_nuxt/ZrOCUSmD.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"ee2-knvq//8tl4tcmRjFy6nWAy0dRBk\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 3810,
"path": "../public/_nuxt/ZrOCUSmD.js"
},
"/_nuxt/entry.FYEsgUy-.css": {
"/_nuxt/entry.DJXn10xo.css": {
"type": "text/css; charset=utf-8",
"etag": "\"b4af-YS/KMJ2qaPGgn26xRUvdfm85tP8\"",
"mtime": "2025-10-21T12:43:32.657Z",
"size": 46255,
"path": "../public/_nuxt/entry.FYEsgUy-.css"
"etag": "\"b4f9-aegHiysPkslqXqaLCqt8DoC1o0c\"",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 46329,
"path": "../public/_nuxt/entry.DJXn10xo.css"
},
"/_nuxt/error-404.CbXQcqJW.css": {
"type": "text/css; charset=utf-8",
"etag": "\"97e-Ty5bTTSEudJkO/DsGUoIf37xYxc\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 2430,
"path": "../public/_nuxt/error-404.CbXQcqJW.css"
},
"/_nuxt/error-500.L485xXhD.css": {
"type": "text/css; charset=utf-8",
"etag": "\"773-jNt1QdCa+iqaSZb1mv/IQWC5p6w\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 1907,
"path": "../public/_nuxt/error-500.L485xXhD.css"
},
"/_nuxt/index.BYYJS8tV.css": {
"type": "text/css; charset=utf-8",
"etag": "\"167-3j4dZVXlcTPVZDB5pP2uXGX7/QQ\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 359,
"path": "../public/_nuxt/index.BYYJS8tV.css"
},
"/_nuxt/jVj3QaoK.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"196-xWXv220Sy3kJeouwzrQ/gnXllWQ\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 406,
"path": "../public/_nuxt/jVj3QaoK.js"
},
"/_nuxt/rZgF5GAr.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"2163-F4ycM3bgzLo6kVIU09LeGUWE8SI\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.718Z",
"size": 8547,
"path": "../public/_nuxt/rZgF5GAr.js"
},
"/_nuxt/tnJjxGC6.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"abb-4G3/6bCNUQzUVLLE5tcXv6Rh+gc\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.719Z",
"size": 2747,
"path": "../public/_nuxt/tnJjxGC6.js"
},
"/_nuxt/y9BE7jdd.js": {
"type": "text/javascript; charset=utf-8",
"etag": "\"d8b-/UzKIx4Kl1VnbQibGZzrIbVIyG4\"",
"mtime": "2025-10-21T12:43:32.657Z",
"mtime": "2025-10-21T12:47:45.719Z",
"size": 3467,
"path": "../public/_nuxt/y9BE7jdd.js"
},
"/spielplaene/1. Mannschaft 20252026.pdf": {
"type": "application/pdf",
"etag": "\"64c6-+477M+gD/spwpWR9NO/tMJ/inCc\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 25798,
"path": "../public/spielplaene/1. Mannschaft 20252026.pdf"
},
"/spielplaene/2. Mannschaft 20252026.pdf": {
"type": "application/pdf",
"etag": "\"5bfa-DRJMHLV15iss67lEISoGqSYmZjE\"",
"mtime": "2025-10-21T12:43:32.659Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 23546,
"path": "../public/spielplaene/2. Mannschaft 20252026.pdf"
},
"/spielplaene/3. Mannschaft 20252026.pdf": {
"type": "application/pdf",
"etag": "\"7447-w933CPQdXhkWJ2AZOVdY0UgJnPo\"",
"mtime": "2025-10-21T12:43:32.660Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 29767,
"path": "../public/spielplaene/3. Mannschaft 20252026.pdf"
},
"/spielplaene/4. Mannschaft 20252026.pdf": {
"type": "application/pdf",
"etag": "\"6a9b-4TPGn1yQlFUMRj7oB43SN//Np9o\"",
"mtime": "2025-10-21T12:43:32.660Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 27291,
"path": "../public/spielplaene/4. Mannschaft 20252026.pdf"
},
"/spielplaene/5. Mannschaft 20252026.pdf": {
"type": "application/pdf",
"etag": "\"6523-5VUfCMaoiNhcwHhptHHTVJ3lSwQ\"",
"mtime": "2025-10-21T12:43:32.660Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 25891,
"path": "../public/spielplaene/5. Mannschaft 20252026.pdf"
},
"/spielplaene/Jugend 11 20252026.pdf": {
"type": "application/pdf",
"etag": "\"52e9-3Rrk9UKUxPh80pBJ0w9oLVbe5dA\"",
"mtime": "2025-10-21T12:43:32.660Z",
"mtime": "2025-10-21T12:47:45.721Z",
"size": 21225,
"path": "../public/spielplaene/Jugend 11 20252026.pdf"
},
"/_nuxt/builds/latest.json": {
"type": "application/json",
"etag": "\"47-druJP0NXWHMSEA+j3XoLHSpdyoM\"",
"mtime": "2025-10-21T12:43:32.649Z",
"etag": "\"47-LYKarXowcY9OHPcftaGgz//UZ64\"",
"mtime": "2025-10-21T12:47:45.710Z",
"size": 71,
"path": "../public/_nuxt/builds/latest.json"
},
"/_nuxt/builds/meta/fded8fe3-e37f-48d2-bfc6-ef86564402c9.json": {
"/_nuxt/builds/meta/6ef9e296-99be-4599-9f49-638dee8af612.json": {
"type": "application/json",
"etag": "\"8b-peUtJxPRasl19+a06WcMZBWlpGw\"",
"mtime": "2025-10-21T12:43:32.645Z",
"etag": "\"8b-B4xxZ16V/cEHF/ivVesIrWfwk+Y\"",
"mtime": "2025-10-21T12:47:45.707Z",
"size": 139,
"path": "../public/_nuxt/builds/meta/fded8fe3-e37f-48d2-bfc6-ef86564402c9.json"
"path": "../public/_nuxt/builds/meta/6ef9e296-99be-4599-9f49-638dee8af612.json"
}
};
@@ -5482,6 +5496,9 @@ const _lazy_EK_x5_ = () => import('../routes/api/galerie.get.mjs');
const _lazy_jYLuY1 = () => import('../routes/api/members.delete.mjs');
const _lazy_HGAbG3 = () => import('../routes/api/members.get.mjs');
const _lazy_XNetVh = () => import('../routes/api/members.post.mjs');
const _lazy_fmI2VY = () => import('../routes/api/news.delete.mjs');
const _lazy_lBurQc = () => import('../routes/api/news.get.mjs');
const _lazy_tD4u2W = () => import('../routes/api/news.post.mjs');
const _lazy_FqQY6L = () => import('../routes/api/profile.get.mjs');
const _lazy_m5wCSG = () => import('../routes/api/profile.put.mjs');
const _lazy_JX4TVI = () => import('../routes/api/spielplaene.get.mjs');
@@ -5504,6 +5521,9 @@ const handlers = [
{ route: '/api/members', handler: _lazy_jYLuY1, lazy: true, middleware: false, method: "delete" },
{ route: '/api/members', handler: _lazy_HGAbG3, lazy: true, middleware: false, method: "get" },
{ route: '/api/members', handler: _lazy_XNetVh, lazy: true, middleware: false, method: "post" },
{ route: '/api/news', handler: _lazy_fmI2VY, lazy: true, middleware: false, method: "delete" },
{ route: '/api/news', handler: _lazy_lBurQc, lazy: true, middleware: false, method: "get" },
{ route: '/api/news', handler: _lazy_tD4u2W, lazy: true, middleware: false, method: "post" },
{ route: '/api/profile', handler: _lazy_FqQY6L, lazy: true, middleware: false, method: "get" },
{ route: '/api/profile', handler: _lazy_m5wCSG, lazy: true, middleware: false, method: "put" },
{ route: '/api/spielplaene', handler: _lazy_JX4TVI, lazy: true, middleware: false, method: "get" },

View File

@@ -0,0 +1,60 @@
import { d as defineEventHandler, g as getCookie, c as createError, r as readBody } from '../../nitro/nitro.mjs';
import { b as verifyToken, e as getUserById } from '../../_/auth.mjs';
import { d as deleteNews } from '../../_/news.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 'bcryptjs';
import 'jsonwebtoken';
import 'fs';
import 'path';
const news_delete = defineEventHandler(async (event) => {
try {
const token = getCookie(event, "auth_token");
if (!token) {
throw createError({
statusCode: 401,
message: "Nicht authentifiziert."
});
}
const decoded = verifyToken(token);
if (!decoded) {
throw createError({
statusCode: 401,
message: "Ung\xFCltiges Token."
});
}
const user = await getUserById(decoded.id);
if (!user || user.role !== "admin" && user.role !== "vorstand") {
throw createError({
statusCode: 403,
message: "Keine Berechtigung zum L\xF6schen von News."
});
}
const body = await readBody(event);
const { id } = body;
if (!id) {
throw createError({
statusCode: 400,
message: "News-ID ist erforderlich."
});
}
await deleteNews(id);
return {
success: true,
message: "News erfolgreich gel\xF6scht."
};
} catch (error) {
console.error("Fehler beim L\xF6schen der News:", error);
throw error;
}
});
export { news_delete as default };
//# sourceMappingURL=news.delete.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"news.delete.mjs","sources":["../../../../../server/api/news.delete.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,oBAAA,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,IAAA,GAAA,IAAA;AAEA,IAAA,IAAA,CAAA,EAAA,EAAA;AACA,MAAA,MAAA,WAAA,CAAA;AAAA,QACA,UAAA,EAAA,GAAA;AAAA,QACA,OAAA,EAAA;AAAA,OACA,CAAA;AAAA,IACA;AAEA,IAAA,MAAA,WAAA,EAAA,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,oCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -0,0 +1,46 @@
import { d as defineEventHandler, g as getCookie, c as createError } from '../../nitro/nitro.mjs';
import { b as verifyToken } from '../../_/auth.mjs';
import { r as readNews } from '../../_/news.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 'bcryptjs';
import 'jsonwebtoken';
import 'fs';
import 'path';
const news_get = defineEventHandler(async (event) => {
try {
const token = getCookie(event, "auth_token");
if (!token) {
throw createError({
statusCode: 401,
message: "Nicht authentifiziert."
});
}
const decoded = verifyToken(token);
if (!decoded) {
throw createError({
statusCode: 401,
message: "Ung\xFCltiges Token."
});
}
const news = await readNews();
news.sort((a, b) => new Date(b.created) - new Date(a.created));
return {
success: true,
news
};
} catch (error) {
console.error("Fehler beim Abrufen der News:", error);
throw error;
}
});
export { news_get as default };
//# sourceMappingURL=news.get.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"news.get.mjs","sources":["../../../../../server/api/news.get.js"],"sourcesContent":null,"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,iBAAA,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,QAAA,EAAA;AAGA,IAAA,IAAA,CAAA,IAAA,CAAA,CAAA,CAAA,EAAA,CAAA,KAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,IAAA,IAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA;AAEA,IAAA,OAAA;AAAA,MACA,OAAA,EAAA,IAAA;AAAA,MACA;AAAA,KACA;AAAA,EACA,SAAA,KAAA,EAAA;AACA,IAAA,OAAA,CAAA,KAAA,CAAA,iCAAA,KAAA,CAAA;AACA,IAAA,MAAA,KAAA;AAAA,EACA;AACA,CAAA,CAAA;;;;"}

View File

@@ -0,0 +1,65 @@
import { d as defineEventHandler, g as getCookie, c as createError, r as readBody } from '../../nitro/nitro.mjs';
import { b as verifyToken, e as getUserById } from '../../_/auth.mjs';
import { s as saveNews } from '../../_/news.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 'bcryptjs';
import 'jsonwebtoken';
import 'fs';
import 'path';
const news_post = defineEventHandler(async (event) => {
try {
const token = getCookie(event, "auth_token");
if (!token) {
throw createError({
statusCode: 401,
message: "Nicht authentifiziert."
});
}
const decoded = verifyToken(token);
if (!decoded) {
throw createError({
statusCode: 401,
message: "Ung\xFCltiges Token."
});
}
const user = await getUserById(decoded.id);
if (!user || user.role !== "admin" && user.role !== "vorstand") {
throw createError({
statusCode: 403,
message: "Keine Berechtigung zum Erstellen/Bearbeiten von News."
});
}
const body = await readBody(event);
const { id, title, content } = body;
if (!title || !content) {
throw createError({
statusCode: 400,
message: "Titel und Inhalt sind erforderlich."
});
}
await saveNews({
id: id || void 0,
title,
content,
author: user.name
});
return {
success: true,
message: "News erfolgreich gespeichert."
};
} catch (error) {
console.error("Fehler beim Speichern der News:", error);
throw error;
}
});
export { news_post as default };
//# sourceMappingURL=news.post.mjs.map

View File

@@ -0,0 +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,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,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

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

View File

@@ -13,8 +13,17 @@
Kontakt
</NuxtLink>
<!-- Mitglieder Dropdown -->
<div class="relative">
<!-- Login/Logout -->
<template v-if="isLoggedIn">
<button
@click="handleLogout"
class="flex items-center space-x-1 text-gray-400 hover:text-primary-400 transition-colors"
>
<User :size="16" />
<span>Abmelden</span>
</button>
</template>
<div v-else class="relative">
<button
@click="toggleMemberMenu"
class="flex items-center space-x-1 text-gray-400 hover:text-primary-400 transition-colors"
@@ -24,7 +33,7 @@
<ChevronUp :size="14" :class="['transition-transform', isMemberMenuOpen ? 'rotate-0' : 'rotate-180']" />
</button>
<!-- Dropdown Menu (appears above) -->
<!-- Dropdown Menu (appears above) - Only when NOT logged in -->
<Transition
enter-active-class="transition duration-200 ease-out"
enter-from-class="transform translate-y-2 opacity-0"
@@ -37,52 +46,27 @@
v-if="isMemberMenuOpen"
class="absolute bottom-full right-0 mb-2 w-48 bg-gray-800 border border-gray-700 rounded-lg shadow-xl overflow-hidden"
>
<template v-if="isLoggedIn">
<NuxtLink
to="/mitgliederbereich"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Mitgliederbereich
</NuxtLink>
<NuxtLink
v-if="isAdmin"
to="/cms"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
CMS
</NuxtLink>
<button
@click="handleLogout"
class="w-full text-left px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Abmelden
</button>
</template>
<template v-else>
<NuxtLink
to="/login"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Anmelden
</NuxtLink>
<NuxtLink
to="/registrieren"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Registrieren
</NuxtLink>
<NuxtLink
to="/passwort-vergessen"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Passwort vergessen
</NuxtLink>
</template>
<NuxtLink
to="/login"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Anmelden
</NuxtLink>
<NuxtLink
to="/registrieren"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Registrieren
</NuxtLink>
<NuxtLink
to="/passwort-vergessen"
@click="isMemberMenuOpen = false"
class="block px-4 py-2 text-sm text-gray-300 hover:bg-primary-600 hover:text-white transition-colors"
>
Passwort vergessen
</NuxtLink>
</div>
</Transition>
</div>
@@ -112,7 +96,6 @@ const toggleMemberMenu = () => {
const handleLogout = async () => {
await authStore.logout()
isMemberMenuOpen.value = false
router.push('/')
}