From 4ad2997566dc74d4628c6f40ba321c3a4f5f1803 Mon Sep 17 00:00:00 2001 From: Charles Date: Fri, 6 Dec 2024 22:46:36 -0500 Subject: [PATCH] Update database creation (#775) Updates database creation flow to account for new database host to many nodes change. --- .../Resources/ServerResource/Pages/EditServer.php | 3 ++- .../Resources/DatabaseResource/Pages/ListDatabases.php | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/Filament/Resources/ServerResource/Pages/EditServer.php b/app/Filament/Resources/ServerResource/Pages/EditServer.php index 126d098e7..b1ea6d98a 100644 --- a/app/Filament/Resources/ServerResource/Pages/EditServer.php +++ b/app/Filament/Resources/ServerResource/Pages/EditServer.php @@ -707,7 +707,8 @@ class EditServer extends EditRecord ->label('Database Host') ->required() ->placeholder('Select Database Host') - ->relationship('node.databaseHosts', 'name') + ->relationship('node.databaseHosts', 'name', + fn (Builder $query, Server $server) => $query->whereRelation('nodes', 'nodes.id', $server->node_id)) ->default(fn () => (DatabaseHost::query()->first())?->id) ->selectablePlaceholder(false), TextInput::make('database') diff --git a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php index dc93578da..917cc9126 100644 --- a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php +++ b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php @@ -14,6 +14,7 @@ use Filament\Actions\CreateAction; use Filament\Facades\Filament; use Filament\Forms\Components\Actions\Action; use Filament\Forms\Components\Grid; +use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Forms\Get; @@ -103,6 +104,11 @@ class ListDatabases extends ListRecords Grid::make() ->columns(3) ->schema([ + Select::make('database_host_id') + ->label('Database Host') + ->required() + ->placeholder('Select Database Host') + ->options(fn () => $server->node->databaseHosts->mapWithKeys(fn (DatabaseHost $databaseHost) => [$databaseHost->id => $databaseHost->name])), TextInput::make('database') ->columnSpan(2) ->label('Database Name') @@ -119,8 +125,6 @@ class ListDatabases extends ListRecords if (empty($data['database'])) { $data['database'] = str_random(12); } - - $data['database_host_id'] = DatabaseHost::where('node_id', $server->node_id)->first()->id; $data['database'] = 's'. $server->id . '_' . $data['database']; $service->create($server, $data);