PM-Vorschau: echtes Portal-Design, Direkt-Button und Portal-Switch

Der Vorschau-Link (/pm-vorschau/{token}) renderte eine schlichte
Standalone-Seite, die dem spaeteren Erscheinungsbild nicht entsprach.
Jetzt rendert er die echte Detailseite (web.release-detail) im Theme
des Zielportals:

- Controller wendet Domain-/Theme-Konfig des Zielportals an (Sprache
  der PM, Links zeigen auf die Portal-Domain), kein Hit-Zaehler
- Gelbes Vorschau-Banner mit Status und Link-Gueltigkeit; noindex per
  Meta-Tag + X-Robots-Tag-Header, Canonical entfaellt bei noindex
  (neue robots-Section im Web-Layout)
- Teilen-Buttons teilen den Vorschau-Link selbst (oeffentliche URL
  existiert vor Veroeffentlichung noch nicht)
- PMs fuer beide Portale: ?portal=... waehlt die Ansicht, Umschalter
  im Banner; im Kundenpanel je Portal ein Vorschau-Button, sonst ein
  einzelner "Vorschau oeffnen"-Button (Link-Feld jetzt kopierbar)
- Alte press-release-preview-View entfernt

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Kevin Adametz 2026-07-07 13:11:57 +00:00
parent db65c2ed7d
commit 14994e4748
8 changed files with 306 additions and 149 deletions

View file

@ -362,8 +362,26 @@ new #[Layout('components.layouts.app'), Title('Pressemitteilung')] class extends
<span class="section-eyebrow">{{ __('Öffentlicher Vorschau-Link erstellt') }}</span>
<span class="badge ok dot">{{ __('gültig bis :date', ['date' => $shareExpiresAt]) }}</span>
</div>
<div class="p-5">
<flux:input readonly :value="$shareUrl" />
<div class="p-5 space-y-3">
<flux:input readonly copyable :value="$shareUrl" />
<div class="flex flex-wrap items-center gap-2">
@if ($pr->portal === \App\Enums\Portal::Both)
{{-- PM erscheint auf beiden Portalen: Vorschau je Portal öffnen --}}
<flux:button size="sm" variant="primary" icon="arrow-top-right-on-square"
href="{{ $shareUrl }}?portal=presseecho" target="_blank" rel="noopener">
{{ __('Vorschau presseecho') }}
</flux:button>
<flux:button size="sm" variant="primary" icon="arrow-top-right-on-square"
href="{{ $shareUrl }}?portal=businessportal24" target="_blank" rel="noopener">
{{ __('Vorschau businessportal24') }}
</flux:button>
@else
<flux:button size="sm" variant="primary" icon="arrow-top-right-on-square"
href="{{ $shareUrl }}" target="_blank" rel="noopener">
{{ __('Vorschau öffnen') }}
</flux:button>
@endif
</div>
</div>
</article>
@endif