|
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-mark-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