Add Server list to node page

This commit is contained in:
notCharles 2024-04-22 17:47:16 -04:00
parent 2328f07473
commit 65bfda1034
4 changed files with 56 additions and 4 deletions

View File

@ -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,
];
}

View File

@ -220,7 +220,6 @@ class EditNode extends EditRecord
->placeholder('Not assigned'),
]),
]),
]),
]);
}

View File

@ -0,0 +1,54 @@
<?php
namespace App\Filament\Resources\NodeResource\RelationManagers;
use App\Models\Server;
use Filament\Tables;
use Filament\Tables\Table;
use Filament\Resources\RelationManagers\RelationManager;
class NodesRelationManager extends RelationManager
{
protected static string $relationship = 'servers';
public function table(Table $table): Table
{
return $table
->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(),
]);
}
}

View File

@ -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')