mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-22 10:54:44 +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 */
|
/** @var User $user */
|
||||||
$user = $this->getOwnerRecord();
|
$user = $this->getOwnerRecord();
|
||||||
|
|
||||||
|
$servers = $user->accessibleServers();
|
||||||
|
[$suspended, $unsuspended] = collect($servers->get())->partition(function ($server) {
|
||||||
|
/** @var Server $server */
|
||||||
|
return $server->status === ServerState::Suspended;
|
||||||
|
});
|
||||||
|
|
||||||
return $table
|
return $table
|
||||||
|
->query($servers)
|
||||||
->searchable(false)
|
->searchable(false)
|
||||||
->heading(trans('admin/user.servers'))
|
->heading(trans('admin/user.servers'))
|
||||||
->headerActions([
|
->headerActions([
|
||||||
Actions\Action::make('toggleSuspend')
|
Actions\Action::make('toggleSuspend')
|
||||||
->hidden(fn () => $user->servers()
|
->hidden(fn () => !$servers->count() || !$unsuspended->count())
|
||||||
->whereNot('status', ServerState::Suspended)
|
|
||||||
->orWhereNull('status')
|
|
||||||
->count() === 0
|
|
||||||
)
|
|
||||||
->label(trans('admin/server.suspend_all'))
|
->label(trans('admin/server.suspend_all'))
|
||||||
->color('warning')
|
->color('warning')
|
||||||
->action(function (SuspensionService $suspensionService) use ($user) {
|
->action(fn (SuspensionService $suspensionService) => $unsuspended->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Suspend))),
|
||||||
collect($user->servers)->filter(fn ($server) => !$server->isSuspended())
|
|
||||||
->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Suspend));
|
|
||||||
}),
|
|
||||||
Actions\Action::make('toggleUnsuspend')
|
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'))
|
->label(trans('admin/server.unsuspend_all'))
|
||||||
->color('primary')
|
->color('primary')
|
||||||
->action(function (SuspensionService $suspensionService) use ($user) {
|
->action(fn (SuspensionService $suspensionService) => $suspended->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Unsuspend))),
|
||||||
collect($user->servers()->get())->filter(fn ($server) => $server->isSuspended())
|
|
||||||
->each(fn ($server) => $suspensionService->handle($server, SuspendAction::Unsuspend));
|
|
||||||
}),
|
|
||||||
])
|
])
|
||||||
->columns([
|
->columns([
|
||||||
TextColumn::make('uuid')
|
TextColumn::make('uuid')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user