diff --git a/app/Filament/Server/Pages/ServerFormPage.php b/app/Filament/Server/Pages/ServerFormPage.php index 1b500e5ce..fe917bc81 100644 --- a/app/Filament/Server/Pages/ServerFormPage.php +++ b/app/Filament/Server/Pages/ServerFormPage.php @@ -8,6 +8,7 @@ use Filament\Forms\Concerns\InteractsWithForms; use Filament\Schemas\Components\Form; use Filament\Pages\Concerns\InteractsWithFormActions; use Filament\Pages\Page; +use Filament\Schemas\Schema; /** * @property Form $form @@ -28,11 +29,19 @@ abstract class ServerFormPage extends Page $this->fillForm(); } + public function form(Schema $schema): Schema + { + return $schema + ->statePath('data') + ->model($this->getRecord()); + } + protected function authorizeAccess(): void {} protected function fillform(): void { $data = $this->getRecord()->attributesToArray(); + $this->form->fill($data); } diff --git a/app/Filament/Server/Pages/Settings.php b/app/Filament/Server/Pages/Settings.php index 00bb5342c..d2b9d79be 100644 --- a/app/Filament/Server/Pages/Settings.php +++ b/app/Filament/Server/Pages/Settings.php @@ -8,7 +8,6 @@ use App\Models\Server; use App\Services\Servers\ReinstallServerService; use Exception; use Filament\Actions\Action; -use Filament\Facades\Filament; use Filament\Schemas\Components\Fieldset; use Filament\Infolists\Components\TextEntry; use Filament\Schemas\Components\Section; @@ -30,10 +29,7 @@ class Settings extends ServerFormPage */ public function form(Schema $schema): Schema { - /** @var Server $server */ - $server = Filament::getTenant(); - - return $schema + return parent::form($schema) ->columns([ 'default' => 1, 'sm' => 2, @@ -42,6 +38,7 @@ class Settings extends ServerFormPage ]) ->components([ Section::make('Server Information') + ->columnSpanFull() ->columns([ 'default' => 1, 'sm' => 2, @@ -55,7 +52,7 @@ class Settings extends ServerFormPage ->schema([ TextInput::make('name') ->label('Server Name') - ->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server)) + ->disabled(fn (Server $server) => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server)) ->required() ->columnSpan([ 'default' => 1, @@ -68,7 +65,7 @@ class Settings extends ServerFormPage Textarea::make('description') ->label('Server Description') ->hidden(!config('panel.editable_server_descriptions')) - ->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server)) + ->disabled(fn (Server $server) => !auth()->user()->can(Permission::ACTION_SETTINGS_RENAME, $server)) ->columnSpan([ 'default' => 1, 'sm' => 2, @@ -147,6 +144,7 @@ class Settings extends ServerFormPage ]), ]), Section::make('Node Information') + ->columnSpanFull() ->schema([ TextInput::make('node.name') ->label('Node Name') @@ -154,7 +152,7 @@ class Settings extends ServerFormPage ->disabled(), Fieldset::make('SFTP Information') ->columnSpanFull() - ->hidden(fn () => !auth()->user()->can(Permission::ACTION_FILE_SFTP, $server)) + ->hidden(fn (Server $server) => !auth()->user()->can(Permission::ACTION_FILE_SFTP, $server)) ->label('SFTP Information') ->columns([ 'default' => 1, @@ -197,12 +195,12 @@ class Settings extends ServerFormPage ]), Section::make('Reinstall Server') ->columnSpanFull() - ->hidden(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server)) + ->hidden(fn (Server $server) => !auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server)) ->collapsible() ->footerActions([ Action::make('reinstall') ->color('danger') - ->disabled(fn () => !auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server)) + ->disabled(fn (Server $server) => !auth()->user()->can(Permission::ACTION_SETTINGS_REINSTALL, $server)) ->label('Reinstall') ->requiresConfirmation() ->modalHeading('Are you sure you want to reinstall the server?') diff --git a/app/Filament/Server/Pages/Startup.php b/app/Filament/Server/Pages/Startup.php index 49c660d6b..0a82b79c3 100644 --- a/app/Filament/Server/Pages/Startup.php +++ b/app/Filament/Server/Pages/Startup.php @@ -32,10 +32,7 @@ class Startup extends ServerFormPage */ public function form(Schema $schema): Schema { - /** @var Server $server */ - $server = Filament::getTenant(); - - return $schema + return parent::form($schema) ->columns([ 'default' => 1, 'sm' => 1, @@ -71,7 +68,7 @@ class Startup extends ServerFormPage ->label('Docker Image') ->live() ->visible(fn (Server $server) => in_array($server->image, $server->egg->docker_images)) - ->disabled(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_DOCKER_IMAGE, $server)) + ->disabled(fn (Server $server) => !auth()->user()->can(Permission::ACTION_STARTUP_DOCKER_IMAGE, $server)) ->afterStateUpdated(function ($state, Server $server) { $original = $server->image; $server->forceFill(['image' => $state])->saveOrFail(); @@ -101,12 +98,13 @@ class Startup extends ServerFormPage 'lg' => 2, ]), Section::make('Server Variables') + ->columnSpanFull() ->schema([ Repeater::make('server_variables') ->label('') ->relationship('serverVariables', fn (Builder $query) => $query->where('egg_variables.user_viewable', true)->orderByPowerJoins('variable.sort')) ->grid() - ->disabled(fn () => !auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server)) + ->disabled(fn (Server $server) => !auth()->user()->can(Permission::ACTION_STARTUP_UPDATE, $server)) ->reorderable(false)->addable(false)->deletable(false) ->schema(function () { $text = TextInput::make('variable_value')