@php use App\Enums\ModerationSource; $busy = 'search,setSource,gotoPage,previousPage,nextPage,goTo'; $sources = ['' => 'All', ModerationSource::DonationMessage->value => 'Donor messages', ModerationSource::CampaignStory->value => 'Stories', ModerationSource::Username->value => 'Usernames']; @endphp
@if ($error)
Moderation log unavailable
{{ $error }}
@else {{-- KPI strip --}}
{{ number_format($kpi['total']) }}Events
{{ number_format($kpi['cleaned']) }}Auto-cleaned
{{ number_format($kpi['usernames']) }}Usernames rejected
{{ number_format($kpi['review']) }}Needs review
@foreach ($sources as $key => $label) @endforeach {{ number_format($events->total()) }} result{{ $events->total() === 1 ? '' : 's' }}
@forelse ($events as $e) @empty @endforelse @for ($i = 0; $i < 8; $i++) @endfor
When Source Event User Matched Content
{{ $e->created_at?->format('d M Y, H:i') ?: '—' }} {{ $e->source->label() }} {{ $e->type->label() }}
{{ $users[$e->u_ident] ?? ($e->email ?: '—') }}
@if ($e->u_ident)
{{ $e->u_ident }}
@endif
@php $terms = $e->matched_terms ?? []; @endphp @if ($terms !== []){{ implode(', ', $terms) }}@else—@endif {{ \Illuminate\Support\Str::limit(trim((string) ($e->original_text ?: $e->note)), 60) ?: '—' }}
Nothing to moderate
No moderation events match. @if ($source)@endif
@if ($events->hasPages())
Showing {{ $events->firstItem() }}–{{ $events->lastItem() }} of {{ number_format($events->total()) }}
@endif
@endif