10-04-2026
This commit is contained in:
parent
4d6b4930b2
commit
4bb89aad8c
836 changed files with 52961 additions and 5950 deletions
|
|
@ -11,7 +11,7 @@ use Livewire\Attributes\Title;
|
|||
use Livewire\Volt\Component;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
new #[Layout('web.layouts.web-master-slot'), Title('Willkommen bei B2In')] class extends Component {
|
||||
new #[Layout('web.layouts.web-master-slot'), Title('Willkommen bei B2in')] class extends Component {
|
||||
public string $firstName = '';
|
||||
public string $lastName = '';
|
||||
public string $email = '';
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ use Livewire\Attributes\Title;
|
|||
use Livewire\Volt\Component;
|
||||
use Spatie\Permission\Models\Role;
|
||||
|
||||
new #[Layout('components.layouts.guest'), Title('Willkommen bei B2In')] class extends Component {
|
||||
new #[Layout('components.layouts.guest'), Title('Willkommen bei B2in')] class extends Component {
|
||||
public PartnerInvitation $invitation;
|
||||
|
||||
public string $firstName = '';
|
||||
|
|
@ -96,7 +96,7 @@ new #[Layout('components.layouts.guest'), Title('Willkommen bei B2In')] class ex
|
|||
\DB::commit();
|
||||
|
||||
// 6. Weiterleitung zum Setup-Wizard
|
||||
session()->flash('message', __('Willkommen bei B2In! Vervollständigen Sie nun Ihr Profil.'));
|
||||
session()->flash('message', __('Willkommen bei B2in! Vervollständigen Sie nun Ihr Profil.'));
|
||||
$this->redirect(route('partner.setup.wizard'), navigate: true);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -2,26 +2,32 @@
|
|||
|
||||
use App\Enums\ProductStatus;
|
||||
use App\Models\Partner;
|
||||
use App\Models\Product;
|
||||
use Livewire\Volt\Component;
|
||||
use function Livewire\Volt\{layout, title};
|
||||
|
||||
use function Livewire\Volt\layout;
|
||||
|
||||
layout('components.layouts.app');
|
||||
|
||||
new class extends Component {
|
||||
new class extends Component
|
||||
{
|
||||
public Partner $partner;
|
||||
|
||||
public string $title = '';
|
||||
|
||||
public function mount(int $partnerId): void
|
||||
{
|
||||
$this->partner = Partner::with(['hub', 'products' => function ($q) {
|
||||
$q->where('status', ProductStatus::Active)
|
||||
->where('is_curated', true)
|
||||
->where('is_available', true)
|
||||
->with(['categories', 'media'])
|
||||
->latest()
|
||||
->limit(6);
|
||||
}])->findOrFail($partnerId);
|
||||
$this->partner = Partner::with([
|
||||
'hub',
|
||||
'media',
|
||||
'products' => function ($q) {
|
||||
$q->where('status', ProductStatus::Active)
|
||||
->where('is_curated', true)
|
||||
->where('is_available', true)
|
||||
->with(['categories', 'media'])
|
||||
->latest()
|
||||
->limit(6);
|
||||
},
|
||||
])->findOrFail($partnerId);
|
||||
|
||||
$this->title = $this->partner->display_name ?? $this->partner->company_name;
|
||||
}
|
||||
|
|
@ -31,6 +37,9 @@ new class extends Component {
|
|||
return [
|
||||
'partner' => $this->partner,
|
||||
'products' => $this->partner->products,
|
||||
'teamPhotos' => $this->partner->media->where('type', 'team_photo')->sortBy('order_column')->values(),
|
||||
'showroomPhotos' => $this->partner->media->where('type', 'showroom')->sortBy('order_column')->values(),
|
||||
'brandImages' => $this->partner->media->where('type', 'brand_image')->sortBy('order_column')->values(),
|
||||
];
|
||||
}
|
||||
}; ?>
|
||||
|
|
@ -95,7 +104,7 @@ new class extends Component {
|
|||
</flux:card>
|
||||
|
||||
<div class="grid grid-cols-1 gap-8 lg:grid-cols-3">
|
||||
{{-- Linke Spalte: Story + Spezialisierungen --}}
|
||||
{{-- Linke Spalte: Story + Showroom + Marken-Bilder + Produkte --}}
|
||||
<div class="space-y-6 lg:col-span-2">
|
||||
{{-- Story / Über uns --}}
|
||||
@if($partner->story_text)
|
||||
|
|
@ -107,6 +116,42 @@ new class extends Component {
|
|||
</flux:card>
|
||||
@endif
|
||||
|
||||
{{-- Showroom-Galerie (Händler) --}}
|
||||
@if($showroomPhotos->isNotEmpty())
|
||||
<flux:card class="shadow-elegant">
|
||||
<flux:heading size="lg" class="mb-4">{{ __('Unser Showroom') }}</flux:heading>
|
||||
<div class="grid grid-cols-2 gap-3 sm:grid-cols-3">
|
||||
@foreach($showroomPhotos as $photo)
|
||||
<div class="aspect-square overflow-hidden rounded-lg bg-zinc-100 dark:bg-zinc-800">
|
||||
<img
|
||||
src="{{ Storage::url($photo->file_path) }}"
|
||||
alt="{{ __('Showroom') }}"
|
||||
class="h-full w-full object-cover"
|
||||
>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</flux:card>
|
||||
@endif
|
||||
|
||||
{{-- Marken-Bilder (Hersteller) --}}
|
||||
@if($brandImages->isNotEmpty())
|
||||
<flux:card class="shadow-elegant">
|
||||
<flux:heading size="lg" class="mb-4">{{ __('Unsere Marke') }}</flux:heading>
|
||||
<div class="grid grid-cols-2 gap-3 sm:grid-cols-3">
|
||||
@foreach($brandImages as $photo)
|
||||
<div class="aspect-square overflow-hidden rounded-lg bg-zinc-100 dark:bg-zinc-800">
|
||||
<img
|
||||
src="{{ Storage::url($photo->file_path) }}"
|
||||
alt="{{ __('Markenbild') }}"
|
||||
class="h-full w-full object-cover"
|
||||
>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</flux:card>
|
||||
@endif
|
||||
|
||||
{{-- Produkte --}}
|
||||
@if($products->isNotEmpty())
|
||||
<flux:card class="shadow-elegant">
|
||||
|
|
@ -197,6 +242,24 @@ new class extends Component {
|
|||
</flux:card>
|
||||
@endif
|
||||
|
||||
{{-- Team-Fotos --}}
|
||||
@if($teamPhotos->isNotEmpty())
|
||||
<flux:card class="shadow-elegant">
|
||||
<flux:heading size="lg" class="mb-4">{{ __('Unser Team') }}</flux:heading>
|
||||
<div class="grid grid-cols-2 gap-3">
|
||||
@foreach($teamPhotos as $photo)
|
||||
<div class="aspect-square overflow-hidden rounded-lg bg-zinc-100 dark:bg-zinc-800">
|
||||
<img
|
||||
src="{{ Storage::url($photo->file_path) }}"
|
||||
alt="{{ __('Team') }}"
|
||||
class="h-full w-full object-cover"
|
||||
>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</flux:card>
|
||||
@endif
|
||||
|
||||
{{-- Adresse --}}
|
||||
@if($partner->street || $partner->city)
|
||||
<flux:card class="shadow-elegant">
|
||||
|
|
|
|||
|
|
@ -557,7 +557,7 @@ new #[Layout('components.layouts.guest'), Title('Setup-Wizard')] class extends C
|
|||
{{ __('Ihre Marke') }}
|
||||
</p>
|
||||
<p class="text-xs text-purple-600 dark:text-purple-300">
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2In gelistet. Sie können später weitere Marken hinzufügen.') }}
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2in gelistet. Sie können später weitere Marken hinzufügen.') }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
@ -650,7 +650,7 @@ new #[Layout('components.layouts.guest'), Title('Setup-Wizard')] class extends C
|
|||
™️ {{ __('Ihre Marke') }}
|
||||
</flux:heading>
|
||||
<flux:subheading>
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2In gelistet. (Sie können später weitere Marken hinzufügen)') }}
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2in gelistet. (Sie können später weitere Marken hinzufügen)') }}
|
||||
</flux:subheading>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -566,7 +566,7 @@ new #[Layout('components.layouts.guest'), Title('Setup-Wizard')] class extends C
|
|||
™️ {{ __('Ihre Marke') }}
|
||||
</flux:heading>
|
||||
<flux:subheading>
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2In gelistet. (Sie können später weitere Marken hinzufügen)') }}
|
||||
{{ __('Unter dieser Marke werden Ihre Produkte auf B2in gelistet. (Sie können später weitere Marken hinzufügen)') }}
|
||||
</flux:subheading>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue