Display CMS Optimierungen 29-05-2026

- Mediathek: Video-Vorschaubilder statt Icons (FFmpeg-Thumbnails + Backfill-Command), Kategorie "Sonstiges"
- B2in Media-Picker zeigt alle Medientypen, Typ wird automatisch erkannt; Thumbnail-Preview vor allen Medien-URL-Feldern
- B2in Marke/Footer: Footer ein/aus, Logo+Claim frei positionierbar (Ecken) mit Constraints, separate Anzeige-Schalter
- Angebote-Modul dynamisch: kein Slide-Typ mehr, einheitliches Detail-Layout mit ein-/ausblendbaren Bloecken, Logo/Brand pro Slide, Streichpreis-Option
- Player: leere Module stoppen Endlosschleife, dynamische Layout-Anpassung bei verstecktem Footer/Header
- Fix: Script-Ladereihenfolge (Livewire vor Flux), entfernte stale public/flux/flux.js, Modal-Crash beim Aktualisieren behoben

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Kevin Adametz 2026-05-29 15:57:33 +00:00
parent 9262132325
commit 6c6d683b9a
42 changed files with 2267 additions and 13905 deletions

View file

@ -16,7 +16,9 @@ class DisplayPreviewController extends Controller
->where('preview_token', $token)
->firstOrFail();
return response()->file(public_path('_cabinet/display/index.html'));
return response()->file(public_path('_cabinet/display/index.html'), [
'Cache-Control' => 'no-cache, must-revalidate',
]);
}
public function config(string $token, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse

View file

@ -13,14 +13,21 @@ class ModulePreviewController extends Controller
{
public function show(DisplayVersion $module): BinaryFileResponse
{
return response()->file(public_path('_cabinet/display/index.html'));
return $this->playerResponse();
}
public function showItem(DisplayVersion $module, DisplayVersionItem $item): BinaryFileResponse
{
abort_unless($item->display_version_id === $module->id, 404);
return response()->file(public_path('_cabinet/display/index.html'));
return $this->playerResponse();
}
private function playerResponse(): BinaryFileResponse
{
return response()->file(public_path('_cabinet/display/index.html'), [
'Cache-Control' => 'no-cache, must-revalidate',
]);
}
public function config(DisplayVersion $module, DisplayPlaylistConfigBuilder $configBuilder): JsonResponse