feat: add service status tabs with counts and query modifications
This commit is contained in:
@@ -3,8 +3,11 @@
|
||||
namespace App\Admin\Resources\ServiceResource\Pages;
|
||||
|
||||
use App\Admin\Resources\ServiceResource;
|
||||
use App\Models\Service;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Components\Tab;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class ListService extends ListRecords
|
||||
{
|
||||
@@ -16,4 +19,38 @@ class ListService extends ListRecords
|
||||
Actions\CreateAction::make(),
|
||||
];
|
||||
}
|
||||
|
||||
public function getTabs(): array
|
||||
{
|
||||
return [
|
||||
'all' => Tab::make('All Services')
|
||||
->icon('ri-apps-line')
|
||||
->badge(Service::count()),
|
||||
'active' => Tab::make('Active')
|
||||
->icon('ri-checkbox-circle-line')
|
||||
->badgeColor('success')
|
||||
->modifyQueryUsing(fn (Builder $query) => $query->where('status', 'active'))
|
||||
->badge(Service::where('status', 'active')->count()),
|
||||
'pending' => Tab::make('Pending')
|
||||
->icon('ri-time-line')
|
||||
->badgeColor('warning')
|
||||
->modifyQueryUsing(fn (Builder $query) => $query->where('status', 'pending'))
|
||||
->badge(Service::where('status', 'pending')->count()),
|
||||
'suspended' => Tab::make('Suspended')
|
||||
->icon('ri-pause-circle-line')
|
||||
->badgeColor('warning')
|
||||
->modifyQueryUsing(fn (Builder $query) => $query->where('status', 'suspended'))
|
||||
->badge(Service::where('status', 'suspended')->count()),
|
||||
'cancelled' => Tab::make('Cancelled')
|
||||
->icon('ri-close-circle-line')
|
||||
->badgeColor('danger')
|
||||
->modifyQueryUsing(fn (Builder $query) => $query->where('status', 'cancelled'))
|
||||
->badge(Service::where('status', 'cancelled')->count()),
|
||||
];
|
||||
}
|
||||
|
||||
public function getDefaultActiveTab(): string|int|null
|
||||
{
|
||||
return 'active';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user