@php use App\Enum\Dsar\DsarStatus; /** * Week-on-week delta badge. $lowerIsBetter inverts the colouring for metrics * like response time, where a fall is an improvement. */ $trend = function ($current, $previous, bool $lowerIsBetter = false) { if (!$previous) { return null; // no baseline — nothing meaningful to show } $change = round((($current - $previous) / $previous) * 100, 1); $good = $lowerIsBetter ? $change <= 0 : $change >= 0; return [ 'change' => $change, 'class' => $good ? 'text-success' : 'text-danger', 'icon' => $change >= 0 ? 'bi-arrow-up-right' : 'bi-arrow-down-right', ]; }; @endphp
Overview of all Data Subject Access Requests
Total Sent (All Time)
Completed
Avg Response Time
| Status | Count | % |
|---|---|---|
| {{ DsarStatus::label($case->value) }} | {{ $count }} | {{ $grandTotal > 0 ? round(($count / $grandTotal) * 100, 1) : 0 }}% |
No responses received yet.
@endif| Institution | Outstanding | Oldest (days) | Avg Response | Stated Backlog | Sent | Completed | Completion % |
|---|---|---|---|---|---|---|---|
| @if($row->institution) {{ $row->display_name }} @else {{ $row->display_name }} @endif | @if($row->outstanding > 0) {{ $row->outstanding }} @if($row->institution) @endif @else 0 @endif | {{ $row->oldest_age_days !== null ? $row->oldest_age_days : '—' }} | {{ $row->avg_response_days !== null ? $row->avg_response_days . ' d' : '—' }} |
@if($row->stated_backlog !== null)
{{ number_format($row->stated_backlog) }}
@if($row->backlog_updated_at)
as of {{ $row->backlog_updated_at->format('d M Y') }}
@endif
@else
—
@endif
|
{{ $row->total_sent }} | {{ $row->total_completed }} |
|
| No DSARs found. | |||||||