use correct cast for boolean toggle buttons on EditServer

This commit is contained in:
Boy132 2025-05-08 15:12:28 +02:00
parent 3cf1560865
commit 25d146916e

View File

@ -50,6 +50,7 @@ use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Components\Utilities\Set; use Filament\Schemas\Components\Utilities\Set;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
use Filament\Resources\Pages\EditRecord; use Filament\Resources\Pages\EditRecord;
use Filament\Schemas\Components\StateCasts\BooleanStateCast;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Client\ConnectionException; use Illuminate\Http\Client\ConnectionException;
use Illuminate\Support\Arr; use Illuminate\Support\Arr;
@ -208,13 +209,14 @@ class EditServer extends EditRecord
->afterStateUpdated(fn (Set $set) => $set('cpu', 0)) ->afterStateUpdated(fn (Set $set) => $set('cpu', 0))
->formatStateUsing(fn (Get $get) => $get('cpu') == 0) ->formatStateUsing(fn (Get $get) => $get('cpu') == 0)
->live() ->live()
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/server.unlimited'), 1 => trans('admin/server.unlimited'),
false => trans('admin/server.limited'), 0 => trans('admin/server.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan(2), ->columnSpan(2),
@ -238,13 +240,14 @@ class EditServer extends EditRecord
->afterStateUpdated(fn (Set $set) => $set('memory', 0)) ->afterStateUpdated(fn (Set $set) => $set('memory', 0))
->formatStateUsing(fn (Get $get) => $get('memory') == 0) ->formatStateUsing(fn (Get $get) => $get('memory') == 0)
->live() ->live()
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/server.unlimited'), 1 => trans('admin/server.unlimited'),
false => trans('admin/server.limited'), 0 => trans('admin/server.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan(2), ->columnSpan(2),
@ -271,13 +274,14 @@ class EditServer extends EditRecord
->live() ->live()
->afterStateUpdated(fn (Set $set) => $set('disk', 0)) ->afterStateUpdated(fn (Set $set) => $set('disk', 0))
->formatStateUsing(fn (Get $get) => $get('disk') == 0) ->formatStateUsing(fn (Get $get) => $get('disk') == 0)
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/server.unlimited'), 1 => trans('admin/server.unlimited'),
false => trans('admin/server.limited'), 0 => trans('admin/server.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan(2), ->columnSpan(2),
@ -312,17 +316,18 @@ class EditServer extends EditRecord
->schema([ ->schema([
ToggleButtons::make('cpu_pinning') ToggleButtons::make('cpu_pinning')
->label(trans('admin/server.cpu_pin'))->inlineLabel()->inline() ->label(trans('admin/server.cpu_pin'))->inlineLabel()->inline()
->default(false) ->default(0)
->afterStateUpdated(fn (Set $set) => $set('threads', [])) ->afterStateUpdated(fn (Set $set) => $set('threads', []))
->formatStateUsing(fn (Get $get) => !empty($get('threads'))) ->formatStateUsing(fn (Get $get) => !empty($get('threads')))
->live() ->live()
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
false => trans('admin/server.disabled'), 0 => trans('admin/server.disabled'),
true => trans('admin/server.enabled'), 1 => trans('admin/server.enabled'),
]) ])
->colors([ ->colors([
false => 'success', 0 => 'success',
true => 'warning', 1 => 'warning',
]) ])
->columnSpan(2), ->columnSpan(2),
@ -393,15 +398,19 @@ class EditServer extends EditRecord
->schema([ ->schema([
ToggleButtons::make('oom_killer') ToggleButtons::make('oom_killer')
->dehydrated() ->dehydrated()
->label(trans('admin/server.oom'))->inlineLabel()->inline() ->label(trans('admin/server.oom'))
->formatStateUsing(fn ($state) => $state)
->inlineLabel()
->inline()
->columnSpan(2) ->columnSpan(2)
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
false => trans('admin/server.disabled'), 0 => trans('admin/server.disabled'),
true => trans('admin/server.enabled'), 1 => trans('admin/server.enabled'),
]) ])
->colors([ ->colors([
false => 'success', 0 => 'success',
true => 'danger', 1 => 'danger',
]), ]),
]), ]),
]), ]),
@ -545,24 +554,26 @@ class EditServer extends EditRecord
), ),
ToggleButtons::make('skip_scripts') ToggleButtons::make('skip_scripts')
->label(trans('admin/server.install_script'))->inline() ->label(trans('admin/server.install_script'))
->inline()
->columnSpan([ ->columnSpan([
'default' => 6, 'default' => 6,
'sm' => 1, 'sm' => 1,
'md' => 1, 'md' => 1,
'lg' => 2, 'lg' => 2,
]) ])
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
false => trans('admin/server.yes'), 0 => trans('admin/server.yes'),
true => trans('admin/server.skip'), 1 => trans('admin/server.skip'),
]) ])
->colors([ ->colors([
false => 'primary', 0 => 'primary',
true => 'danger', 1 => 'danger',
]) ])
->icons([ ->icons([
false => 'tabler-code', 0 => 'tabler-code',
true => 'tabler-code-off', 1 => 'tabler-code-off',
]) ])
->required(), ->required(),
Hidden::make('previewing') Hidden::make('previewing')