Kategorie-Pflichtfeld direkt unter die Firma statt in die Sidebar. Titelbild-Upload öffnet ein Modal: erst Bild wählen, dann erscheinen die gestrafften Schritte (Herkunft & Bildnachweis mit Vorschlag aus dem Urheber, Personen & Rechte, Bestätigung), Optionales eingeklappt. Bildrechte-Checkbox im Einreichen-Modal nur noch mit eigenem Titelbild. Co-authored-by: Cursor <cursoragent@cursor.com>
42 lines
1.7 KiB
PHP
42 lines
1.7 KiB
PHP
{{--
|
|
Persistente Fehler-Zusammenfassung der PM-Editoren.
|
|
|
|
Der Danger-Toast verschwindet nach wenigen Sekunden und die Feld-Errors
|
|
verteilen sich über Schreibfläche und Sidebar — diese Box bleibt direkt
|
|
bei den Speichern-Buttons stehen, bis alle Fehler behoben sind. Jeder
|
|
Eintrag scrollt per Klick zum zugehörigen Panel (data-error-anchor).
|
|
|
|
Verwendung: <x-portal.pr-error-summary :errors="$errors" />
|
|
--}}
|
|
@props(['errors'])
|
|
|
|
@php
|
|
/** Fehler-Keys ohne eigenes Panel springen zum Panel ihres Themas. */
|
|
$anchorAliases = [
|
|
'scheduledDate' => 'scheduledAt',
|
|
'scheduledTime' => 'scheduledAt',
|
|
'publishMode' => 'scheduledAt',
|
|
'language' => 'backlinkUrl',
|
|
'keywords' => 'backlinkUrl',
|
|
];
|
|
@endphp
|
|
|
|
@if ($errors->any())
|
|
<div class="pr-error-summary" role="alert" x-data>
|
|
<div class="head">
|
|
<flux:icon name="exclamation-circle" variant="mini" class="size-4 flex-shrink-0" />
|
|
<span>{{ trans_choice('{1}Speichern nicht möglich — bitte korrigiere:|[2,*]Speichern nicht möglich — bitte korrigiere :count Felder:', count($errors->keys())) }}</span>
|
|
</div>
|
|
<ul>
|
|
@foreach ($errors->keys() as $errorKey)
|
|
@php($anchor = $anchorAliases[$errorKey] ?? $errorKey)
|
|
<li wire:key="pr-error-summary-{{ $errorKey }}">
|
|
<button
|
|
type="button"
|
|
x-on:click="document.querySelector('[data-error-anchor={{ $anchor }}]')?.scrollIntoView({ behavior: 'smooth', block: 'center' })"
|
|
>{{ $errors->first($errorKey) }}</button>
|
|
</li>
|
|
@endforeach
|
|
</ul>
|
|
</div>
|
|
@endif
|