diff --git a/src/routes/einstellungen/+page.svelte b/src/routes/einstellungen/+page.svelte index 7dffee3..065b04e 100644 --- a/src/routes/einstellungen/+page.svelte +++ b/src/routes/einstellungen/+page.svelte @@ -2,7 +2,8 @@ import { goto } from '$app/navigation'; import AppHeader from '$lib/components/AppHeader.svelte'; import { auth } from '$lib/auth.svelte'; - import { getServerUrl } from '$lib/api'; + import { getServerUrl, setServerUrl } from '$lib/api'; + import { Capacitor } from '@capacitor/core'; import { sync } from '$lib/sync.svelte'; import { toast } from '$lib/toast.svelte'; import { APP_VERSION, checkForUpdate, installUpdate, type UpdateInfo } from '$lib/updater'; @@ -62,6 +63,33 @@ sync.stop(); goto('/login/'); } + + /* --- Server-Adresse ändern ------------------------------------------- */ + // Nur auf dem Gerät sinnvoll: im Browser läuft alles über den Vite-Proxy. + const canEditServer = Capacitor.isNativePlatform(); + let editServer = $state(false); + let serverInput = $state(getServerUrl()); + + /** + * Neue Server-Adresse übernehmen. Das Token gilt nur beim alten Server, + * deshalb wird bewusst abgemeldet statt so zu tun, als liefe alles weiter. + */ + async function saveServer() { + const url = serverInput.trim(); + if (!url) { + toast.show('Server-Adresse fehlt', 'error'); + return; + } + if (!/^https?:\/\//i.test(url)) { + toast.show('Adresse muss mit http:// oder https:// beginnen', 'error', 5000); + return; + } + await setServerUrl(url); + await auth.logout(); + sync.stop(); + toast.show('Server geändert — bitte neu anmelden', 'info', 5000); + goto('/login/'); + } @@ -113,9 +141,54 @@

Synchronisierung

{syncLabel}

-

- Server: {getServerUrl() || '(Browser-Proxy)'} -

+ {#if editServer} +
+ +
+ + +
+

+ Ein Wechsel meldet ab — das Token gilt nur beim bisherigen Server. +

+
+ {:else} +

+ Server: {getServerUrl() || '(Browser-Proxy)'} + {#if canEditServer} + + {/if} +

+ {/if} +