1 parent
b11d25e64b
commit
0de6ee4ca2
21 files changed
+2754
-4328
No files matched your search
Generated
+2626
-4198
File diff suppressed because it is too large.
Load diff
+29
-24
@@ -11,35 +11,40 @@
|
||||
"format": "prettier --write ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^9.5.1",
|
||||
"@astrojs/svelte": "^7.2.4",
|
||||
"@astrojs/node": "^11.1.9",
|
||||
"@astrojs/svelte": "^9.1.2",
|
||||
"@iconify-json/fa-brands": "^1.2.2",
|
||||
"@iconify-json/heroicons": "^1.2.3",
|
||||
"@iconify/tailwind4": "^1.2.0",
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"astro": "^5.16.6",
|
||||
"@iconify/tailwind4": "^1.2.3",
|
||||
"@tailwindcss/vite": "^4.3.3",
|
||||
"astro": "^7.4.4",
|
||||
"bcrypt": "^6.0.0",
|
||||
"daisyui": "^5.5.14",
|
||||
"drizzle-orm": "^0.45.1",
|
||||
"mysql2": "^3.16.0",
|
||||
"nanostores": "^1.1.0",
|
||||
"pino": "^10.1.0",
|
||||
"sass-embedded": "^1.97.1",
|
||||
"skinview3d": "^3.4.1",
|
||||
"tailwindcss": "^4.1.18",
|
||||
"typescript": "^5.9.3"
|
||||
"daisyui": "^5.7.50",
|
||||
"drizzle-orm": "^0.45.4",
|
||||
"mysql2": "^3.24.6",
|
||||
"nanostores": "^1.5.5",
|
||||
"pino": "^10.4.0",
|
||||
"sass-embedded": "^1.107.0",
|
||||
"skinview3d": "^3.4.2",
|
||||
"tailwindcss": "^4.3.3",
|
||||
"typescript": "^6.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@types/bcrypt": "^6.0.0",
|
||||
"@typescript-eslint/parser": "^8.52.0",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-plugin-astro": "^1.5.0",
|
||||
"eslint-plugin-svelte": "^3.13.1",
|
||||
"globals": "^17.0.0",
|
||||
"prettier": "^3.7.4",
|
||||
"prettier-plugin-astro": "^0.14.1",
|
||||
"prettier-plugin-svelte": "^3.4.1",
|
||||
"svelte": "^5.46.1",
|
||||
"typescript-eslint": "^8.52.0"
|
||||
"@typescript-eslint/parser": "^8.72.1",
|
||||
"eslint": "^10.13.0",
|
||||
"eslint-plugin-astro": "^3.2.1",
|
||||
"eslint-plugin-svelte": "^3.23.1",
|
||||
"globals": "^17.13.0",
|
||||
"prettier": "^3.9.10",
|
||||
"prettier-plugin-astro": "^1.1.2",
|
||||
"prettier-plugin-svelte": "^4.1.1",
|
||||
"svelte": "^5.57.3",
|
||||
"typescript-eslint": "^8.72.1"
|
||||
},
|
||||
"allowScripts": {
|
||||
"@parcel/watcher": false,
|
||||
"bcrypt": false
|
||||
}
|
||||
}
|
||||
@@ -136,8 +136,7 @@
|
||||
onchange={(e) => {
|
||||
entry.onChange(e.currentTarget.value);
|
||||
changes = dynamicSettings.getChanges();
|
||||
}}
|
||||
></textarea>
|
||||
}}></textarea>
|
||||
{/if}
|
||||
</div>
|
||||
</label>
|
||||
|
||||
@@ -84,10 +84,10 @@ const { signupDisabled, signupHash } = Astro.props;
|
||||
<div class="divider">Spiel</div>
|
||||
<div class="mx-2 grid grid-cols-1 sm:grid-cols-2 gap-x-4">
|
||||
<Input id="username" type="text" label="Minecraft-Spielername" required dynamicWidth>
|
||||
<span slot="notice" class="text-[.65rem]"
|
||||
>Spielern der Bedrock-Edition wird empfohlen, ihren Microsoft-Account Namen einzugeben. Der
|
||||
Bedrock-Spielername kann nicht immer einem Minecraft Account zugeordnet werden.</span
|
||||
>
|
||||
<span slot="notice" class="text-[.65rem]">
|
||||
Spielern der Bedrock-Edition wird empfohlen, ihren Microsoft-Account Namen einzugeben. Der
|
||||
Bedrock-Spielername kann nicht immer einem Minecraft Account zugeordnet werden.
|
||||
</span>
|
||||
</Input>
|
||||
<Select
|
||||
id="edition"
|
||||
@@ -101,11 +101,10 @@ const { signupDisabled, signupHash } = Astro.props;
|
||||
<div class="mx-2 grid gap-y-3 mb-6">
|
||||
<Checkbox id="checkbox" required>
|
||||
<span slot="label">
|
||||
Ich bin mit der Speicherung meiner in der Anmeldung angegebenen, persönlichen Daten einverstanden. Siehe <a
|
||||
class="link"
|
||||
href="https://mhsl.eu/id.html"
|
||||
target="_blank">Datenschutz</a
|
||||
>
|
||||
Ich bin mit der Speicherung meiner in der Anmeldung angegebenen, persönlichen Daten einverstanden. Siehe{' '}
|
||||
<a class="link" href="https://mhsl.eu/id.html" target="_blank">
|
||||
Datenschutz
|
||||
</a>
|
||||
</span>
|
||||
</Checkbox>
|
||||
<Checkbox id="logs" required>
|
||||
@@ -120,11 +119,17 @@ const { signupDisabled, signupHash } = Astro.props;
|
||||
</Checkbox>
|
||||
<Checkbox id="rules" required>
|
||||
<span slot="label">
|
||||
Ich bin mit den <a class="link" onclick="">Regeln</a> einverstanden und achte sie
|
||||
Ich bin mit den{' '}
|
||||
<a class="link" onclick="">
|
||||
Regeln
|
||||
</a>{' '}
|
||||
einverstanden und achte sie
|
||||
</span>
|
||||
</Checkbox>
|
||||
</div>
|
||||
<button id="send-btn" class="btn btn-neutral">Anmeldung absenden</button>
|
||||
<button id="send-btn" class="btn btn-neutral">
|
||||
Anmeldung absenden
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -143,14 +148,12 @@ const { signupDisabled, signupHash } = Astro.props;
|
||||
newRegistrationAllowed={!signupHash}
|
||||
/>
|
||||
|
||||
{
|
||||
signupDisabled && (
|
||||
{signupDisabled && (
|
||||
<div class="absolute top-0 left-0 w-full h-full bg-black/50 backdrop-blur-sm z-10 rounded-xl flex justify-center items-center flex-col pt-20 lg:pt-0 text-2xl sm:text-4xl">
|
||||
<h1>{signupDisabled.message}</h1>
|
||||
<h3>{signupDisabled.subMessage}</h3>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
)}
|
||||
|
||||
<script>
|
||||
import { actions } from 'astro:actions';
|
||||
|
||||
@@ -35,10 +35,7 @@
|
||||
<SortableTh style="width: 1%" class="text-left">#</SortableTh>
|
||||
{/if}
|
||||
{#each keys as key (key.key)}
|
||||
<SortableTh
|
||||
class="text-left whitespace-nowrap lg:whitespace-normal"
|
||||
key={key.sortable ? key.key : undefined}
|
||||
>
|
||||
<SortableTh class="text-left whitespace-nowrap lg:whitespace-normal" key={key.sortable ? key.key : undefined}>
|
||||
{key.label}
|
||||
</SortableTh>
|
||||
{/each}
|
||||
|
||||
@@ -31,6 +31,5 @@
|
||||
bind:value
|
||||
{required}
|
||||
{rows}
|
||||
{readonly}
|
||||
></textarea>
|
||||
{readonly}></textarea>
|
||||
</fieldset>
|
||||
@@ -24,16 +24,14 @@ const { title, description, keywords, openGraph, viewTransition } = Astro.props;
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/png" href={favicon.src} />
|
||||
<title>{title}</title>
|
||||
{
|
||||
openGraph && (
|
||||
{openGraph && (
|
||||
<>
|
||||
<meta name="og:title" content={title} />
|
||||
<meta property="og:url" content={Astro.url.pathname} />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content={logo512.src} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
)}
|
||||
<meta name="description" content={description} />
|
||||
{keywords && <meta name="keywords" content={keywords.join(', ')} />}
|
||||
<base href=`${BASE_PATH}/` />
|
||||
|
||||
@@ -95,9 +95,7 @@ const adminTabs = [
|
||||
<div class="navbar-center">
|
||||
<a class="text-xl font-bold">{title}</a>
|
||||
</div>
|
||||
<div class="navbar-end">
|
||||
<!-- Optional: Profile or logout shortcut -->
|
||||
</div>
|
||||
<div class="navbar-end"><!-- Optional: Profile or logout shortcut --></div>
|
||||
</div>
|
||||
|
||||
<!-- Content Area -->
|
||||
@@ -109,27 +107,22 @@ const adminTabs = [
|
||||
<!-- Sidebar / Drawer Side -->
|
||||
<div class="drawer-side z-20">
|
||||
<label for="admin-drawer" aria-label="close sidebar" class="drawer-overlay"></label>
|
||||
<aside
|
||||
class="bg-base-200 w-max max-w-[85vw] h-full flex flex-col justify-between border-r border-base-300 overflow-y-auto"
|
||||
>
|
||||
<aside class="bg-base-200 w-max max-w-[85vw] h-full flex flex-col justify-between border-r border-base-300 overflow-y-auto">
|
||||
<div class="flex flex-col min-w-max">
|
||||
<div class="p-4 hidden lg:block border-b border-base-300">
|
||||
<span class="text-xl font-bold">Admin Panel</span>
|
||||
</div>
|
||||
<ul class="menu p-2">
|
||||
{
|
||||
preTabs.map((tab) => (
|
||||
{preTabs.map((tab) => (
|
||||
<li>
|
||||
<a href={tab.href}>
|
||||
<span class="iconify" class:list={tab.iconClass} />
|
||||
<span>{tab.name}</span>
|
||||
</a>
|
||||
</li>
|
||||
))
|
||||
}
|
||||
))}
|
||||
<div class="divider mx-1 my-1"></div>
|
||||
{
|
||||
adminTabs.map(
|
||||
{adminTabs.map(
|
||||
(tab) =>
|
||||
tab.enabled && (
|
||||
<li>
|
||||
@@ -151,22 +144,19 @@ const adminTabs = [
|
||||
)}
|
||||
</li>
|
||||
)
|
||||
)
|
||||
}
|
||||
)}
|
||||
</ul>
|
||||
</div>
|
||||
<div class="flex flex-col w-0 min-w-full">
|
||||
<ul class="menu w-full p-2">
|
||||
{
|
||||
Astro.slots.has('actions') && (
|
||||
{Astro.slots.has('actions') && (
|
||||
<div class="mb-2">
|
||||
<span class="menu-title px-2 uppercase text-xs font-semibold opacity-60">Actions</span>
|
||||
<fieldset class="fieldset bg-base-300 border-base-100 rounded-box border p-2">
|
||||
<slot name="actions" />
|
||||
</fieldset>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
)}
|
||||
<div class="divider mx-1 my-0"></div>
|
||||
<li>
|
||||
<button id="logout" class="text-error whitespace-nowrap">
|
||||
|
||||
@@ -26,8 +26,12 @@ const { title, description, footer = true } = Astro.props;
|
||||
</div>
|
||||
<div class="flex gap-12">
|
||||
<div class="flex gap-4">
|
||||
<a class="link" href="https://mhsl.eu/id.html" target="_blank">Impressum</a>
|
||||
<a class="link" href="https://mhsl.eu/datenschutz.html" target="_blank">Datenschutz</a>
|
||||
<a class="link" href="https://mhsl.eu/id.html" target="_blank">
|
||||
Impressum
|
||||
</a>
|
||||
<a class="link" href="https://mhsl.eu/datenschutz.html" target="_blank">
|
||||
Datenschutz
|
||||
</a>
|
||||
</div>
|
||||
<div class="hidden sm:flex gap-2 items-center">
|
||||
<a href="ts3server://mhsl.eu?port=9987" title="TeamSpeak" target="_blank">
|
||||
|
||||
+2
-3
@@ -6,9 +6,8 @@ import WebsiteLayout from '@layouts/website/WebsiteLayout.astro';
|
||||
<div class="flex flex-col justify-center items-center gap-4 h-full w-full absolute">
|
||||
<h1 class="text-2xl sm:text-3xl md:text-4xl lg:text-5xl">404: Seite nicht gefunden</h1>
|
||||
<p class="flex gap-2 text-center">
|
||||
Es wurde keine Seite unter der URL <code class="contents mx-1 md:block md:my-0 md:whitespace-pre"
|
||||
>{Astro.url.pathname}</code
|
||||
> gefunden.
|
||||
Es wurde keine Seite unter der URL{' '}
|
||||
<code class="contents mx-1 md:block md:my-0 md:whitespace-pre">{Astro.url.pathname}</code> gefunden.
|
||||
</p>
|
||||
</div>
|
||||
</WebsiteLayout>
|
||||
@@ -48,8 +48,7 @@ const team = [
|
||||
<div class="m-auto flex flex-col justify-center items-center px-4 py-6 2xl:px-48 sm:py-12">
|
||||
<h1 class="text-5xl mb-10">Die Admins</h1>
|
||||
<div class="grid md:grid-cols-2 xl:grid-cols-3 gap-4 my-4 justify-center">
|
||||
{
|
||||
team.map((member) => (
|
||||
{team.map((member) => (
|
||||
<div class="card max-w-96 bg-base-200">
|
||||
<div class="card-body px-4 py-6">
|
||||
<div class="relative flex flex-col items-center">
|
||||
@@ -87,8 +86,7 @@ const team = [
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</WebsiteLayout>
|
||||
@@ -15,7 +15,9 @@ import Input from '@components/input/Input.svelte';
|
||||
<Textarea id="content" label="Feedback" dynamicWidth required rows={10} />
|
||||
<Input id="email" type="email" label="Email" required />
|
||||
</div>
|
||||
<button id="send" class="btn">Senden</button>
|
||||
<button id="send" class="btn">
|
||||
Senden
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+5
-5
@@ -180,8 +180,7 @@ nicht gestattet.</p>`
|
||||
<div class="mx-4 my-6 sm:mx-24 sm:my-12">
|
||||
<h1 class="text-3xl lg:text-5xl mb-16 text-center">FAQ</h1>
|
||||
<div class="grid lg:grid-cols-2 2xl:grid-cols-3 gap-10">
|
||||
{
|
||||
faq.map((questions) => (
|
||||
{faq.map((questions) => (
|
||||
<div>
|
||||
<h2 class="text-4xl text-center mb-3">{questions.section}</h2>
|
||||
<div>
|
||||
@@ -199,11 +198,12 @@ nicht gestattet.</p>`
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
))}
|
||||
</div>
|
||||
<div class="w-full flex justify-center mt-6 sm:mt-12">
|
||||
<a class="btn" href="contact">Deine Frage ist nicht aufgeführt? Schreib uns!</a>
|
||||
<a class="btn" href="contact">
|
||||
Deine Frage ist nicht aufgeführt? Schreib uns!
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</WebsiteLayout>
|
||||
@@ -120,8 +120,7 @@ sind aber weiterhin geschützt. Aktivieren kannst du den Modus mit <code>/pvp</c
|
||||
<div class="mx-4 my-6 sm:mx-12 sm:my-12 xl:mx-32 2xl:mx-64">
|
||||
<h1 class="text-3xl lg:text-5xl mb-16 text-center">Features</h1>
|
||||
<div class="space-y-8 md:space-y-12">
|
||||
{
|
||||
features.map((feature, i) => (
|
||||
{features.map((feature, i) => (
|
||||
<div
|
||||
class="flex flex-col gap-y-3 sm:gap-y-6 md:gap-x-6 lg:gap-x-18 xl:gap-x-24 2xl:gap-x-30 px-8 py-10 bg-base-200 rounded"
|
||||
class:list={{ 'md:flex-row': i % 2 == 0, 'md:flex-row-reverse': i % 2 != 0 }}
|
||||
@@ -145,8 +144,7 @@ sind aber weiterhin geschützt. Aktivieren kannst du den Modus mit <code>/pvp</c
|
||||
<ImageCarousel images={feature.images} client:idle />
|
||||
</div>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</WebsiteLayout>
|
||||
@@ -30,7 +30,9 @@ if (!feedback) {
|
||||
readonly={feedback.content !== null}
|
||||
/>
|
||||
</div>
|
||||
<button id="send" class="btn" disabled>Feedback senden</button>
|
||||
<button id="send" class="btn" disabled>
|
||||
Feedback senden
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+26
-24
@@ -40,21 +40,19 @@ const information = [
|
||||
<div>
|
||||
<div class="divider"></div>
|
||||
<div class="flex flex-col md:flex-row xl:flex-col gap-5">
|
||||
{
|
||||
information.map((info) => (
|
||||
{information.map((info) => (
|
||||
<div>
|
||||
<h4 class="mb-1 font-bold">{info.title}</h4>
|
||||
<p>{info.description}</p>
|
||||
</div>
|
||||
))
|
||||
}
|
||||
))}
|
||||
</div>
|
||||
<div class="divider"></div>
|
||||
</div>
|
||||
<div class="flex justify-center">
|
||||
<a class="btn btn-outline btn-accent hover:bg-white" href="signup"
|
||||
>{signupEnabled ? 'Jetzt registrieren' : 'Infos zur Anmeldung'}</a
|
||||
>
|
||||
<a class="btn btn-outline btn-accent hover:bg-white" href="signup">
|
||||
{signupEnabled ? 'Jetzt registrieren' : 'Infos zur Anmeldung'}
|
||||
</a>
|
||||
</div>
|
||||
{signupInfoMessage && <span class="text-center text-xs text-base-content/80 mt-3">{signupInfoMessage}</span>}
|
||||
</div>
|
||||
@@ -79,36 +77,36 @@ const information = [
|
||||
<div>
|
||||
<h2 class="text-3xl text-black dark:text-white mb-8">Über uns</h2>
|
||||
<p>
|
||||
Wir sind ein kleines <a class="link" href="admins">Team</a> von Minecraft-Enthusiasten, das bereits im 9. Jahr in
|
||||
Folge Minecraft CraftAttack organisiert. Jahr für Jahr arbeiten wir daran, das Spielerlebnis zu verbessern und steigeren
|
||||
die Teilnehmerzahl.
|
||||
Wir sind ein kleines{' '}
|
||||
<a class="link" href="admins">
|
||||
Team
|
||||
</a>{' '}
|
||||
von Minecraft-Enthusiasten, das bereits im 9. Jahr in Folge Minecraft CraftAttack organisiert. Jahr für Jahr
|
||||
arbeiten wir daran, das Spielerlebnis zu verbessern und steigeren die Teilnehmerzahl.
|
||||
</p>
|
||||
<p>
|
||||
Unser Ziel bei diesem ab dem <span class="italic"
|
||||
>{
|
||||
new Date(START_DATE).toLocaleString('de-DE', {
|
||||
Unser Ziel bei diesem ab dem{' '}
|
||||
<span class="italic">
|
||||
{new Date(START_DATE).toLocaleString('de-DE', {
|
||||
day: '2-digit',
|
||||
month: 'numeric',
|
||||
year: 'numeric'
|
||||
})
|
||||
}</span
|
||||
>
|
||||
stattfindenden Projekts ist es, sicherzustellen, dass alle Spieler eine großartige Erfahrung haben und alles reibungslos
|
||||
abläuft. Wir freuen uns immer über Anregungen und stehen Dir jederzeit zur Verfügung.
|
||||
})}
|
||||
</span>
|
||||
stattfindenden Projekts ist es, sicherzustellen, dass alle Spieler eine großartige Erfahrung haben und alles
|
||||
reibungslos abläuft. Wir freuen uns immer über Anregungen und stehen Dir jederzeit zur Verfügung.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col justify-center items-center py-20 bg-base-100">
|
||||
{
|
||||
statisticsEnabled && (
|
||||
{statisticsEnabled && (
|
||||
<>
|
||||
<LiveStats />
|
||||
<div class="divider divider-horizontal mx-auto my-6 h-18" />
|
||||
</>
|
||||
)
|
||||
}
|
||||
)}
|
||||
<div>
|
||||
<h3 class="text-center text-2xl mb-6">2025/2026 in Zahlen</h3>
|
||||
<div class="flex flex-col lg:flex-row gap-4">
|
||||
@@ -119,7 +117,9 @@ const information = [
|
||||
</div>
|
||||
<div class="stat-title">Abgebaute Blöcke</div>
|
||||
<div class="stat-value">1.41M</div>
|
||||
<div class="stat-desc"><span class="underline">975K</span> davon Stein</div>
|
||||
<div class="stat-desc">
|
||||
<span class="underline">975K</span> davon Stein
|
||||
</div>
|
||||
</div>
|
||||
<div class="stat">
|
||||
<div class="stat-figure">
|
||||
@@ -155,7 +155,9 @@ const information = [
|
||||
</div>
|
||||
<div class="stat-title">Spieler Tode</div>
|
||||
<div class="stat-value">6351</div>
|
||||
<div class="stat-desc"><span class="underline">348</span> davon durch andere Spieler</div>
|
||||
<div class="stat-desc">
|
||||
<span class="underline">348</span> davon durch andere Spieler
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,10 +16,10 @@ const { report } = Astro.props;
|
||||
<div class="flex justify-center items-center">
|
||||
<div class="mt-12 grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 shadow-lg">
|
||||
<h2 class="text-3xl text-center">
|
||||
Report von <span class="underline">{report.reporter.username}</span> gegen <span
|
||||
id="adversary-username"
|
||||
class="underline">{report.reported?.username ?? 'unbekannt'}</span
|
||||
>
|
||||
Report von <span class="underline">{report.reporter.username}</span> gegen{' '}
|
||||
<span id="adversary-username" class="underline">
|
||||
{report.reported?.username ?? 'unbekannt'}
|
||||
</span>
|
||||
</h2>
|
||||
<form id="report" data-url-hash={report.urlHash} data-adversary-username={report.reported?.username}>
|
||||
<div class="space-y-4 my-4">
|
||||
@@ -29,7 +29,9 @@ const { report } = Astro.props;
|
||||
<Textarea id="body" value={report.body} label="Details" rows={10} dynamicWidth required />
|
||||
<Dropzone maxFilesBytes={MAX_UPLOAD_BYTES} client:load />
|
||||
</div>
|
||||
<button id="send" class="btn" disabled={report.body}>Report senden</button>
|
||||
<button id="send" class="btn" disabled={report.body}>
|
||||
Report senden
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -11,8 +11,7 @@ const { report } = Astro.props;
|
||||
|
||||
<div class="flex justify-center items-center">
|
||||
<div class="mt-12 grid card w-11/12 xl:w-2/3 2xl:w-1/2 p-6 shadow-lg">
|
||||
{
|
||||
report.status?.status == null ? (
|
||||
{report.status?.status == null ? (
|
||||
<p>Dein Report wird in kürze bearbeitet</p>
|
||||
) : report.status?.status === 'open' ? (
|
||||
<p>Dein Report befindet sich in Bearbeitung</p>
|
||||
@@ -27,7 +26,6 @@ const { report } = Astro.props;
|
||||
readonly
|
||||
/>
|
||||
</>
|
||||
)
|
||||
}
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
@@ -17,8 +17,7 @@ import { rules } from '../rules';
|
||||
</div>
|
||||
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600"></span>
|
||||
</div>
|
||||
{
|
||||
rules.sections.map((section, i) => (
|
||||
{rules.sections.map((section, i) => (
|
||||
<div>
|
||||
<div class="collapse collapse-arrow">
|
||||
<input type="checkbox" autocomplete="off" />
|
||||
@@ -31,7 +30,6 @@ import { rules } from '../rules';
|
||||
</div>
|
||||
<span class="block w-full h-[1px] mx-auto mb-1 bg-gray-600" />
|
||||
</div>
|
||||
))
|
||||
}
|
||||
))}
|
||||
</div>
|
||||
</WebsiteLayout>
|
||||
@@ -10,9 +10,11 @@ if (!directSignup) return new Response(null, { status: 404 });
|
||||
|
||||
<Signup
|
||||
signupHash={hash}
|
||||
signupDisabled={directSignup.user
|
||||
signupDisabled={
|
||||
directSignup.user
|
||||
? {
|
||||
message: 'Es hat sich bereits jemand mit diesem Einladungslink registriert'
|
||||
}
|
||||
: undefined}
|
||||
: undefined
|
||||
}
|
||||
/>
|
||||
@@ -14,10 +14,12 @@ const signupDisabledSubMessage = signupSetting[SettingKey.SignupDisabledSubMessa
|
||||
---
|
||||
|
||||
<Signup
|
||||
signupDisabled={signupEnabled
|
||||
signupDisabled={
|
||||
signupEnabled
|
||||
? undefined
|
||||
: {
|
||||
message: signupDisabledMessage,
|
||||
subMessage: signupDisabledSubMessage
|
||||
}}
|
||||
}
|
||||
}
|
||||
/>
|
||||
Reference in new issue
Block a user