Allow suspension of servers

This commit is contained in:
Lance Pioch 2024-04-25 17:45:49 -04:00
parent 7ffd7019a2
commit 00502f6d4d

View File

@ -2,7 +2,9 @@
namespace App\Filament\Resources\UserResource\Pages;
use App\Enums\ServerState;
use App\Filament\Resources\UserResource;
use App\Services\Servers\SuspensionService;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
use App\Models\User;
@ -67,6 +69,26 @@ 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 All 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 All 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);
}
}),
];
}
}