action groups for dynamic data

This commit is contained in:
salam committed 2026-03-04 19:19:19 +01:00
1 parent a980ea92ce
commit 37723a52eb
4 files changed
+62 -46

No files matched your search

@@ -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([
@@ -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([
@@ -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([
@@ -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([