@php
$advancedOnlyViews = ['boot-order', 'cloud-init', 'display', 'system', 'subdomain', 'statistics', 'help', 'firewall'];
$isAdvancedOnlyView = in_array($view, $advancedOnlyViews);
@endphp
@if($server->user_set_icon)
@php
$iconStyle = $server->user_set_icon_color ? 'color: ' . $server->user_set_icon_color : '';
@endphp
@switch($server->user_set_icon)
@case('server') @break
@case('server-stack') @break
@case('computer-desktop') @break
@case('cpu-chip') @break
@case('circle-stack') @break
@case('cloud') @break
@case('command-line') @break
@case('code-bracket') @break
@case('code-bracket-square') @break
@case('globe-alt') @break
@case('globe-americas') @break
@case('globe-europe-africa') @break
@case('globe-asia-australia') @break
@case('wifi') @break
@case('signal') @break
@case('shield-check') @break
@case('shield-exclamation') @break
@case('lock-closed') @break
@case('lock-open') @break
@case('key') @break
@case('rocket-launch') @break
@case('paper-airplane') @break
@case('bolt') @break
@case('fire') @break
@case('sparkles') @break
@case('star') @break
@case('heart') @break
@case('home') @break
@case('home-modern') @break
@case('building-office') @break
@case('building-office-2') @break
@case('building-storefront') @break
@case('cube') @break
@case('cube-transparent') @break
@case('archive-box') @break
@case('inbox') @break
@case('inbox-stack') @break
@case('folder') @break
@case('folder-open') @break
@case('cog-6-tooth') @break
@case('cog-8-tooth') @break
@case('wrench-screwdriver') @break
@case('wrench') @break
@case('beaker') @break
@case('bug-ant') @break
@case('puzzle-piece') @break
@case('chart-bar') @break
@case('chart-pie') @break
@case('presentation-chart-line') @break
@case('currency-dollar') @break
@case('currency-euro') @break
@case('banknotes') @break
@case('credit-card') @break
@case('user') @break
@case('user-circle') @break
@case('user-group') @break
@case('users') @break
@case('envelope') @break
@case('envelope-open') @break
@case('chat-bubble-left') @break
@case('chat-bubble-left-right') @break
@case('camera') @break
@case('video-camera') @break
@case('film') @break
@case('musical-note') @break
@case('book-open') @break
@case('document-text') @break
@case('sun') @break
@case('moon') @break
@case('swatch') @break
@case('paint-brush') @break
@case('trophy') @break
@case('academic-cap') @break
@case('light-bulb') @break
@case('finger-print') @break
@case('eye') @break
@case('map') @break
@case('map-pin') @break
@case('clock') @break
@case('calendar') @break
@case('gift') @break
@case('cake') @break
@default
@endswitch
@else
@endif
{{ $server->hostname }}
@if ($view !== 'statistics')
@endif
@php
$tabs = [
['label' => 'Overview', 'view' => 'overview', 'route' => route('proxmox.server.overview', ['server' => $server->id])],
['label' => 'Statistics', 'view' => 'statistics', 'route' => route('proxmox.server.statistics', ['server' => $server->id]), 'advanced' => true],
[
'label' => 'Hardware',
'dropdown' => true,
'items' => [
['label' => 'Boot Settings', 'view' => 'boot-order', 'route' => route('proxmox.server.boot-order', ['server' => $server->id]), 'advanced' => true],
['label' => 'Display', 'view' => 'display', 'route' => route('proxmox.server.display', ['server' => $server->id]), 'advanced' => true],
['label' => 'Storage', 'view' => 'storage', 'route' => route('proxmox.server.storage', ['server' => $server->id]), 'advanced' => true],
['label' => 'System', 'view' => 'system', 'route' => route('proxmox.server.system', ['server' => $server->id]), 'advanced' => true],
]
],
[
'label' => 'Networking',
'dropdown' => true,
'items' => [
['label' => 'Configuration', 'view' => 'network', 'route' => route('proxmox.server.network', ['server' => $server->id])],
['label' => 'Firewall', 'view' => 'firewall', 'route' => route('proxmox.server.firewall', ['server' => $server->id]), 'advanced' => true],
['label' => 'Subdomain', 'view' => 'subdomain', 'route' => route('proxmox.server.subdomain', ['server' => $server->id]), 'advanced' => true],
]
],
['label' => 'Cloud-init', 'view' => 'cloud-init', 'route' => route('proxmox.server.cloud-init', ['server' => $server->id]), 'advanced' => true],
];
if($server->service->product->settings()->where('key', 'backups')->first()?->value > 0) {
$tabs[] = ['label' => 'Backups', 'view' => 'backups', 'route' => route('proxmox.server.backups', ['server' => $server->id])];
}
if($server->node->vnc_enabled) {
$tabs[] = [
'label' => 'Console',
'dropdown' => true,
'items' => [
['label' => 'NoVNC', 'view' => 'vnc', 'route' => route('proxmox.server.vnc', ['server' => $server->id])],
['label' => 'Xterm.js', 'view' => 'xterm', 'route' => route('proxmox.server.xterm', ['server' => $server->id])],
]
];
}
$tabs[] = ['label' => 'Help', 'view' => 'help', 'route' => route('proxmox.server.help', ['server' => $server->id]), 'advanced' => true];
@endphp
@foreach($tabs as $tabIndex => $tab)
@php
$isAdvancedTab = $tab['advanced'] ?? false;
$isDropdown = $tab['dropdown'] ?? false;
// Check if current view is in dropdown items
$isDropdownActive = false;
$hasVisibleItems = false;
if ($isDropdown && isset($tab['items'])) {
foreach ($tab['items'] as $item) {
if ($view === $item['view']) {
$isDropdownActive = true;
}
$itemAdvanced = $item['advanced'] ?? false;
if (!$itemAdvanced) {
$hasVisibleItems = true;
}
}
}
@endphp
@if($isDropdown)
@else
@endif
@endforeach
@php
// Find the current tab label, checking both regular tabs and dropdown items
$currentLabel = 'Menu';
foreach ($tabs as $tab) {
if (isset($tab['view']) && $tab['view'] === $view) {
$currentLabel = $tab['label'];
break;
}
if (isset($tab['dropdown']) && $tab['dropdown'] && isset($tab['items'])) {
foreach ($tab['items'] as $item) {
if ($item['view'] === $view) {
$currentLabel = $item['label'];
break 2;
}
}
}
}
@endphp
{{ $currentLabel }}
@foreach($tabs as $tab)
@php
$isAdvancedTab = $tab['advanced'] ?? false;
$isDropdown = $tab['dropdown'] ?? false;
@endphp
@if($isDropdown)
{{-- Render dropdown items as individual menu items for mobile --}}
@foreach($tab['items'] as $item)
@php
$itemAdvanced = $item['advanced'] ?? false;
@endphp
@endforeach
@else
@endif
@endforeach
@endif
@else
@php
$statuses = [
'suspended' => [
'color' => 'text-yellow-500',
'message' => 'This server is suspended. Please contact support for more information.'
],
'installing' => [
'color' => 'text-blue-500',
'message' => ''
],
];
@endphp