From 4189448c56e61632c5b087e2cda376776543e03d Mon Sep 17 00:00:00 2001 From: Eduard Wisch Date: Fri, 14 Aug 2026 18:23:43 +0200 Subject: [PATCH] Login: Passwort-Auge, aenderbare Serveradresse, laenger stehende Fehlermeldung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Auge-Symbol im Passwortfeld. Haben alle anderen AWL-Apps seit 06.07.2026; NetDiag war die letzte ohne. Grund: bei falschem Tastaturlayout tippt man sich sonst blind fest. Der Typ wird imperativ am Element gesetzt, weil Svelte 5 ein dynamisches type-Attribut an einem Feld mit bind:value verbietet; type="button" am Schalter ist Pflicht, sonst schickt er das Formular ab. - Serveradresse laesst sich in den Einstellungen aendern. Bisher stand sie dort nur als Text — eine falsche Adresse liess sich nur durch Abmelden korrigieren. Ein Wechsel meldet bewusst ab, weil das Token nur beim bisherigen Server gilt. - Login-Fehler bleiben 8 s stehen statt 3 s und zeigen die Servermeldung im Wortlaut. Bei 429 steht dort die Wartezeit der Brute-Force-Bremse, bei 403 der Grund. Im Emulator (Pixel 6 / Android 14) gegen das Test-Dolibarr geprueft: Ein- und Ausblenden des Passworts, Anmeldung ueber awlauth, Auftragsliste, Einstellungen. Co-Authored-By: Claude Opus 5 (1M context) --- src/routes/einstellungen/+page.svelte | 81 +++++++++++++++++++++++++-- src/routes/login/+page.svelte | 56 +++++++++++++++--- 2 files changed, 125 insertions(+), 12 deletions(-) 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} +