57 lines
2.0 KiB
PHP
57 lines
2.0 KiB
PHP
<?php
|
|
|
|
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
|
|
{
|
|
protected static string $resource = ServiceResource::class;
|
|
|
|
protected function getHeaderActions(): array
|
|
{
|
|
return [
|
|
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';
|
|
}
|
|
}
|