Files
Virtnet.bond/app/Admin/Resources/ServiceResource/Pages/ListService.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';
}
}