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) + ($claimType ? 1 : 0) + ($statusId ? 1 : 0) + ($vulnerable ? 1 : 0); $totalActive = $activeCount + $quickActive; $grouped = collect($fieldConfig)->groupBy('group', true); @endphp
{{-- ═══════════════════════════════════════════════════════════════ --}} {{-- MAIN TABLE --}} {{-- ═══════════════════════════════════════════════════════════════ --}}
{{-- Controls --}}
{{ number_format($cases->total()) }}
{{-- Active filter pills --}} @if($totalActive)
Filtered by: {{-- Quick filter pills --}} @if($openClosed !== 'all') {{ ucfirst($openClosed) }} @endif @if($claimType) Type: {{ strtoupper($claimType) }} @endif @if($statusId && $statuses->isNotEmpty()) Status: {{ $statuses->firstWhere('id', $statusId)?->display_name }} @endif @if($vulnerable) Vulnerable @endif {{-- Advanced filter pills --}} @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 {{-- Table --}}
@forelse($cases as $case) @empty @endforelse
Case # Client Type Owner Status Open/Closed
{{ $case->fscs_reference ?? $case->case_number ?? $case->displayId }} @if($case->sf_case_id)
{{ $case->sf_case_id }}
@endif @if($case->vulnerable_client_flag) V @endif
@if($case->client) {{ $case->client->name_first }} {{ $case->client->name_last }} @else @endif @if($case->claim_type) @php $typeColour = match($case->claim_type) { 'bank' => 'bg-primary', 'fos' => 'bg-warning text-dark', 'fscs' => 'bg-info text-dark', default => 'bg-secondary', }; @endphp {{ strtoupper($case->claim_type) }} @else @endif {{ $case->case_owner ?? '—' }} @if($case->status) {{ $case->status->display_name }} @else @endif @if($case->is_open) Open @else Closed @endif @can('edit', $case) @endcan
No pension cases found.
{{ $cases->links() }}
{{-- ═══════════════════════════════════════════════════════════════ --}} {{-- SIDEBAR — FILTERS + PRESETS --}} {{-- ═══════════════════════════════════════════════════════════════ --}}
{{-- ── Filters card ─────────────────────────────────────────── --}}
Filters @if($totalActive) {{ $totalActive }} @endif @if($activeCount) @endif
{{-- ── Pinned quick filters ─────────────────────────── --}}

Quick Filters

@if($claimType && $statuses->isNotEmpty()) @else @endif
{{-- ── Advanced filter rows ────────────────────────── --}}

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
{{-- Remove button --}} {{-- Field --}}
{{-- Operator --}} @if($rowField && $rowCfg)
@endif {{-- Value --}} @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 {{-- string --}} @endif @endif @endif
{{-- /.bg-light --}} @endforeach {{-- Empty state --}} @if(empty($filterRows))

No filters added yet.

@endif {{-- Add filter --}}
{{-- /.p-2 advanced --}}
{{-- /.card-body --}}
{{-- ── Saved Presets card ───────────────────────────────────── --}}
Saved Presets
@if($presets->isNotEmpty()) @else

No saved presets.

@endif @if($loadedPresetId) @endif @if(!$showSavePreset) @else @error('newPresetName')
{{ $message }}
@enderror
@endif
{{-- /.col sidebar --}}
{{-- /.row --}}