CPF Cases @can('pension-cases.create') New CPF Case @endcan @php $activeCount = collect($filterRows) ->filter(fn($r) => !empty($r['field']) && !empty($r['operator'])) ->count(); $quickActive = ($openClosed !== 'all' ? 1 : 0) + (count($claimTypes) ? 1 : 0) + (count($statusIds) ? 1 : 0) + ($vulnerable ? 1 : 0); $totalActive = $activeCount + $quickActive; $grouped = collect($fieldConfig)->groupBy('group', true); @endphp
{{-- Controls --}}
{{ number_format($cases->total()) }}
{{-- Bulk task assignment --}} @can('pension-cases.edit') @if(count($selectedIds) > 0 || $selectAllMatching)
{{ $selectAllMatching ? number_format($cases->total()) . ' matching filter(s) selected' : count($selectedIds) . ' selected' }} @if(!$selectAllMatching && $cases->total() > $cases->count()) @endif
@elseif($cases->total() > $cases->count())
@endif @endcan {{-- Active filter pills --}} @if($totalActive)
Filtered by: @if($openClosed !== 'all') {{ ucfirst($openClosed) }} @endif @if($claimTypes) Type: {{ implode(', ', array_map('strtoupper', $claimTypes)) }} @endif @if($statusIds && $statuses->isNotEmpty()) {{ $statusMode === 'entered' ? 'Ever entered' : 'Status' }}: {{ $statuses->whereIn('id', $statusIds)->pluck('display_name')->join(', ') }} @if($statusMode === 'entered' && ($statusFrom || $statusTo)) {{ $statusFrom ? \Carbon\Carbon::parse($statusFrom)->format('d/m/Y') : 'any' }} – {{ $statusTo ? \Carbon\Carbon::parse($statusTo)->format('d/m/Y') : 'any' }} @endif @endif @if($vulnerable) Vulnerable @endif @foreach($filterRows as $row) @if(!empty($row['field']) && !empty($row['operator'])) @php $pill = $fieldConfig[$row['field']]['label'] ?? $row['field']; $ops = \App\Filters\PensionCaseFilterConfig::operatorsForType($fieldConfig[$row['field']]['type'] ?? 'string'); $opLbl = $ops[$row['operator']] ?? $row['operator']; $val = $row['value'] ?? ''; $val2 = $row['value2'] ?? ''; @endphp {{ $pill }} {{ strtolower($opLbl) }} @if($val) {{ $val }} @if($val2) – {{ $val2 }} @endif @endif @endif @endforeach
@endif
Tip: You can drag and drop the table columns to change their order. Your selected order will also be used when exporting to CSV.
{{-- Table --}}
@can('pension-cases.edit') @endcan @foreach($visibleColumns as $key => $column) @endforeach @forelse($cases as $case) @can('pension-cases.edit') @endcan @foreach($visibleColumns as $column) @endforeach @empty @endforelse
count() > 0 && count($selectedIds) === $cases->count())> {{ $column['label'] }}
{{ $column['value']($case) }} @can('edit', $case) @endcan @can('delete', $case) @endcan
No pension cases found.
{{ $cases->links() }}
{{-- Sidebar --}}
Filters @if($totalActive) {{ $totalActive }} @endif @if($activeCount) @endif
{{-- Quick Filters --}}

Quick Filters

@if($claimTypes) · @endif
@foreach(\App\Components\PensionCase\Index::CLAIM_TYPES as $ctKey => $ctLabel)
@endforeach
@if(! $claimTypes)
Nothing ticked — showing all types.
@endif
@if($statuses->isNotEmpty())
@if($statusIds) · @endif
@endif
@if($statuses->isNotEmpty())
@foreach($statuses->groupBy('type') as $sType => $statusGroup)
{{ strtoupper(str_replace('pension-', '', $sType)) }}
@foreach($statusGroup as $s)
@endforeach @endforeach
@if($statusMode === 'entered')
Cases that entered any ticked status between these dates, even if they have since moved on. Leave a date blank for an open end.
@elseif(! $statusIds)
Nothing ticked — any status.
@endif @else @endif
{{-- Advanced Filters --}}

Advanced Filters

@foreach($filterRows as $i => $row) @php $rowField = $row['field'] ?? ''; $rowOp = $row['operator'] ?? ''; $rowCfg = $rowField ? ($fieldConfig[$rowField] ?? null) : null; $rowType = $rowCfg['type'] ?? ''; $noValue = in_array($rowOp, ['is_empty','is_not_empty','is_true','is_false']); $isBetween = $rowOp === 'between'; @endphp
@if($rowField && $rowCfg)
@endif @if($rowField && $rowOp && $rowCfg) @if($noValue)

No value needed

@else @if($rowType === 'boolean') @elseif($rowType === 'enum') @elseif($rowType === 'status') @elseif($rowType === 'select_distinct') @elseif($rowType === 'date') @if($isBetween)
and
@endif @elseif($rowType === 'number') @if($isBetween)
and
@endif @else @endif @endif @endif
@endforeach @if(empty($filterRows))

No filters added yet.

@endif
{{-- Saved Presets --}}
Saved Presets
@if($presets->isNotEmpty()) @else

No saved presets.

@endif @if($loadedPresetId) @endif @if(!$showSavePreset) @else @error('newPresetName')
{{ $message }}
@enderror @if($canSharePresets) @endif
@endif
@if($showBulkTask) @endif
@push('styles') @endpush @script @endscript