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

@ -21,5 +21,7 @@ class DatabaseSeeder extends Seeder
'email' => 'kevin.adametz@me.com',
'password' => Hash::make('xunfew-0Jygjy-minnyt'),
]);
$this->call(TestDisplaySeeder::class);
}
}

View file

@ -169,7 +169,9 @@ class DisplayVersionSeeder extends Seeder
'qr_url' => 'https://cabinet-bielefeld.de',
'qr_title' => 'Kontakt',
'contact' => "0521 98620100\nTel. oder WhatsApp",
'show_brand_text' => true,
'show_logo' => true,
'logo_url' => '../logo-cabinet-300.png',
'brand_text' => 'Bielefeld',
'brand_tagline' => "Planung • Beratung\nLieferung & Montage",
],
[
@ -188,7 +190,9 @@ class DisplayVersionSeeder extends Seeder
'qr_url' => 'https://cabinet-bielefeld.de',
'qr_title' => 'Reservieren',
'contact' => "0521 98620100\nTel. oder WhatsApp",
'show_brand_text' => false,
'show_logo' => true,
'logo_url' => '../logo-cabinet-300.png',
'brand_text' => '',
'brand_tagline' => '',
],
[
@ -212,7 +216,9 @@ class DisplayVersionSeeder extends Seeder
'qr_url' => 'https://cabinet-bielefeld.de',
'qr_title' => 'Reservieren',
'contact' => "0521 98620100\nTel. oder WhatsApp",
'show_brand_text' => false,
'show_logo' => true,
'logo_url' => '../logo-cabinet-300.png',
'brand_text' => '',
'brand_tagline' => '',
],
[
@ -231,7 +237,9 @@ class DisplayVersionSeeder extends Seeder
'qr_url' => 'https://cabinet-bielefeld.de',
'qr_title' => 'Sichern',
'contact' => "0521 98620100\nTel. oder WhatsApp",
'show_brand_text' => false,
'show_logo' => true,
'logo_url' => '../logo-cabinet-300.png',
'brand_text' => '',
'brand_tagline' => '',
],
];

View file

@ -0,0 +1,31 @@
<?php
namespace Database\Seeders;
use App\Models\Display;
use Illuminate\Database\Seeder;
class TestDisplaySeeder extends Seeder
{
/**
* Stellt sicher, dass genau ein Test-Display existiert (Konzept §10.1).
* Idempotent: legt nur an, wenn noch kein Test-Display vorhanden ist.
*/
public function run(): void
{
if (Display::query()->where('is_test', true)->exists()) {
$this->command?->info('Test-Display existiert bereits übersprungen.');
return;
}
Display::query()->create([
'name' => 'Test-Display',
'location' => 'Vorschau / Test',
'is_active' => true,
'is_test' => true,
]);
$this->command?->info('Test-Display angelegt.');
}
}