@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('ri-server-line') @break
@case('ri-computer-line') @break
@case('ri-mac-line') @break
@case('ri-macbook-line') @break
@case('ri-device-line') @break
@case('ri-hard-drive-2-line') @break
@case('ri-hard-drive-line') @break
@case('ri-hard-drive-3-line') @break
@case('ri-database-2-line') @break
@case('ri-database-line') @break
@case('ri-cloud-line') @break
@case('ri-cloud-fill') @break
@case('ri-cloudy-line') @break
@case('ri-cloudy-2-line') @break
@case('ri-terminal-box-line') @break
@case('ri-terminal-line') @break
@case('ri-code-box-line') @break
@case('ri-code-line') @break
@case('ri-code-s-slash-line') @break
@case('ri-cpu-line') @break
@case('ri-chip-line') @break
@case('ri-memory-stick-line') @break
@case('ri-ram-line') @break
@case('ri-ram-2-line') @break
@case('ri-global-line') @break
@case('ri-earth-line') @break
@case('ri-planet-line') @break
@case('ri-router-line') @break
@case('ri-wifi-line') @break
@case('ri-signal-tower-line') @break
@case('ri-base-station-line') @break
@case('ri-shield-line') @break
@case('ri-shield-check-line') @break
@case('ri-shield-star-line') @break
@case('ri-lock-line') @break
@case('ri-lock-2-line') @break
@case('ri-rocket-line') @break
@case('ri-rocket-2-line') @break
@case('ri-spaceship-line') @break
@case('ri-plane-line') @break
@case('ri-game-line') @break
@case('ri-gamepad-line') @break
@case('ri-steam-line') @break
@case('ri-playstation-line') @break
@case('ri-xbox-line') @break
@case('ri-windows-line') @break
@case('ri-ubuntu-line') @break
@case('ri-centos-line') @break
@case('ri-linux-line') @break
@case('ri-apple-line') @break
@case('ri-bug-line') @break
@case('ri-bug-2-line') @break
@case('ri-robot-line') @break
@case('ri-robot-2-line') @break
@case('ri-home-line') @break
@case('ri-home-2-line') @break
@case('ri-building-line') @break
@case('ri-building-2-line') @break
@case('ri-store-line') @break
@case('ri-flask-line') @break
@case('ri-test-tube-line') @break
@case('ri-microscope-line') @break
@case('ri-fire-line') @break
@case('ri-fire-fill') @break
@case('ri-blaze-line') @break
@case('ri-sparkling-line') @break
@case('ri-star-line') @break
@case('ri-star-fill') @break
@case('ri-vip-crown-line') @break
@case('ri-vip-diamond-line') @break
@case('ri-heart-line') @break
@case('ri-heart-fill') @break
@case('ri-heart-2-line') @break
@case('ri-heart-3-line') @break
@case('ri-lightning-line') @break
@case('ri-thunderstorms-line') @break
@case('ri-flashlight-line') @break
@case('ri-box-3-line') @break
@case('ri-archive-line') @break
@case('ri-inbox-line') @break
@case('ri-inbox-2-line') @break
@case('ri-folder-line') @break
@case('ri-folder-2-line') @break
@case('ri-folder-shield-line') @break
@case('ri-folder-lock-line') @break
@case('ri-settings-line') @break
@case('ri-settings-2-line') @break
@case('ri-settings-3-line') @break
@case('ri-equalizer-line') @break
@case('ri-dashboard-line') @break
@case('ri-pie-chart-line') @break
@case('ri-bar-chart-line') @break
@case('ri-line-chart-line') @break
@case('ri-money-dollar-circle-line') @break
@case('ri-money-euro-circle-line') @break
@case('ri-bank-line') @break
@case('ri-safe-line') @break
@case('ri-user-line') @break
@case('ri-user-3-line') @break
@case('ri-team-line') @break
@case('ri-group-line') @break
@case('ri-mail-line') @break
@case('ri-mail-open-line') @break
@case('ri-chat-1-line') @break
@case('ri-message-2-line') @break
@case('ri-camera-line') @break
@case('ri-camera-2-line') @break
@case('ri-vidicon-line') @break
@case('ri-film-line') @break
@case('ri-music-line') @break
@case('ri-music-2-line') @break
@case('ri-headphone-line') @break
@case('ri-speaker-line') @break
@case('ri-book-line') @break
@case('ri-book-2-line') @break
@case('ri-book-open-line') @break
@case('ri-file-text-line') @break
@case('ri-sun-line') @break
@case('ri-moon-line') @break
@case('ri-contrast-2-line') @break
@case('ri-palette-line') @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