mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-29 13:14:45 +02:00
Swap suspend over
This commit is contained in:
parent
0c7ae26313
commit
39bc87c2e2
@ -69,26 +69,6 @@ class EditUser extends EditRecord
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
Actions\Action::make('toggleSuspend')
|
||||
->hidden(fn (User $user) => $user->servers()->whereNot('status', ServerState::Suspended)->count() === 0)
|
||||
->label('Suspend Servers')
|
||||
->color('warning')
|
||||
->action(function (User $user) {
|
||||
foreach ($user->servers()->whereNot('status', ServerState::Suspended)->get() as $server) {
|
||||
resolve(SuspensionService::class)->toggle($server);
|
||||
}
|
||||
}),
|
||||
|
||||
Actions\Action::make('toggleUnsuspend')
|
||||
->hidden(fn (User $user) => $user->servers()->where('status', ServerState::Suspended)->count() === 0)
|
||||
->label('Unsuspend Servers')
|
||||
->color('success')
|
||||
->action(function (User $user) {
|
||||
foreach ($user->servers()->where('status', ServerState::Suspended)->get() as $server) {
|
||||
resolve(SuspensionService::class)->toggle($server, SuspensionService::ACTION_UNSUSPEND);
|
||||
}
|
||||
}),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -2,9 +2,13 @@
|
||||
|
||||
namespace App\Filament\Resources\UserResource\RelationManagers;
|
||||
|
||||
use App\Enums\ServerState;
|
||||
use App\Models\Server;
|
||||
use App\Models\User;
|
||||
use App\Services\Servers\SuspensionService;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables\Actions;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
|
||||
class ServersRelationManager extends RelationManager
|
||||
@ -13,8 +17,36 @@ class ServersRelationManager extends RelationManager
|
||||
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = $this->getOwnerRecord();
|
||||
|
||||
return $table
|
||||
->searchable(false)
|
||||
->headerActions([
|
||||
Actions\Action::make('toggleSuspend')
|
||||
->hidden(fn () => $user->servers()
|
||||
->whereNot('status', ServerState::Suspended)
|
||||
->orWhereNull('status')
|
||||
->count() === 0
|
||||
)
|
||||
->label('Suspend All Servers')
|
||||
->color('warning')
|
||||
->action(function () use ($user) {
|
||||
foreach ($user->servers()->whereNot('status', ServerState::Suspended)->get() as $server) {
|
||||
resolve(SuspensionService::class)->toggle($server);
|
||||
}
|
||||
}),
|
||||
|
||||
Actions\Action::make('toggleUnsuspend')
|
||||
->hidden(fn () => $user->servers()->where('status', ServerState::Suspended)->count() === 0)
|
||||
->label('Unsuspend All Servers')
|
||||
->color('primary')
|
||||
->action(function () use ($user) {
|
||||
foreach ($user->servers()->where('status', ServerState::Suspended)->get() as $server) {
|
||||
resolve(SuspensionService::class)->toggle($server, SuspensionService::ACTION_UNSUSPEND);
|
||||
}
|
||||
}),
|
||||
])
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('uuid')
|
||||
->hidden()
|
||||
|
Loading…
x
Reference in New Issue
Block a user