1111use Filament \Support \Enums \MaxWidth ;
1212use Filament \Tables ;
1313use Filament \Tables \Actions \Action ;
14+ use Filament \Tables \Actions \BulkActionGroup ;
15+ use Filament \Tables \Actions \DeleteBulkAction ;
1416use Filament \Tables \Actions \ExportAction ;
17+ use Filament \Tables \Actions \ForceDeleteBulkAction ;
1518use Filament \Tables \Actions \ImportAction ;
19+ use Filament \Tables \Actions \RestoreBulkAction ;
1620use Filament \Tables \Columns \TextInputColumn ;
21+ use Filament \Tables \Enums \FiltersLayout ;
22+ use Filament \Tables \Filters \SelectFilter ;
23+ use Filament \Tables \Filters \TrashedFilter ;
1724use Filament \Tables \Table ;
1825use Filament \Widgets \TableWidget as BaseWidget ;
26+ use Illuminate \Database \Eloquent \Builder as EloquentBuilder ;
27+ use Illuminate \Database \Eloquent \SoftDeletingScope ;
1928
2029class RecentlyAdded extends BaseWidget
2130{
@@ -26,7 +35,7 @@ class RecentlyAdded extends BaseWidget
2635 public function table (Table $ table ): Table
2736 {
2837 return $ table
29- ->query (ItemResource:: getEloquentQuery ())
38+ ->query ($ this -> getEloquentQuery ())
3039 ->defaultPaginationPageOption (5 )
3140 ->defaultSort ('created_at ' , 'desc ' )
3241 ->columns ([
@@ -59,13 +68,47 @@ public function table(Table $table): Table
5968 Tables \Actions \Action::make ('open ' )
6069 ->icon ('heroicon-m-pencil-square ' )
6170 ->url (fn (Item $ record ): string => ItemResource::getUrl ('edit ' , ['record ' => $ record ])),
71+ Tables \Actions \DeleteAction::make (),
6272 ])
6373 ->headerActions ([
6474 ImportAction::make ()
6575 ->importer (ItemImporter::class)->options ([
6676 'team_id ' => Filament::getTenant ()?->id,
6777 ]),
6878 ExportAction::make ()->exporter (ItemExporter::class),
79+ ])
80+ ->filters ([
81+ SelectFilter::make ('location_id ' )
82+ ->relationship ('location ' , 'name ' )
83+ ->label ('Location ' )
84+ ->multiple ()
85+ ->searchable ()
86+ ->preload (),
87+ SelectFilter::make ('tags ' )
88+ ->label ('Label ' )
89+ ->relationship ('tags ' , 'name ' )
90+ ->searchable ()
91+ ->multiple ()
92+ ->preload (),
93+
94+ TrashedFilter::make (),
95+ ])
96+ ->filtersLayout (FiltersLayout::AboveContentCollapsible)
97+ ->bulkActions ([
98+ BulkActionGroup::make ([
99+ DeleteBulkAction::make (),
100+ RestoreBulkAction::make (),
101+ ForceDeleteBulkAction::make (),
102+ ]),
103+ ]);
104+
105+ }
106+
107+ public static function getEloquentQuery (): EloquentBuilder
108+ {
109+ return ItemResource::getEloquentQuery ()
110+ ->withoutGlobalScopes ([
111+ SoftDeletingScope::class,
69112 ]);
70113 }
71114}
0 commit comments