feat(proxmox): add smart firewall workflow and UI refresh
Introduce starter firewall rule templates, one-click rule creation from log entries, and quick log filter presets to speed up incident response. Add a shared quick actions hub plus refreshed help and overview surfaces to improve discoverability and make key VPS tasks faster. Made-with: Cursor
This commit is contained in:
@@ -1613,8 +1613,36 @@
|
||||
];
|
||||
}
|
||||
$tabs[] = ['label' => 'Help', 'view' => 'help', 'route' => route('proxmox.server.help', ['server' => $server->id]), 'advanced' => true];
|
||||
|
||||
$quickActions = [
|
||||
['label' => 'Overview', 'icon' => 'dashboard-line', 'route' => route('proxmox.server.overview', ['server' => $server->id]), 'active' => $view === 'overview'],
|
||||
['label' => 'Network', 'icon' => 'wifi-line', 'route' => route('proxmox.server.network', ['server' => $server->id]), 'active' => $view === 'network'],
|
||||
['label' => 'Firewall', 'icon' => 'shield-line', 'route' => route('proxmox.server.firewall', ['server' => $server->id]), 'active' => $view === 'firewall'],
|
||||
['label' => 'Help', 'icon' => 'question-line', 'route' => route('proxmox.server.help', ['server' => $server->id]), 'active' => $view === 'help'],
|
||||
];
|
||||
|
||||
if ($server->service->product->settings()->where('key', 'backups')->first()?->value > 0) {
|
||||
$quickActions[] = ['label' => 'Backups', 'icon' => 'save-3-line', 'route' => route('proxmox.server.backups', ['server' => $server->id]), 'active' => $view === 'backups'];
|
||||
}
|
||||
|
||||
if ($server->node?->vnc_enabled) {
|
||||
$quickActions[] = ['label' => 'Console', 'icon' => 'terminal-box-line', 'route' => route('proxmox.server.xterm', ['server' => $server->id]), 'active' => $view === 'xterm' || $view === 'vnc'];
|
||||
}
|
||||
@endphp
|
||||
|
||||
<div class="mb-6 mt-3">
|
||||
<div class="grid grid-cols-2 gap-2 lg:grid-cols-6">
|
||||
@foreach($quickActions as $action)
|
||||
<a href="{{ $action['route'] }}"
|
||||
wire:navigate
|
||||
class="group flex items-center gap-2 rounded-xl border px-3 py-2.5 text-sm font-semibold transition-all {{ $action['active'] ? 'border-primary/40 bg-primary/10 text-primary shadow-sm' : 'border-neutral/30 bg-background-secondary/50 text-base/75 hover:border-primary/30 hover:text-primary hover:bg-primary/5' }}">
|
||||
<x-dynamic-component :component="'ri-' . $action['icon']" class="size-4 shrink-0" />
|
||||
<span class="truncate">{{ $action['label'] }}</span>
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-10 mt-3">
|
||||
<style>
|
||||
/* Page Transition Styles - Only slide-in for new content */
|
||||
|
||||
Reference in New Issue
Block a user