From 8a695fd55505b9d82ef2f18eb5623dcd15420cf1 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Wed, 15 Jul 2026 13:12:05 +0000 Subject: [PATCH] =?UTF-8?q?profil:=20Speichern-Buttons=20f=C3=BCr=20Pers?= =?UTF-8?q?=C3=B6nliche=20Daten=20und=20Konto=20&=20Sicherheit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die beiden oberen Panels auf /admin/me/profile hatten als einzige keine eigene Speichern-Zeile — Sprach- und Kontaktdaten-Änderungen ließen sich nur über die Buttons weiter unten sichern. Footer wie in den übrigen Panels ergänzt, per flex/mt-auto bündig am Panel-Ende. Co-Authored-By: Claude Fable 5 --- .../views/livewire/customer/profile.blade.php | 14 ++++++++++++-- tests/Feature/CustomerProfileSecurityTest.php | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/resources/views/livewire/customer/profile.blade.php b/resources/views/livewire/customer/profile.blade.php index 5e7da065..b4437c4e 100644 --- a/resources/views/livewire/customer/profile.blade.php +++ b/resources/views/livewire/customer/profile.blade.php @@ -361,7 +361,7 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
{{-- ============== 1) PERSÖNLICHE DATEN + KONTO ============== --}}
-
+
{{ __('Persönliche Daten') }}
@@ -389,9 +389,14 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
+
+ + {{ __('Speichern') }} + +
-
+
{{ __('Konto & Sicherheit') }}
@@ -407,6 +412,11 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp +
+ + {{ __('Speichern') }} + +
diff --git a/tests/Feature/CustomerProfileSecurityTest.php b/tests/Feature/CustomerProfileSecurityTest.php index 5fad298c..7f68c1f0 100644 --- a/tests/Feature/CustomerProfileSecurityTest.php +++ b/tests/Feature/CustomerProfileSecurityTest.php @@ -84,6 +84,20 @@ test('an incomplete billing address reports each missing field exactly once', fu ->assertHasErrors(['billingLastName', 'billingAddress1', 'billingPostalCode', 'billingCity']); }); +test('every profile panel offers a save button', function () { + /** @var TestCase $this */ + $customer = User::factory()->create(['is_active' => true]); + + $this->actingAs($customer); + + // 6 Panels (Persönliche Daten, Konto & Sicherheit, Rechnungsadresse, + // Agentur-Angaben, E-Mail-Benachrichtigungen, Einstellungen) — jedes mit + // eigenem Submit-Button für dasselbe Formular. + $html = LivewireVolt::test('customer.profile')->html(); + + expect(substr_count($html, 'type="submit"'))->toBe(6); +}); + test('a malformed vat id blocks saving with a field error', function () { /** @var TestCase $this */ $customer = User::factory()->create(['is_active' => true]);