mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 12:14:45 +02:00
Use accessibleServers
& Hide headerActions
if there's no servers
This commit is contained in:
parent
7409f020ba
commit
b445f52c90
@ -22,30 +22,27 @@ class ServersRelationManager extends RelationManager
|
||||
/** @var User $user */
|
||||
$user = $this->getOwnerRecord();
|
||||
|
||||
$servers = $user->accessibleServers();
|
||||
[$suspended, $unsuspended] = collect($servers->get())->partition(function ($server) {
|
||||
/** @var Server $server */
|
||||
return $server->status === ServerState::Suspended;
|
||||
});
|
||||
|
||||
return $table
|
||||
->query($servers)
|
||||
->searchable(false)
|
||||
->heading(trans('admin/user.servers'))
|
||||
->headerActions([
|
||||
Actions\Action::make('toggleSuspend')
|
||||
->hidden(fn () => $user->servers()
|
||||
->whereNot('status', ServerState::Suspended)
|
||||
->orWhereNull('status')
|
||||
->count() === 0
|
||||
)
|
||||
->hidden(fn () => !$servers->count() || !$unsuspended->count())
|
||||
->label(trans('admin/server.suspend_all'))
|
||||
->color('warning')
|
||||
->action(function (SuspensionService $suspensionService) use ($user) {
|
||||
collect($user->servers)->filter(fn ($server) => !$server->isSuspended())
|
||||
->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Suspend));
|
||||
}),
|
||||
->action(fn (SuspensionService $suspensionService) => $unsuspended->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Suspend))),
|
||||
Actions\Action::make('toggleUnsuspend')
|
||||
->hidden(fn () => $user->servers()->where('status', ServerState::Suspended)->count() === 0)
|
||||
->hidden(fn () => !$servers->count() || !$suspended->count())
|
||||
->label(trans('admin/server.unsuspend_all'))
|
||||
->color('primary')
|
||||
->action(function (SuspensionService $suspensionService) use ($user) {
|
||||
collect($user->servers()->get())->filter(fn ($server) => $server->isSuspended())
|
||||
->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Unsuspend));
|
||||
}),
|
||||
->action(fn (SuspensionService $suspensionService) => $suspended->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Unsuspend))),
|
||||
])
|
||||
->columns([
|
||||
TextColumn::make('uuid')
|
||||
|
Loading…
x
Reference in New Issue
Block a user