From 65bfda1034f6fb1c63e21b707d1e06e2deab5055 Mon Sep 17 00:00:00 2001 From: notCharles Date: Mon, 22 Apr 2024 17:47:16 -0400 Subject: [PATCH] Add Server list to node page --- app/Filament/Resources/NodeResource.php | 3 +- .../Resources/NodeResource/Pages/EditNode.php | 1 - .../RelationManagers/NodesRelationManager.php | 54 +++++++++++++++++++ app/Filament/Resources/ServerResource.php | 2 - 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 app/Filament/Resources/NodeResource/RelationManagers/NodesRelationManager.php diff --git a/app/Filament/Resources/NodeResource.php b/app/Filament/Resources/NodeResource.php index 92599c666..4c9f30a56 100644 --- a/app/Filament/Resources/NodeResource.php +++ b/app/Filament/Resources/NodeResource.php @@ -3,6 +3,7 @@ namespace App\Filament\Resources; use App\Filament\Resources\NodeResource\Pages; +use App\Filament\Resources\NodeResource\RelationManagers; use App\Models\Node; use Filament\Forms; use Filament\Forms\Form; @@ -148,7 +149,7 @@ class NodeResource extends Resource public static function getRelations(): array { return [ - // + RelationManagers\NodesRelationManager::class, ]; } diff --git a/app/Filament/Resources/NodeResource/Pages/EditNode.php b/app/Filament/Resources/NodeResource/Pages/EditNode.php index 48c37deab..b92889cac 100644 --- a/app/Filament/Resources/NodeResource/Pages/EditNode.php +++ b/app/Filament/Resources/NodeResource/Pages/EditNode.php @@ -220,7 +220,6 @@ class EditNode extends EditRecord ->placeholder('Not assigned'), ]), ]), - ]), ]); } diff --git a/app/Filament/Resources/NodeResource/RelationManagers/NodesRelationManager.php b/app/Filament/Resources/NodeResource/RelationManagers/NodesRelationManager.php new file mode 100644 index 000000000..958e953f3 --- /dev/null +++ b/app/Filament/Resources/NodeResource/RelationManagers/NodesRelationManager.php @@ -0,0 +1,54 @@ +searchable(false) + ->columns([ + Tables\Columns\TextColumn::make('user.username') + ->label('Owner') + ->icon('tabler-user') + ->url(fn (Server $server): string => route('filament.admin.resources.users.edit', ['record' => $server->user])) + ->searchable(), + Tables\Columns\TextColumn::make('name') + ->icon('tabler-brand-docker') + ->url(fn (Server $server): string => route('filament.admin.resources.servers.edit', ['record' => $server])) + ->searchable() + ->sortable(), + Tables\Columns\TextColumn::make('egg.name') + ->icon('tabler-egg') + ->url(fn (Server $server): string => route('filament.admin.resources.eggs.edit', ['record' => $server->user])) + ->sortable(), + Tables\Columns\SelectColumn::make('allocation.id') + ->label('Primary Allocation') + ->options(fn ($state, Server $server) => [$server->allocation->id => $server->allocation->address]) + ->selectablePlaceholder(false) + ->sortable(), + Tables\Columns\TextColumn::make('memory')->icon('tabler-device-desktop-analytics'), + Tables\Columns\TextColumn::make('cpu')->icon('tabler-cpu'), + Tables\Columns\TextColumn::make('databases_count') + ->counts('databases') + ->label('Databases') + ->icon('tabler-database') + ->numeric() + ->sortable(), + Tables\Columns\TextColumn::make('backups_count') + ->counts('backups') + ->label('Backups') + ->icon('tabler-file-download') + ->numeric() + ->sortable(), + ]); + } +} diff --git a/app/Filament/Resources/ServerResource.php b/app/Filament/Resources/ServerResource.php index d09bb349e..4f1dad833 100644 --- a/app/Filament/Resources/ServerResource.php +++ b/app/Filament/Resources/ServerResource.php @@ -597,7 +597,6 @@ class ServerResource extends Resource public static function table(Table $table): Table { return $table - ->searchable() ->columns([ Tables\Columns\TextColumn::make('status') ->default('unknown') @@ -642,7 +641,6 @@ class ServerResource extends Resource ->sortable(), Tables\Columns\TextColumn::make('node.name') ->icon('tabler-server-2') - ->searchable() ->url(fn (Server $server): string => route('filament.admin.resources.nodes.edit', ['record' => $server->node])) ->sortable(), Tables\Columns\TextColumn::make('egg.name')