|
7 | 7 | use App\Actions\Article\ApprovedArticleAction;
|
8 | 8 | use App\Filament\Resources\ArticleResource\Pages;
|
9 | 9 | use App\Models\Article;
|
| 10 | +use Awcodes\FilamentBadgeableColumn\Components\Badge; |
| 11 | +use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn; |
10 | 12 | use Filament\Resources\Resource;
|
11 | 13 | use Filament\Support\Enums\MaxWidth;
|
12 | 14 | use Filament\Tables;
|
@@ -67,36 +69,39 @@ public static function table(Table $table): Table
|
67 | 69 | ->label('Soumission')
|
68 | 70 | ->placeholder('N/A')
|
69 | 71 | ->date(),
|
70 |
| - Tables\Columns\TextColumn::make('status') |
| 72 | + BadgeableColumn::make('status') |
71 | 73 | ->label('Statut')
|
72 |
| - ->badge() |
73 | 74 | ->getStateUsing(function ($record) {
|
74 | 75 | if ($record->approved_at) {
|
75 |
| - return 'Approuvé - '.$record->approved_at->format('d/m/Y'); |
| 76 | + return $record->approved_at->format('d/m/Y'); |
76 | 77 | }
|
77 | 78 |
|
78 | 79 | if ($record->declined_at) {
|
79 |
| - return 'Décliné - '.$record->declined_at->format('d/m/Y'); |
| 80 | + return $record->declined_at->format('d/m/Y'); |
80 | 81 | }
|
81 | 82 |
|
82 |
| - return 'En attente'; |
| 83 | + return 'depuis le '.$record->submitted_at->format('d/m/Y'); |
83 | 84 | })
|
84 |
| - ->colors([ |
85 |
| - 'success' => fn ($state) => str_contains($state, 'Approuvé'), |
86 |
| - 'danger' => fn ($state) => str_contains($state, 'Décliné'), |
87 |
| - 'warning' => fn ($state) => $state === 'En attente', |
88 |
| - ]) |
89 |
| - ->icon( |
90 |
| - fn ($state) => str_contains($state, 'Approuvé') ? 'heroicon-s-check-circle' : |
91 |
| - (str_contains($state, 'Décliné') ? 'heroicon-s-x-circle' : |
92 |
| - ($state === 'En attente' ? 'heroicon-s-clock' : null)) |
93 |
| - ) |
| 85 | + ->prefixBadges(function ($record) { |
| 86 | + if ($record->approved_at) { |
| 87 | + return [ |
| 88 | + Badge::make('Approuvé') |
| 89 | + ->color('success'), |
| 90 | + ]; |
| 91 | + } |
| 92 | + |
| 93 | + if ($record->declined_at) { |
| 94 | + return [ |
| 95 | + Badge::make('Décliné') |
| 96 | + ->color('danger'), |
| 97 | + ]; |
| 98 | + } |
| 99 | + |
| 100 | + return [Badge::make('En attente') |
| 101 | + ->color('warning')]; |
| 102 | + }) |
| 103 | + ->searchable() |
94 | 104 | ->sortable(),
|
95 |
| - Tables\Columns\TextColumn::make('declined_at') |
96 |
| - ->label('Décliner') |
97 |
| - ->placeholder('N/A') |
98 |
| - ->date() |
99 |
| - ->toggleable(isToggledHiddenByDefault: true), |
100 | 105 | ])
|
101 | 106 | ->actions([
|
102 | 107 | ActionGroup::make([
|
|
0 commit comments