use correct cast for boolean toggle buttons on EditNode

This commit is contained in:
Boy132 2025-05-09 09:00:55 +02:00
parent 25dc471ef7
commit c4fd1553fd

View File

@ -26,6 +26,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 Filament\Schemas\Components\View; use Filament\Schemas\Components\View;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Filament\Support\Enums\Alignment; use Filament\Support\Enums\Alignment;
@ -173,13 +174,14 @@ class EditNode extends EditRecord
->default(null) ->default(null)
->hint(fn (Get $get) => $get('ip')) ->hint(fn (Get $get) => $get('ip'))
->hintColor('success') ->hintColor('success')
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/node.valid'), 1 => trans('admin/node.valid'),
false => trans('admin/node.invalid'), 0 => trans('admin/node.invalid'),
]) ])
->colors([ ->colors([
true => 'success', 1 => 'success',
false => 'danger', 0 => 'danger',
]) ])
->columnSpan(1), ->columnSpan(1),
TextInput::make('daemon_listen') TextInput::make('daemon_listen')
@ -311,14 +313,16 @@ class EditNode extends EditRecord
'md' => 1, 'md' => 1,
'lg' => 3, 'lg' => 3,
]) ])
->label(trans('admin/node.use_for_deploy'))->inline() ->label(trans('admin/node.use_for_deploy'))
->inline()
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/node.yes'), 1 => trans('admin/node.yes'),
false => trans('admin/node.no'), 0 => trans('admin/node.no'),
]) ])
->colors([ ->colors([
true => 'success', 1 => 'success',
false => 'danger', 0 => 'danger',
]), ]),
ToggleButtons::make('maintenance_mode') ToggleButtons::make('maintenance_mode')
->columnSpan([ ->columnSpan([
@ -327,16 +331,18 @@ class EditNode extends EditRecord
'md' => 1, 'md' => 1,
'lg' => 3, 'lg' => 3,
]) ])
->label(trans('admin/node.maintenance_mode'))->inline() ->label(trans('admin/node.maintenance_mode'))
->inline()
->hinticon('tabler-question-mark') ->hinticon('tabler-question-mark')
->hintIconTooltip(trans('admin/node.maintenance_mode_help')) ->hintIconTooltip(trans('admin/node.maintenance_mode_help'))
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/node.enabled'), 1 => trans('admin/node.enabled'),
false => trans('admin/node.disabled'), 0 => trans('admin/node.disabled'),
]) ])
->colors([ ->colors([
false => 'success', 1 => 'danger',
true => 'danger', 0 => 'success',
]), ]),
Grid::make() Grid::make()
->columns([ ->columns([
@ -354,13 +360,14 @@ class EditNode extends EditRecord
->afterStateUpdated(fn (Set $set) => $set('memory_overallocate', 0)) ->afterStateUpdated(fn (Set $set) => $set('memory_overallocate', 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/node.unlimited'), 1 => trans('admin/node.unlimited'),
false => trans('admin/node.limited'), 0 => trans('admin/node.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan([ ->columnSpan([
'default' => 1, 'default' => 1,
@ -414,13 +421,14 @@ class EditNode extends EditRecord
->afterStateUpdated(fn (Set $set) => $set('disk', 0)) ->afterStateUpdated(fn (Set $set) => $set('disk', 0))
->afterStateUpdated(fn (Set $set) => $set('disk_overallocate', 0)) ->afterStateUpdated(fn (Set $set) => $set('disk_overallocate', 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/node.unlimited'), 1 => trans('admin/node.unlimited'),
false => trans('admin/node.limited'), 0 => trans('admin/node.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan([ ->columnSpan([
'default' => 1, 'default' => 1,
@ -469,13 +477,14 @@ class EditNode extends EditRecord
->afterStateUpdated(fn (Set $set) => $set('cpu', 0)) ->afterStateUpdated(fn (Set $set) => $set('cpu', 0))
->afterStateUpdated(fn (Set $set) => $set('cpu_overallocate', 0)) ->afterStateUpdated(fn (Set $set) => $set('cpu_overallocate', 0))
->formatStateUsing(fn (Get $get) => $get('cpu') == 0) ->formatStateUsing(fn (Get $get) => $get('cpu') == 0)
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
true => trans('admin/node.unlimited'), 1 => trans('admin/node.unlimited'),
false => trans('admin/node.limited'), 0 => trans('admin/node.limited'),
]) ])
->colors([ ->colors([
true => 'primary', 1 => 'primary',
false => 'warning', 0 => 'warning',
]) ])
->columnSpan(2), ->columnSpan(2),
TextInput::make('cpu') TextInput::make('cpu')
@ -534,13 +543,14 @@ class EditNode extends EditRecord
->inline() ->inline()
->default(false) ->default(false)
->afterStateUpdated(fn (bool $state, NodeAutoDeployService $service, Node $node, Set $set) => $set('generatedToken', $service->handle(request(), $node, $state))) ->afterStateUpdated(fn (bool $state, NodeAutoDeployService $service, Node $node, Set $set) => $set('generatedToken', $service->handle(request(), $node, $state)))
->stateCast(new BooleanStateCast(false, true))
->options([ ->options([
false => trans('admin/node.standalone'), 0 => trans('admin/node.standalone'),
true => trans('admin/node.docker'), 1 => trans('admin/node.docker'),
]) ])
->colors([ ->colors([
false => 'primary', 0 => 'primary',
true => 'success', 1 => 'success',
]) ])
->columnSpan(1), ->columnSpan(1),
Textarea::make('generatedToken') Textarea::make('generatedToken')