Make allocation select on users server relation manager functional (#1719)

This commit is contained in:
Boy132 2025-09-19 08:43:29 +02:00 committed by GitHub
parent 6db1d82738
commit c10280af4b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 12 deletions

View File

@ -51,19 +51,19 @@ class ListServers extends ListRecords
->sortable(),
TextColumn::make('node.name')
->label(trans('admin/server.node'))
->url(fn (Server $server): string => route('filament.admin.resources.nodes.edit', ['record' => $server->node]))
->url(fn (Server $server) => route('filament.admin.resources.nodes.edit', ['record' => $server->node]))
->hidden(fn (Table $table) => $table->getGrouping()?->getId() === 'node.name')
->sortable()
->searchable(),
TextColumn::make('egg.name')
->label(trans('admin/server.egg'))
->url(fn (Server $server): string => route('filament.admin.resources.eggs.edit', ['record' => $server->egg]))
->url(fn (Server $server) => route('filament.admin.resources.eggs.edit', ['record' => $server->egg]))
->hidden(fn (Table $table) => $table->getGrouping()?->getId() === 'egg.name')
->sortable()
->searchable(),
TextColumn::make('user.username')
->label(trans('admin/user.username'))
->url(fn (Server $server): string => route('filament.admin.resources.users.edit', ['record' => $server->user]))
->url(fn (Server $server) => route('filament.admin.resources.users.edit', ['record' => $server->user]))
->hidden(fn (Table $table) => $table->getGrouping()?->getId() === 'user.username')
->sortable()
->searchable(),
@ -78,8 +78,7 @@ class ListServers extends ListRecords
TextColumn::make('allocation_id_readonly')
->label(trans('admin/server.primary_allocation'))
->hidden(fn () => auth()->user()->can('update server')) // TODO: update to policy check (fn (Server $server) --> $server is empty)
->disabled(fn (Server $server) => $server->allocations->count() <= 1)
->state(fn (Server $server) => $server->allocation->address ?? 'None'),
->state(fn (Server $server) => $server->allocation->address ?? trans('admin/server.none')),
TextColumn::make('image')->hidden(),
TextColumn::make('backups_count')
->counts('backups')

View File

@ -54,24 +54,29 @@ class ServersRelationManager extends RelationManager
->searchable(),
TextColumn::make('name')
->label(trans('admin/server.name'))
->url(fn (Server $server): string => route('filament.admin.resources.servers.edit', ['record' => $server]))
->url(fn (Server $server) => route('filament.admin.resources.servers.edit', ['record' => $server]))
->searchable()
->sortable(),
TextColumn::make('node.name')
->label(trans('admin/server.node'))
->url(fn (Server $server): string => route('filament.admin.resources.nodes.edit', ['record' => $server->node]))
->url(fn (Server $server) => route('filament.admin.resources.nodes.edit', ['record' => $server->node]))
->sortable(),
TextColumn::make('egg.name')
->label(trans('admin/server.egg'))
->url(fn (Server $server): string => route('filament.admin.resources.eggs.edit', ['record' => $server->egg]))
->url(fn (Server $server) => route('filament.admin.resources.eggs.edit', ['record' => $server->egg]))
->sortable(),
SelectColumn::make('allocation.id')
SelectColumn::make('allocation_id')
->label(trans('admin/server.primary_allocation'))
->disabled()
->options(fn (Server $server) => $server->allocations->take(1)->mapWithKeys(fn ($allocation) => [$allocation->id => $allocation->address]))
->hidden(fn () => !auth()->user()->can('update server')) // TODO: update to policy check (fn (Server $server) --> $server is empty)
->disabled(fn (Server $server) => $server->allocations->count() <= 1)
->options(fn (Server $server) => $server->allocations->mapWithKeys(fn ($allocation) => [$allocation->id => $allocation->address]))
->selectablePlaceholder(fn (Server $server) => $server->allocations->count() <= 1)
->placeholder(trans('admin/server.none'))
->sortable(),
TextColumn::make('image')->hidden(),
TextColumn::make('allocation_id_readonly')
->label(trans('admin/server.primary_allocation'))
->hidden(fn () => auth()->user()->can('update server')) // TODO: update to policy check (fn (Server $server) --> $server is empty)
->state(fn (Server $server) => $server->allocation->address ?? trans('admin/server.none')),
TextColumn::make('databases_count')
->counts('databases')
->label(trans('admin/server.databases'))