@php $currentRoute = request()->route()->getName(); $panelRuntime = app(\App\Services\Hosting\PanelRuntimeResolver::class)->forSubject($account); $currentUser = auth()->user(); $navGroups = [ 'main' => [ [ 'name' => 'Overview', 'route' => route('hosting.panel.index', $account), 'active' => $currentRoute === 'hosting.panel.index', 'capability' => null, 'permission' => 'viewPanel', 'icon' => '', ], [ 'name' => 'File Manager', 'route' => route('hosting.panel.files', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.files'), 'capability' => 'files', 'permission' => 'manageFiles', 'icon' => '', ], [ 'name' => 'Databases', 'route' => route('hosting.panel.databases', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.databases'), 'capability' => 'databases', 'permission' => 'manageDatabases', 'icon' => '', ], [ 'name' => 'Domains', 'route' => route('hosting.panel.domains', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.domains'), 'capability' => 'domains', 'permission' => 'viewDomains', 'domain_icon' => true, ], ], 'software' => [ [ 'name' => 'Terminal', 'route' => route('hosting.panel.terminal', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.terminal'), 'capability' => 'terminal', 'permission' => 'useTerminal', 'icon' => '', ], [ 'name' => 'PHP Settings', 'route' => route('hosting.panel.php', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.php'), 'capability' => 'php', 'permission' => 'managePhp', 'icon' => '', ], [ 'name' => 'SSL Certificates', 'route' => route('hosting.panel.ssl', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.ssl'), 'capability' => 'ssl', 'permission' => 'manageSsl', 'icon' => '', ], [ 'name' => 'App Installer', 'route' => route('hosting.panel.apps', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.apps'), 'capability' => 'apps', 'permission' => 'manageApps', 'icon' => '', ], ], 'advanced' => [ [ 'name' => 'Cron Jobs', 'route' => route('hosting.panel.cron', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.cron'), 'capability' => 'cron', 'permission' => 'manageCron', 'icon' => '', ], [ 'name' => 'Error Logs', 'route' => route('hosting.panel.logs', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.logs'), 'capability' => 'logs', 'permission' => 'viewLogs', 'icon' => '', ], ], ]; $settingsItem = [ 'name' => 'Settings', 'route' => route('hosting.panel.settings', $account), 'active' => str_starts_with($currentRoute, 'hosting.panel.settings'), 'icon' => '', ]; $showSettings = $panelRuntime->supports('settings') && $currentUser?->can('viewSettings', $account); foreach ($navGroups as $group => $items) { $navGroups[$group] = array_values(array_filter($items, static function (array $item) use ($panelRuntime, $currentUser, $account): bool { $capability = $item['capability'] ?? null; $permission = $item['permission'] ?? null; return ($capability === null || $panelRuntime->supports($capability)) && ($permission === null || $currentUser?->can($permission, $account)); })); } @endphp
{{-- Logo/Header --}}

{{ $panelRuntime->label() }}

{{ $account->username }}

{{-- Navigation --}} @if ($showSettings) @endif {{-- Account Info Footer --}}
{{ $account->node->hostname ?? $account->node->ip_address ?? 'Server' }}
{{ ucfirst($account->status) }} @if($account->product) {{ $account->product->name }} @endif