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 [
|
return [
|
||||||
Actions\DeleteAction::make(),
|
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;
|
namespace App\Filament\Resources\UserResource\RelationManagers;
|
||||||
|
|
||||||
|
use App\Enums\ServerState;
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
|
use App\Models\User;
|
||||||
|
use App\Services\Servers\SuspensionService;
|
||||||
use Filament\Tables;
|
use Filament\Tables;
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
|
use Filament\Tables\Actions;
|
||||||
use Filament\Resources\RelationManagers\RelationManager;
|
use Filament\Resources\RelationManagers\RelationManager;
|
||||||
|
|
||||||
class ServersRelationManager extends RelationManager
|
class ServersRelationManager extends RelationManager
|
||||||
@ -13,8 +17,36 @@ class ServersRelationManager extends RelationManager
|
|||||||
|
|
||||||
public function table(Table $table): Table
|
public function table(Table $table): Table
|
||||||
{
|
{
|
||||||
|
/** @var User $user */
|
||||||
|
$user = $this->getOwnerRecord();
|
||||||
|
|
||||||
return $table
|
return $table
|
||||||
->searchable(false)
|
->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([
|
->columns([
|
||||||
Tables\Columns\TextColumn::make('uuid')
|
Tables\Columns\TextColumn::make('uuid')
|
||||||
->hidden()
|
->hidden()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user