From bcbacb47cdcc20ae6a77189882dc17b3744dd594 Mon Sep 17 00:00:00 2001 From: Lance Pioch Date: Sun, 20 Oct 2024 14:20:32 -0400 Subject: [PATCH] Fix #606 - Prevent database hosts bulk selection if host has any databases (#640) * Prevent hosts with databases from being selected for bulk actions * Add icons * Update input to select * Update app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php * Add placeholder --- .../DatabaseHostResource/Pages/ListDatabaseHosts.php | 11 +++++++---- .../DatabaseResource/Pages/CreateDatabase.php | 9 ++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php b/app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php index 384f9cda6..c5db9ea85 100644 --- a/app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php +++ b/app/Filament/Resources/DatabaseHostResource/Pages/ListDatabaseHosts.php @@ -32,13 +32,16 @@ class ListDatabaseHosts extends ListRecords ->sortable(), TextColumn::make('username') ->searchable(), - TextColumn::make('max_databases') - ->numeric() - ->sortable(), + TextColumn::make('databases_count') + ->counts('databases') + ->icon('tabler-database') + ->label('Databases'), TextColumn::make('node.name') - ->numeric() + ->icon('tabler-server-2') + ->placeholder('No Nodes') ->sortable(), ]) + ->checkIfRecordIsSelectableUsing(fn (DatabaseHost $databaseHost) => !$databaseHost->databases_count) ->actions([ EditAction::make(), ]) diff --git a/app/Filament/Resources/DatabaseResource/Pages/CreateDatabase.php b/app/Filament/Resources/DatabaseResource/Pages/CreateDatabase.php index 0e85e0a6a..71d57d361 100644 --- a/app/Filament/Resources/DatabaseResource/Pages/CreateDatabase.php +++ b/app/Filament/Resources/DatabaseResource/Pages/CreateDatabase.php @@ -21,9 +21,12 @@ class CreateDatabase extends CreateRecord ->searchable() ->preload() ->required(), - TextInput::make('database_host_id') - ->required() - ->numeric(), + Select::make('database_host_id') + ->relationship('host', 'name') + ->searchable() + ->selectablePlaceholder(false) + ->preload() + ->required(), TextInput::make('database') ->required() ->maxLength(255),