Merge branch 'main' of github.com:pelican-dev/panel

This commit is contained in:
Lance Pioch 2024-04-29 14:29:10 -04:00
commit 7b66e1ce33

View File

@ -111,7 +111,6 @@ class EditServer extends EditRecord
Forms\Components\Select::make('owner_id') Forms\Components\Select::make('owner_id')
->prefixIcon('tabler-user') ->prefixIcon('tabler-user')
->default(auth()->user()->id)
->label('Owner') ->label('Owner')
->columnSpan([ ->columnSpan([
'default' => 2, 'default' => 2,
@ -126,7 +125,6 @@ class EditServer extends EditRecord
Forms\Components\Textarea::make('description') Forms\Components\Textarea::make('description')
->hidden() ->hidden()
->default('')
->required() ->required()
->columnSpanFull(), ->columnSpanFull(),
@ -146,7 +144,6 @@ class EditServer extends EditRecord
Forms\Components\ToggleButtons::make('skip_scripts') Forms\Components\ToggleButtons::make('skip_scripts')
->label('Run Egg Install Script?') ->label('Run Egg Install Script?')
->default(false)
->options([ ->options([
false => 'Yes', false => 'Yes',
true => 'Skip', true => 'Skip',
@ -165,7 +162,6 @@ class EditServer extends EditRecord
Forms\Components\ToggleButtons::make('custom_image') Forms\Components\ToggleButtons::make('custom_image')
->live() ->live()
->label('Custom Image?') ->label('Custom Image?')
->default(false)
->formatStateUsing(function ($state, Forms\Get $get) { ->formatStateUsing(function ($state, Forms\Get $get) {
if ($state !== null) { if ($state !== null) {
return $state; return $state;
@ -242,18 +238,15 @@ class EditServer extends EditRecord
Forms\Components\TextInput::make('allocation_limit') Forms\Components\TextInput::make('allocation_limit')
->suffixIcon('tabler-network') ->suffixIcon('tabler-network')
->required() ->required()
->numeric() ->numeric(),
->default(0),
Forms\Components\TextInput::make('database_limit') Forms\Components\TextInput::make('database_limit')
->suffixIcon('tabler-database') ->suffixIcon('tabler-database')
->required() ->required()
->numeric() ->numeric(),
->default(0),
Forms\Components\TextInput::make('backup_limit') Forms\Components\TextInput::make('backup_limit')
->suffixIcon('tabler-copy-check') ->suffixIcon('tabler-copy-check')
->required() ->required()
->numeric() ->numeric(),
->default(0),
]), ]),
Forms\Components\Textarea::make('startup') Forms\Components\Textarea::make('startup')
@ -274,7 +267,7 @@ class EditServer extends EditRecord
); );
}), }),
Forms\Components\Hidden::make('start_on_completion')->default(true), Forms\Components\Hidden::make('start_on_completion'),
Forms\Components\Section::make('Egg Variables') Forms\Components\Section::make('Egg Variables')
->icon('tabler-eggs') ->icon('tabler-eggs')
@ -325,58 +318,127 @@ class EditServer extends EditRecord
->collapsed() ->collapsed()
->icon('tabler-server-cog') ->icon('tabler-server-cog')
->iconColor('primary') ->iconColor('primary')
->columns(2) ->columns([
->columnSpan(([
'default' => 2, 'default' => 2,
'sm' => 4, 'sm' => 4,
'md' => 4, 'md' => 4,
'lg' => 6, 'lg' => 4,
])) ])
->schema([ ->schema([
Forms\Components\ToggleButtons::make('unlimited_mem')
->label('Memory')
->afterStateUpdated(fn (Forms\Set $set) => $set('memory', 0))
->inlineLabel()->inline()
->live()
->formatStateUsing(fn (Forms\Get $get) => $get('memory') <= 0)
->options([
true => 'Unlimited',
false => 'Limited',
])
->colors([
true => 'primary',
false => 'warning',
])
->columnSpan(2),
Forms\Components\TextInput::make('memory') Forms\Components\TextInput::make('memory')
->default(0) ->disabled(fn (Forms\Get $get) => $get('unlimited_mem'))
->label('Allocated Memory') ->label('Memory Limit')
->suffix('MB') ->suffix('MB')
->required() ->required()
->inlineLabel()
->columnSpan(2)
->numeric(), ->numeric(),
Forms\Components\TextInput::make('swap') Forms\Components\ToggleButtons::make('unlimited_disk')
->default(0) ->label('Disk Space')
->label('Swap Memory') ->inlineLabel()->inline()
->suffix('MB') ->live()
->helperText('0 disables swap and -1 allows unlimited swap') ->afterStateUpdated(fn (Forms\Set $set) => $set('disk', 0))
->minValue(-1) ->formatStateUsing(fn (Forms\Get $get) => $get('disk') <= 0)
->required() ->options([
->numeric(), true => 'Unlimited',
false => 'Limited',
])
->colors([
true => 'primary',
false => 'warning',
])
->columnSpan(2),
Forms\Components\TextInput::make('disk') Forms\Components\TextInput::make('disk')
->default(0) ->disabled(fn (Forms\Get $get) => $get('unlimited_disk'))
->label('Disk Space Limit') ->label('Disk Space Limit')
->suffix('MB') ->suffix('MB')
->required() ->required()
->inlineLabel()
->columnSpan(2)
->numeric(), ->numeric(),
Forms\Components\ToggleButtons::make('unlimited_cpu')
->label('CPU')
->inlineLabel()->inline()
->afterStateUpdated(fn (Forms\Set $set) => $set('cpu', 0))
->live()
->formatStateUsing(fn (Forms\Get $get) => $get('cpu') <= 0)
->options([
true => 'Unlimited',
false => 'Limited',
])
->colors([
true => 'primary',
false => 'warning',
])
->columnSpan(2),
Forms\Components\TextInput::make('cpu') Forms\Components\TextInput::make('cpu')
->default(0) ->disabled(fn (Forms\Get $get) => $get('unlimited_cpu'))
->label('CPU Limit') ->label('CPU Limit')
->suffix('%') ->suffix('%')
->required() ->required()
->inlineLabel()
->columnSpan(2)
->numeric(), ->numeric(),
Forms\Components\Hidden::make('io') Forms\Components\Hidden::make('io')
->helperText('The IO performance relative to other running containers') ->helperText('The IO performance relative to other running containers')
->label('Block IO Proportion') ->label('Block IO Proportion')
->required(),
// ->numeric()
// ->minValue(0)
// ->maxValue(1000)
// ->step(10)
Forms\Components\ToggleButtons::make('swap_support')
->label('Enable Swap Memory')
->columnSpan(2)
->inlineLabel()->inline()
->formatStateUsing(fn (Forms\Get $get) => $get('swap') <= 0)
->options([
'unlimited' => 'Unlimited',
'limited' => 'Limited',
'disabled' => 'Disabled',
])
->colors([
'unlimited' => 'primary',
'limited' => 'warning',
'disabled' => 'danger',
]),
Forms\Components\TextInput::make('swap')
->disabled(fn (Forms\Get $get) => $get('swap_support'))
->label('Swap Memory')
->suffix('MB')
->minValue(-1)
->columnSpan(2)
->inlineLabel()
->required() ->required()
// ->numeric() ->numeric(),
// ->minValue(0)
// ->maxValue(1000)
// ->step(10)
->default(0),
Forms\Components\ToggleButtons::make('oom_disabled') Forms\Components\ToggleButtons::make('oom_disabled')
->label('OOM Killer') ->label('OOM Killer')
->inline() ->inline()
->default(false) ->columnSpan(2)
->options([ ->options([
false => 'Disabled', false => 'Disabled',
true => 'Enabled', true => 'Enabled',
@ -384,18 +446,14 @@ class EditServer extends EditRecord
->colors([ ->colors([
false => 'success', false => 'success',
true => 'danger', true => 'danger',
]) ]),
->icons([
false => 'tabler-sword-off',
true => 'tabler-sword',
])
->required(),
]), ]),
]); ]);
} }
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ return [
$this->getSaveFormAction(),
Actions\DeleteAction::make('Force Delete') Actions\DeleteAction::make('Force Delete')
->label('Force Delete') ->label('Force Delete')
->successRedirectUrl(route('filament.admin.resources.servers.index')) ->successRedirectUrl(route('filament.admin.resources.servers.index'))
@ -408,6 +466,11 @@ class EditServer extends EditRecord
->after(fn (Server $server) => resolve(ServerDeletionService::class)->handle($server)) ->after(fn (Server $server) => resolve(ServerDeletionService::class)->handle($server))
->requiresConfirmation(), ->requiresConfirmation(),
]; ];
}
protected function getFormActions(): array
{
return [];
} }
protected function mutateFormDataBeforeSave(array $data): array protected function mutateFormDataBeforeSave(array $data): array