fix server startup and settings page

This commit is contained in:
Boy132 2025-05-08 16:01:16 +02:00
parent 3afe18d7cf
commit 25dc471ef7
3 changed files with 21 additions and 16 deletions

View File

@ -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);
}

View File

@ -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?')

View File

@ -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')