12-05-2026 Frontend dev
This commit is contained in:
parent
405df0a122
commit
5b8bdf4182
779 changed files with 480564 additions and 6241 deletions
|
|
@ -10,34 +10,169 @@
|
|||
<x-app-logo />
|
||||
</a>
|
||||
|
||||
@php
|
||||
$user = auth()->user();
|
||||
$impersonation = app(\App\Actions\Admin\UserImpersonation::class);
|
||||
$impersonator = $impersonation->impersonator();
|
||||
$isImpersonating = $impersonation->isActive();
|
||||
$canAdmin = ($user?->canAccessAdmin() ?? false) && ! $isImpersonating;
|
||||
$canCustomer = $user?->canAccessCustomer() ?? false;
|
||||
$reviewCount = $canAdmin
|
||||
? app(\App\Services\Admin\AdminPerformanceCache::class)->pressReleaseReviewCount()
|
||||
: 0;
|
||||
@endphp
|
||||
|
||||
<flux:navlist variant="outline">
|
||||
<flux:navlist.group :heading="__('Trader')" class="grid mb-4">
|
||||
<flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
{{-- Dashboard (Admin/Editor) --}}
|
||||
@if($canAdmin)
|
||||
<flux:navlist.item icon="chart-bar" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate class="mb-4">
|
||||
{{ __('Dashboard') }}
|
||||
</flux:navlist.item>
|
||||
@endif
|
||||
|
||||
<flux:navlist.group :heading="__('Customer')" class="grid mb-4">
|
||||
<flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
|
||||
<flux:navlist.group :heading="__('Admin')" class="grid mb-4">
|
||||
<flux:navlist.item icon="user-group" :href="route('admin.users')" :current="request()->routeIs('admin.users')" wire:navigate>{{ __('Users') }}</flux:navlist.item>
|
||||
<flux:navlist.item icon="user-group" :href="route('admin.users.table')" :current="request()->routeIs('admin.users.table')" wire:navigate>{{ __('Users Table') }}</flux:navlist.item>
|
||||
<flux:navlist.group expandable expanded="false" heading="Favorites" class="hidden lg:grid">
|
||||
<flux:navlist.item icon="user-group" :href="route('admin.users')" :current="request()->routeIs('admin.users')" wire:navigate>{{ __('Users') }}</flux:navlist.item>
|
||||
<flux:navlist.item icon="user-group" :href="route('admin.users.table')" :current="request()->routeIs('admin.users.table')" wire:navigate>{{ __('Users Table') }}</flux:navlist.item>
|
||||
{{-- Mein Bereich – sichtbar für alle Panel-User --}}
|
||||
@if($canCustomer)
|
||||
<flux:navlist.group :heading="__('Mein Bereich')" class="grid mb-4">
|
||||
<flux:navlist.item icon="home" :href="route('me.dashboard')" :current="request()->routeIs('me.dashboard')" wire:navigate>
|
||||
{{ __('Übersicht') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="newspaper" :href="route('me.press-releases.index')" :current="request()->routeIs('me.press-releases.*')" wire:navigate>
|
||||
{{ __('Meine Pressemitteilungen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="building-office" :href="route('me.press-kits.index')" :current="request()->routeIs('me.press-kits.*')" wire:navigate>
|
||||
{{ __('Firmen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="shopping-bag" :href="route('me.bookings.index')" :current="request()->routeIs('me.bookings.*')" wire:navigate>
|
||||
{{ __('Buchungen & Add-ons') }}
|
||||
</flux:navlist.item>
|
||||
<div class="px-3 py-1.5 text-sm text-zinc-400 dark:text-zinc-500">
|
||||
{{ __('Statistiken') }} <span class="text-xs">{{ __('später') }}</span>
|
||||
</div>
|
||||
</flux:navlist.group>
|
||||
</flux:navlist.group>
|
||||
|
||||
<flux:navlist.group :heading="__('CMS')" class="grid mb-4">
|
||||
<flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
<flux:navlist.group :heading="__('Finanzen')" class="grid mb-4">
|
||||
<div class="px-3 py-1.5 text-sm text-zinc-400 dark:text-zinc-500">
|
||||
{{ __('Credits & Tarif') }} <span class="text-xs">{{ __('später') }}</span>
|
||||
</div>
|
||||
<flux:navlist.item icon="document-text" :href="route('me.invoices.index')" :current="request()->routeIs('me.invoices.*')" wire:navigate>
|
||||
{{ __('Rechnungen') }}
|
||||
</flux:navlist.item>
|
||||
<div class="px-3 py-1.5 text-sm text-zinc-400 dark:text-zinc-500">
|
||||
{{ __('Zahlungsarten') }} <span class="text-xs">{{ __('später') }}</span>
|
||||
</div>
|
||||
</flux:navlist.group>
|
||||
|
||||
<flux:navlist.group :heading="__('Konto')" class="grid mb-4">
|
||||
<flux:navlist.item icon="user" :href="route('me.profile')" :current="request()->routeIs('me.profile')" wire:navigate>
|
||||
{{ __('Profil') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="shield-check" :href="route('me.security')" :current="request()->routeIs('me.security')" wire:navigate>
|
||||
{{ __('Sicherheit') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="key" :href="route('me.tokens.index')" :current="request()->routeIs('me.tokens.*')" wire:navigate>
|
||||
{{ __('API & Integrationen') }}
|
||||
</flux:navlist.item>
|
||||
<div class="px-3 py-1.5 text-sm text-zinc-400 dark:text-zinc-500">
|
||||
{{ __('Benachrichtigungen') }} <span class="text-xs">{{ __('später') }}</span>
|
||||
</div>
|
||||
</flux:navlist.group>
|
||||
@endif
|
||||
|
||||
{{-- Content Management (Admin/Editor) --}}
|
||||
@if($canAdmin)
|
||||
<flux:navlist.group :heading="__('Content')" class="grid mb-4">
|
||||
<flux:navlist.item
|
||||
icon="newspaper"
|
||||
:href="route('admin.press-releases.index', $reviewCount > 0 ? ['status' => 'review'] : [])"
|
||||
:current="request()->routeIs('admin.press-releases.*')"
|
||||
:badge="$reviewCount > 0 ? $reviewCount : null"
|
||||
badge-color="yellow"
|
||||
wire:navigate
|
||||
>
|
||||
{{ __('Pressemitteilungen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="folder" :href="route('admin.categories.index')" :current="request()->routeIs('admin.categories.*')" wire:navigate>
|
||||
{{ __('Kategorien') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="code-bracket-square" :href="route('admin.footer-codes.index')" :current="request()->routeIs('admin.footer-codes.*')" wire:navigate>
|
||||
{{ __('Footer-Codes') }}
|
||||
</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
|
||||
{{-- CRM --}}
|
||||
<flux:navlist.group :heading="__('CRM')" class="grid mb-4">
|
||||
<flux:navlist.item icon="building-office" :href="route('admin.companies.index')" :current="request()->routeIs('admin.companies.*')" wire:navigate>
|
||||
{{ __('Firmen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="user-group" :href="route('admin.contacts.index')" :current="request()->routeIs('admin.contacts.*')" wire:navigate>
|
||||
{{ __('Kontakte') }}
|
||||
</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
|
||||
{{-- Billing --}}
|
||||
<flux:navlist.group :heading="__('Billing')" class="grid mb-4">
|
||||
<flux:navlist.item icon="archive-box" :href="route('admin.invoices.index')" :current="request()->routeIs('admin.invoices.*')" wire:navigate>
|
||||
{{ __('Legacy Rechnungen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="credit-card" :href="route('admin.payments.index')" :current="request()->routeIs('admin.payments.*')" wire:navigate>
|
||||
{{ __('Zahlungen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="ticket" :href="route('admin.coupons.index')" :current="request()->routeIs('admin.coupons.*')" wire:navigate>
|
||||
{{ __('Gutscheine') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="envelope" :href="route('admin.newsletter.sync')" :current="request()->routeIs('admin.newsletter.sync')" wire:navigate>
|
||||
{{ __('Newsletter Sync') }}
|
||||
</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
|
||||
{{-- Administration --}}
|
||||
<flux:navlist.group :heading="__('Administration')" class="grid mb-4">
|
||||
<flux:navlist.item icon="cog" :href="route('admin.presets.index')" :current="request()->routeIs('admin.presets.*')" wire:navigate>
|
||||
{{ __('Voreinstellungen') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="users" :href="route('admin.users.index')" :current="request()->routeIs('admin.users.*')" wire:navigate>
|
||||
{{ __('Benutzer') }}
|
||||
</flux:navlist.item>
|
||||
<flux:navlist.item icon="shield-check" :href="route('admin.roles.index')" :current="request()->routeIs('admin.roles.*')" wire:navigate>
|
||||
{{ __('Rollen & Rechte') }}
|
||||
</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
|
||||
{{-- Reports --}}
|
||||
<flux:navlist.group :heading="__('Reports')" class="grid mb-4">
|
||||
<flux:navlist.item icon="chart-bar-square" :href="route('admin.reports.slow-requests')" :current="request()->routeIs('admin.reports.*')" wire:navigate>
|
||||
{{ __('Performance') }}
|
||||
</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
@endif
|
||||
|
||||
<flux:navlist.group :heading="__('Superadmin')" class="grid mb-4">
|
||||
<flux:navlist.item icon="home" :href="route('dashboard')" :current="request()->routeIs('dashboard')" wire:navigate>{{ __('Dashboard') }}</flux:navlist.item>
|
||||
</flux:navlist.group>
|
||||
</flux:navlist>
|
||||
|
||||
{{-- Portal-Filter für Admin-Benutzer (P2.6) --}}
|
||||
@auth
|
||||
@if($canAdmin)
|
||||
<div class="border-t border-zinc-200 dark:border-zinc-700 mt-2 pt-2">
|
||||
<livewire:admin.portal-switcher />
|
||||
</div>
|
||||
@endif
|
||||
@endauth
|
||||
|
||||
@if($impersonator)
|
||||
<div class="mt-3 rounded-lg border border-amber-200 bg-amber-50 p-3 text-sm text-amber-950 dark:border-amber-700/60 dark:bg-amber-950/40 dark:text-amber-100">
|
||||
<flux:text weight="semibold">{{ __('Testmodus aktiv') }}</flux:text>
|
||||
<flux:text class="mt-1 text-xs">
|
||||
{{ __('Angemeldet als :user. Admin: :admin.', ['user' => $user?->name, 'admin' => $impersonator->name]) }}
|
||||
</flux:text>
|
||||
|
||||
<form method="POST" action="{{ route('admin.impersonate.leave') }}" class="mt-3">
|
||||
@csrf
|
||||
<flux:button type="submit" size="sm" variant="primary" class="w-full">
|
||||
{{ __('Zurück zum Admin') }}
|
||||
</flux:button>
|
||||
</form>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<flux:spacer />
|
||||
|
||||
<flux:navlist variant="outline">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue