Implement member management enhancements; add bulk import functionality and duplicate checking based on geburtsdatum. Update API to support new fields and improve error handling for member data submissions. Refactor member-related components for better user experience and data validation.

This commit is contained in:
Torsten Schulz (local)
2025-11-05 14:34:31 +01:00
parent dd4691b462
commit 623a63c29f
21 changed files with 1765 additions and 513 deletions

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$8 = {
layout: "default"
};
const __nuxt_page_meta$7 = {
layout: "default"
};
@@ -430,7 +433,7 @@ const _routes = [
{
name: "login",
path: "/login",
meta: __nuxt_page_meta$7 || {},
meta: __nuxt_page_meta$8 || {},
component: () => import('./login-P5Yg6Pmv.mjs')
},
{
@@ -466,7 +469,7 @@ const _routes = [
{
name: "cms",
path: "/cms",
meta: { ...__nuxt_page_meta$6 || {}, ...{ "middleware": "auth" } },
meta: { ...__nuxt_page_meta$7 || {}, ...{ "middleware": "auth" } },
component: () => import('./index-CQoOFH9O.mjs')
},
{
@@ -503,7 +506,7 @@ const _routes = [
{
name: "cms-termine",
path: "/cms/termine",
meta: { ...__nuxt_page_meta$5 || {}, ...{ "middleware": "auth" } },
meta: { ...__nuxt_page_meta$6 || {}, ...{ "middleware": "auth" } },
component: () => import('./termine-D0MhYqRR.mjs')
},
{
@@ -579,7 +582,7 @@ const _routes = [
{
name: "cms-einstellungen",
path: "/cms/einstellungen",
meta: { ...__nuxt_page_meta$4 || {}, ...{ "middleware": "auth" } },
meta: { ...__nuxt_page_meta$5 || {}, ...{ "middleware": "auth" } },
component: () => import('./einstellungen-D4Ua-Zgq.mjs')
},
{
@@ -622,6 +625,12 @@ const _routes = [
path: "/mannschaften/jugend",
component: () => import('./jugend-D2PYrcrQ.mjs')
},
{
name: "mitgliederbereich-api",
path: "/mitgliederbereich/api",
meta: { ...__nuxt_page_meta$4 || {}, ...{ "middleware": "auth" } },
component: () => import('./api-2KvLR2u_.mjs')
},
{
name: "mitgliederbereich-news",
path: "/mitgliederbereich/news",
@@ -665,7 +674,7 @@ const _routes = [
name: "mitgliederbereich-mitglieder",
path: "/mitgliederbereich/mitglieder",
meta: { ...__nuxt_page_meta || {}, ...{ "middleware": "auth" } },
component: () => import('./mitglieder-BUT03wq4.mjs')
component: () => import('./mitglieder-yWh5DTR0.mjs')
}
];
const ROUTE_KEY_PARENTHESES_RE = /(:\w+)\([^)]+\)/g;
@@ -1930,6 +1939,23 @@ const _sfc_main$5 = {
}),
_: 1
}, _parent));
_push(`<div class="h-3 w-px bg-primary-700"></div>`);
_push(ssrRenderComponent(_component_NuxtLink, {
to: "/mitgliederbereich/api",
class: "px-2.5 py-1 text-xs text-gray-300 hover:text-white hover:bg-primary-700/50 rounded transition-all",
"active-class": "text-white bg-primary-600"
}, {
default: withCtx((_, _push2, _parent2, _scopeId) => {
if (_push2) {
_push2(` API-Dokumentation `);
} else {
return [
createTextVNode(" API-Dokumentation ")
];
}
}),
_: 1
}, _parent));
if (isAdmin.value) {
_push(`<!--[--><div class="h-3 w-px bg-primary-700"></div><div class="relative inline-block"><button class="${ssrRenderClass([unref(route).path.startsWith("/cms") ? "text-white bg-primary-600" : "", "px-2.5 py-1 text-xs text-yellow-300 hover:text-white hover:bg-primary-700/50 rounded transition-all flex items-center"])}"> CMS `);
_push(ssrRenderComponent(unref(ChevronDown), {