From 37723a52ebf5878d9652a2a471ad7d5c16365d2e Mon Sep 17 00:00:00 2001 From: salam Date: Wed, 4 Mar 2026 19:19:19 +0100 Subject: [PATCH] action groups for dynamic data --- .../Tables/CompetitionGroupsTable.php | 34 +++++++++++-------- .../Tables/CompetitonGroupProvidersTable.php | 20 ++++++----- .../Tables/ElementProvidersTable.php | 20 ++++++----- .../Elements/Tables/ElementsTable.php | 34 +++++++++++-------- 4 files changed, 62 insertions(+), 46 deletions(-) diff --git a/app/Filament/Clusters/DynamicData/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php b/app/Filament/Clusters/DynamicData/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php index a3c2f5b2..49f59253 100644 --- a/app/Filament/Clusters/DynamicData/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php +++ b/app/Filament/Clusters/DynamicData/Resources/CompetitionGroups/Tables/CompetitionGroupsTable.php @@ -8,6 +8,7 @@ use App\Models\ElementGroup; use App\Models\Event; use App\Models\Group; use App\Models\Sport; +use Filament\Actions\ActionGroup; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; @@ -60,21 +61,24 @@ class CompetitionGroupsTable ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ - EditAction::make(), - DeleteAction::make() - ->tooltip('All elements connected to this group, including active events, will be deleted') - ->before(function ($record) { - Group::where('competition_group_id', $record->id)->delete(); - Event::where('competition_group_id', $record->id)->delete(); - ElementGroup::where('competition_group_id', $record->id)->delete(); - CompetitionGroupProvider::where('competition_group_id', $record->id)->delete(); - }) - ->successNotification( - Notification::make() - ->success() - ->title('Group deleted') - ->body('The group and all relations has been deleted successfully.'), - ), + ActionGroup::make([ + EditAction::make(), + DeleteAction::make() + ->tooltip('All elements connected to this group, including active events, will be deleted') + ->before(function ($record) { + Group::where('competition_group_id', $record->id)->delete(); + Event::where('competition_group_id', $record->id)->delete(); + ElementGroup::where('competition_group_id', $record->id)->delete(); + CompetitionGroupProvider::where('competition_group_id', $record->id)->delete(); + }) + ->successNotification( + Notification::make() + ->success() + ->title('Group deleted') + ->body('The group and all relations has been deleted successfully.'), + ), + ])->iconButton() + ->icon('phosphor-dots-three-vertical'), ]) ->toolbarActions([ BulkActionGroup::make([ diff --git a/app/Filament/Clusters/DynamicData/Resources/CompetitonGroupProviders/Tables/CompetitonGroupProvidersTable.php b/app/Filament/Clusters/DynamicData/Resources/CompetitonGroupProviders/Tables/CompetitonGroupProvidersTable.php index 2a50f9c4..3dba97f7 100644 --- a/app/Filament/Clusters/DynamicData/Resources/CompetitonGroupProviders/Tables/CompetitonGroupProvidersTable.php +++ b/app/Filament/Clusters/DynamicData/Resources/CompetitonGroupProviders/Tables/CompetitonGroupProvidersTable.php @@ -6,6 +6,7 @@ use App\Models\AddByMethod; use App\Models\Country; use App\Models\Provider; use App\Models\Sport; +use Filament\Actions\ActionGroup; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; @@ -75,14 +76,17 @@ class CompetitonGroupProvidersTable ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ - EditAction::make(), - DeleteAction::make() - ->successNotification( - Notification::make() - ->success() - ->title('Group deleted') - ->body('The provider group has been deleted successfully.'), - ), + ActionGroup::make([ + EditAction::make(), + DeleteAction::make() + ->successNotification( + Notification::make() + ->success() + ->title('Group deleted') + ->body('The provider group has been deleted successfully.'), + ), + ])->iconButton() + ->icon('phosphor-dots-three-vertical'), ]) ->toolbarActions([ BulkActionGroup::make([ diff --git a/app/Filament/Clusters/DynamicData/Resources/ElementProviders/Tables/ElementProvidersTable.php b/app/Filament/Clusters/DynamicData/Resources/ElementProviders/Tables/ElementProvidersTable.php index a20e06e3..8ab396bb 100644 --- a/app/Filament/Clusters/DynamicData/Resources/ElementProviders/Tables/ElementProvidersTable.php +++ b/app/Filament/Clusters/DynamicData/Resources/ElementProviders/Tables/ElementProvidersTable.php @@ -6,6 +6,7 @@ use App\Models\AddByMethod; use App\Models\Country; use App\Models\Provider; use App\Models\Sport; +use Filament\Actions\ActionGroup; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; @@ -72,14 +73,17 @@ class ElementProvidersTable ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ - EditAction::make(), - DeleteAction::make() - ->successNotification( - Notification::make() - ->success() - ->title('Element deleted') - ->body('The provider element has been deleted successfully.'), - ), + ActionGroup::make([ + EditAction::make(), + DeleteAction::make() + ->successNotification( + Notification::make() + ->success() + ->title('Element deleted') + ->body('The provider element has been deleted successfully.'), + ), + ])->iconButton() + ->icon('phosphor-dots-three-vertical'), ]) ->toolbarActions([ BulkActionGroup::make([ diff --git a/app/Filament/Clusters/DynamicData/Resources/Elements/Tables/ElementsTable.php b/app/Filament/Clusters/DynamicData/Resources/Elements/Tables/ElementsTable.php index 68117420..138fd381 100644 --- a/app/Filament/Clusters/DynamicData/Resources/Elements/Tables/ElementsTable.php +++ b/app/Filament/Clusters/DynamicData/Resources/Elements/Tables/ElementsTable.php @@ -8,6 +8,7 @@ use App\Models\ElementGroup; use App\Models\ElementProvider; use App\Models\Event; use App\Models\Sport; +use Filament\Actions\ActionGroup; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; use Filament\Actions\DeleteBulkAction; @@ -83,21 +84,24 @@ class ElementsTable ], layout: FiltersLayout::AboveContent) ->deferFilters(false) ->recordActions([ - EditAction::make(), - DeleteAction::make() - ->tooltip('All elements connected to this group, including active events, will be deleted') - ->before(function ($record) { - Event::where('home_id', $record->id)->delete(); - Event::where('away_id', $record->id)->delete(); - ElementProvider::where('element_id', $record->id)->delete(); - ElementGroup::where('element_id', $record->id)->delete(); - }) - ->successNotification( - Notification::make() - ->success() - ->title('Element deleted') - ->body('The element with all relations in other tables has been deleted successfully.'), - ), + ActionGroup::make([ + EditAction::make(), + DeleteAction::make() + ->tooltip('All elements connected to this group, including active events, will be deleted') + ->before(function ($record) { + Event::where('home_id', $record->id)->delete(); + Event::where('away_id', $record->id)->delete(); + ElementProvider::where('element_id', $record->id)->delete(); + ElementGroup::where('element_id', $record->id)->delete(); + }) + ->successNotification( + Notification::make() + ->success() + ->title('Element deleted') + ->body('The element with all relations in other tables has been deleted successfully.'), + ), + ])->iconButton() + ->icon('phosphor-dots-three-vertical'), ]) ->toolbarActions([ BulkActionGroup::make([