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