profil: Speichern-Buttons für Persönliche Daten und Konto & Sicherheit
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 <noreply@anthropic.com>
This commit is contained in:
parent
ce59cbbf4a
commit
0b01929f80
2 changed files with 26 additions and 2 deletions
|
|
@ -361,7 +361,7 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
|
|||
<form wire:submit="saveProfile" class="space-y-6">
|
||||
{{-- ============== 1) PERSÖNLICHE DATEN + KONTO ============== --}}
|
||||
<div class="grid gap-6 lg:grid-cols-2">
|
||||
<article class="panel" id="profil">
|
||||
<article class="panel flex flex-col" id="profil">
|
||||
<div class="panel-head">
|
||||
<span class="section-eyebrow">{{ __('Persönliche Daten') }}</span>
|
||||
</div>
|
||||
|
|
@ -389,9 +389,14 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
|
|||
</flux:select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-auto px-5 py-4 border-t border-[color:var(--color-bg-rule)] flex justify-end">
|
||||
<flux:button type="submit" variant="primary">
|
||||
{{ __('Speichern') }}
|
||||
</flux:button>
|
||||
</div>
|
||||
</article>
|
||||
|
||||
<article class="panel">
|
||||
<article class="panel flex flex-col">
|
||||
<div class="panel-head">
|
||||
<span class="section-eyebrow">{{ __('Konto & Sicherheit') }}</span>
|
||||
</div>
|
||||
|
|
@ -407,6 +412,11 @@ new #[Layout('components.layouts.app'), Title('Mein Profil')] class extends Comp
|
|||
</flux:button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-auto px-5 py-4 border-t border-[color:var(--color-bg-rule)] flex justify-end">
|
||||
<flux:button type="submit" variant="primary">
|
||||
{{ __('Speichern') }}
|
||||
</flux:button>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue