feat(outlet): add filter outlet by status
This commit is contained in:
parent
078b72d2ed
commit
dff76ff4b1
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Livewire\Datatable;
|
namespace App\Livewire\Datatable;
|
||||||
|
|
||||||
|
use App\Enums\OutletStatus;
|
||||||
use App\Models\Outlet;
|
use App\Models\Outlet;
|
||||||
use App\Traits\Datatable\WithAppendColumn;
|
use App\Traits\Datatable\WithAppendColumn;
|
||||||
use App\Traits\Datatable\WithConfiguration;
|
use App\Traits\Datatable\WithConfiguration;
|
||||||
@ -11,6 +12,7 @@
|
|||||||
use Rappasoft\LaravelLivewireTables\DataTableComponent;
|
use Rappasoft\LaravelLivewireTables\DataTableComponent;
|
||||||
use Rappasoft\LaravelLivewireTables\Views\Column;
|
use Rappasoft\LaravelLivewireTables\Views\Column;
|
||||||
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
|
use Rappasoft\LaravelLivewireTables\Views\Columns\ArrayColumn;
|
||||||
|
use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter;
|
||||||
|
|
||||||
class OutletsTable extends DataTableComponent
|
class OutletsTable extends DataTableComponent
|
||||||
{
|
{
|
||||||
@ -116,4 +118,19 @@ public function builder(): Builder
|
|||||||
{
|
{
|
||||||
return Outlet::select('id', 'name', 'phone_number', 'landmark', 'address', 'opening_hours', 'facilities', 'opened_date', 'closed_date', 'status');
|
return Outlet::select('id', 'name', 'phone_number', 'landmark', 'address', 'opening_hours', 'facilities', 'opened_date', 'closed_date', 'status');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function filters(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
MultiSelectFilter::make('Status')
|
||||||
|
->options(
|
||||||
|
collect(OutletStatus::cases())
|
||||||
|
->mapWithKeys(fn ($case) => [$case->value => $case->label()])
|
||||||
|
->toArray()
|
||||||
|
)
|
||||||
|
->filter(function (Builder $builder, array $values) {
|
||||||
|
$builder->whereIn('status', $values);
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user