From 883b6f66fe54c02722951eb29195198c189ca94d Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 14 Jun 2026 23:10:37 +0200 Subject: [PATCH] fix(system): constrain stretched layout, real save icon, de-Caddy copy, SSH-reset hint System page capped to a readable width; Speichern gets a proper save glyph (added save/eye/eye-off/user-plus to the icon set); operator-facing 'Caddy' softened to neutral wording; added a 'fully locked out -> SSH + clusev:reset-admin' hint. Settings email field to type=text. Co-Authored-By: Claude Opus 4.8 (1M context) --- lang/de/system.php | 9 +++++---- lang/en/system.php | 9 +++++---- resources/views/components/icon.blade.php | 4 ++++ resources/views/livewire/settings/index.blade.php | 2 +- resources/views/livewire/system/index.blade.php | 10 ++++++++-- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/lang/de/system.php b/lang/de/system.php index e783b53..8601fe2 100644 --- a/lang/de/system.php +++ b/lang/de/system.php @@ -25,6 +25,7 @@ return [ 'domain_invalid' => 'Bitte eine gültige Domain eingeben (z. B. panel.example.com) — ohne http://, Port oder Pfad.', 'access_address' => 'Zugriffsadresse', 'access_bare_ip' => 'HTTP (Bare-IP)', + 'ssh_reset_hint' => 'Komplett ausgesperrt? Per SSH auf den Host einloggen und `clusev:reset-admin` ausführen, um den Zugang zurückzusetzen.', // Change-domain confirmation modal 'change_domain_heading' => 'Domain ändern', @@ -56,14 +57,14 @@ return [ // TLS-mode selector 'tls_mode_title' => 'TLS-Terminierung', - 'tls_mode_caddy' => 'Caddy (Let\'s Encrypt, automatisch)', + 'tls_mode_caddy' => 'Eingebautes TLS (Let\'s Encrypt, automatisch)', 'tls_mode_caddy_desc' => 'Das Panel holt selbst ein Zertifikat für die Domain.', 'tls_mode_external' => 'Externer Reverse-Proxy', 'tls_mode_external_desc' => 'Ein Proxy davor (z. B. Zoraxy) terminiert TLS; das Panel liefert HTTP.', - 'tls_external_hint' => 'Externer Proxy: setze TRUSTED_PROXY_CIDR auf die Adresse deines Proxys und schütze den HTTP-Port per Firewall, sodass er nur vom Proxy erreichbar ist. Caddy holt dann kein Zertifikat.', + 'tls_external_hint' => 'Externer Proxy: setze TRUSTED_PROXY_CIDR auf die Adresse deines Proxys und schütze den HTTP-Port per Firewall, sodass er nur vom Proxy erreichbar ist. Das Panel holt dann kein Zertifikat.', 'change_tls_heading' => 'TLS-Modus ändern', - 'change_tls_body_external' => 'Auf „Externer Reverse-Proxy" umstellen? Caddy holt kein Zertifikat mehr; TLS muss der Proxy davor liefern. Gilt nach Neustart des Stacks.', - 'change_tls_body_caddy' => 'Auf „Caddy (Let\'s Encrypt)" umstellen? Das Panel holt wieder selbst ein Zertifikat. Gilt nach Neustart des Stacks.', + 'change_tls_body_external' => 'Auf „Externer Reverse-Proxy" umstellen? Das Panel holt kein Zertifikat mehr; TLS muss der Proxy davor liefern. Gilt nach Neustart des Stacks.', + 'change_tls_body_caddy' => 'Auf „Eingebautes TLS (Let\'s Encrypt)" umstellen? Das Panel holt wieder selbst ein Zertifikat. Gilt nach Neustart des Stacks.', 'change_tls_confirm' => 'Umstellen', 'tls_saved_notify' => 'TLS-Modus gespeichert — Stack neu starten, um zu übernehmen.', diff --git a/lang/en/system.php b/lang/en/system.php index d9a96f9..fc539e0 100644 --- a/lang/en/system.php +++ b/lang/en/system.php @@ -25,6 +25,7 @@ return [ 'domain_invalid' => 'Please enter a valid domain (e.g. panel.example.com) — without http://, port or path.', 'access_address' => 'Access address', 'access_bare_ip' => 'HTTP (bare IP)', + 'ssh_reset_hint' => 'Fully locked out? SSH into the host and run `clusev:reset-admin` to reset dashboard access.', // Change-domain confirmation modal 'change_domain_heading' => 'Change domain', @@ -56,14 +57,14 @@ return [ // TLS-mode selector 'tls_mode_title' => 'TLS termination', - 'tls_mode_caddy' => 'Caddy (Let\'s Encrypt, automatic)', + 'tls_mode_caddy' => 'Built-in TLS (Let\'s Encrypt, automatic)', 'tls_mode_caddy_desc' => 'The panel fetches its own certificate for the domain.', 'tls_mode_external' => 'External reverse proxy', 'tls_mode_external_desc' => 'A proxy in front (e.g. Zoraxy) terminates TLS; the panel serves HTTP.', - 'tls_external_hint' => 'External proxy: set TRUSTED_PROXY_CIDR to your proxy\'s address and firewall the HTTP port so it is only reachable from the upstream proxy. Caddy will not fetch a certificate.', + 'tls_external_hint' => 'External proxy: set TRUSTED_PROXY_CIDR to your proxy\'s address and firewall the HTTP port so it is only reachable from the upstream proxy. The panel will not fetch a certificate.', 'change_tls_heading' => 'Change TLS mode', - 'change_tls_body_external' => 'Switch to "External reverse proxy"? Caddy will no longer fetch a certificate; TLS must be provided by the proxy in front. Takes effect after a stack restart.', - 'change_tls_body_caddy' => 'Switch to "Caddy (Let\'s Encrypt)"? The panel will fetch its own certificate again. Takes effect after a stack restart.', + 'change_tls_body_external' => 'Switch to "External reverse proxy"? The panel will no longer fetch a certificate; TLS must be provided by the proxy in front. Takes effect after a stack restart.', + 'change_tls_body_caddy' => 'Switch to "Built-in TLS (Let\'s Encrypt)"? The panel will fetch its own certificate again. Takes effect after a stack restart.', 'change_tls_confirm' => 'Switch', 'tls_saved_notify' => 'TLS mode saved — restart the stack to apply.', diff --git a/resources/views/components/icon.blade.php b/resources/views/components/icon.blade.php index a7497ac..02524b9 100644 --- a/resources/views/components/icon.blade.php +++ b/resources/views/components/icon.blade.php @@ -28,6 +28,10 @@ 'rotate' => '', 'trash' => '', 'settings' => '', + 'save' => '', + 'eye' => '', + 'eye-off' => '', + 'user-plus' => '', ]; @endphp merge(['class' => $class]) }} viewBox="0 0 24 24" fill="none" stroke="currentColor" diff --git a/resources/views/livewire/settings/index.blade.php b/resources/views/livewire/settings/index.blade.php index 4929591..8f59eac 100644 --- a/resources/views/livewire/settings/index.blade.php +++ b/resources/views/livewire/settings/index.blade.php @@ -60,7 +60,7 @@
- + @error('email')

{{ $message }}

@enderror
diff --git a/resources/views/livewire/system/index.blade.php b/resources/views/livewire/system/index.blade.php index 0a63188..18aa49a 100644 --- a/resources/views/livewire/system/index.blade.php +++ b/resources/views/livewire/system/index.blade.php @@ -1,4 +1,4 @@ -
+
{{-- Header --}}
@@ -41,6 +41,12 @@
@endif + {{-- Last-resort recovery: SSH into the host and reset admin access. --}} +
+ +

{{ __('system.ssh_reset_hint') }}

+
+ {{-- Restart-required notice (shown after a successful save) --}} @if ($restartPending)
@@ -65,7 +71,7 @@ placeholder="{{ __('system.domain_placeholder') }}" class="h-9 w-full rounded-md border border-line bg-inset px-3 font-mono text-sm text-ink placeholder:text-ink-4 focus:border-accent/40 focus:outline-none" /> - {{ __('common.save') }} + {{ __('common.save') }}
@error('domainInput')