Aktueller Stand
This commit is contained in:
@@ -6,6 +6,7 @@ export default function AdminSystemSettings() {
|
||||
const [apiKey, setApiKey] = useState("");
|
||||
const [provider, setProvider] = useState("osm");
|
||||
const [registrationEnabled, setRegistrationEnabled] = useState(true);
|
||||
const [publicAccessEnabled, setPublicAccessEnabled] = useState(true);
|
||||
const [appName, setAppName] = useState("Vereinskalender");
|
||||
const [logoFile, setLogoFile] = useState<File | null>(null);
|
||||
const [logoVersion, setLogoVersion] = useState(() => Date.now());
|
||||
@@ -26,6 +27,7 @@ export default function AdminSystemSettings() {
|
||||
setApiKey(payload.apiKey || "");
|
||||
setProvider(payload.provider || "osm");
|
||||
setRegistrationEnabled(payload.registrationEnabled !== false);
|
||||
setPublicAccessEnabled(payload.publicAccessEnabled !== false);
|
||||
if (appNameResponse.ok) {
|
||||
const appPayload = await appNameResponse.json();
|
||||
setAppName(appPayload.name || "Vereinskalender");
|
||||
@@ -61,7 +63,12 @@ export default function AdminSystemSettings() {
|
||||
fetch("/api/settings/system", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ apiKey, provider, registrationEnabled })
|
||||
body: JSON.stringify({
|
||||
apiKey,
|
||||
provider,
|
||||
registrationEnabled,
|
||||
publicAccessEnabled
|
||||
})
|
||||
}),
|
||||
fetch("/api/settings/app-name", {
|
||||
method: "POST",
|
||||
@@ -224,14 +231,29 @@ export default function AdminSystemSettings() {
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
<label className="flex items-center gap-2 text-sm text-slate-700">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={registrationEnabled}
|
||||
onChange={(event) => setRegistrationEnabled(event.target.checked)}
|
||||
/>
|
||||
Registrierung erlauben
|
||||
</label>
|
||||
<div className="rounded-xl border border-slate-200 bg-slate-50/60 p-3 text-sm text-slate-700">
|
||||
<p className="text-xs uppercase tracking-[0.2em] text-slate-500">
|
||||
Zugriff
|
||||
</p>
|
||||
<div className="mt-3 space-y-3">
|
||||
<label className="flex items-center gap-2">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={publicAccessEnabled}
|
||||
onChange={(event) => setPublicAccessEnabled(event.target.checked)}
|
||||
/>
|
||||
Öffentlicher Zugriff erlauben
|
||||
</label>
|
||||
<label className="flex items-center gap-2">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={registrationEnabled}
|
||||
onChange={(event) => setRegistrationEnabled(event.target.checked)}
|
||||
/>
|
||||
Registrierung erlauben
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" className="btn-accent">
|
||||
Speichern
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user