@include('partials.html-root-open') @include('partials.head-meta', ['pageTitle' => 'Notifications Center']) @include('partials.desktop-required-notice') @include('partials.workspace-lg-only-wrap-start') @include('partials.activity-drawer')
@include('partials.workspace-shell-operator-chrome') @include('partials.control-preview-shell-banner')

Notifications Center

Central stream for success notices, warnings, restrictions, and appeals.

@if (session('status'))

{{ session('status') }}

@endif @if ($errors->any())
@foreach ($errors->all() as $err)

{{ $err }}

@endforeach
@endif
@php $attentionCount = (int) (($attentionAlerts ?? [])['count'] ?? 0); @endphp
@php $attentionItems = collect(($attentionAlerts ?? [])['items'] ?? []); @endphp @if ($attentionItems->isEmpty())

No items need your attention right now.

@else

Each card aggregates an open task-queue item, Operations alert, treasury approval, governance directive, platform notice, or appeal response. Use View what to do for steps and direct links to Payables, Task queue, Offers intake, or Operations.

    @foreach ($attentionItems as $item) @include('partials.attention-workflow-item-card', ['item' => $item]) @endforeach
@once @include('partials.attention-workflow-script') @include('partials.attention-workflow-dialog') @endonce @endif
@php $streamTabs = [ 'success' => ['rows' => $successNotifications, 'severity' => 'Success'], 'warnings' => ['rows' => $warningNotifications, 'severity' => 'Warning'], 'restricted' => ['rows' => $restrictedNotifications, 'severity' => 'Restricted'], ]; @endphp @foreach ($streamTabs as $streamTab => $streamConfig) @php $rows = $streamConfig['rows']; @endphp
@forelse ($rows as $notification)

{{ str_replace('_', ' ', $notification->type) }}

{{ $notification->subject }}

{{ optional($notification->created_at)->format('M d, Y H:i') }}

{{ $notification->message }}

@if(in_array($notification->type, ['cp_task_queue_message', 'control_panel_governance_notice'], true)) @include('partials.task-queue-directive-cta-links', ['ctaLinks' => data_get($notification->meta, 'cta_links')]) @endif

Severity: {{ $streamConfig['severity'] }}

Channel: {{ $notification->channel }}

Type: {{ $notification->type }}

Reference: {{ data_get($notification->meta, 'wire_ref') ?? data_get($notification->meta, 'invoice_number') ?? data_get($notification->meta, 'invoice_id') ?? data_get($notification->meta, 'reference_code') ?? data_get($notification->meta, 'task_queue_admin_message_id') ?? 'n/a' }}

@if ($notification->needsAttention())

Status: Awaiting your resolution

@elseif ($notification->isResolved())

Status: Resolved

@endif
@if ($notification->needsAttention())
@csrf
@endif
@empty

No notifications yet in this filter.

@endforelse @if ($rows->count() > 0)
{{ $rows->links() }}
@endif
@endforeach

Submit Appeal

@csrf
@foreach ($appeals as $appeal)

{{ $appeal->subject }}

{{ str_replace('_', ' ', $appeal->status) }}

Context: {{ $appeal->context_type ?? 'n/a' }} · Ref: {{ $appeal->context_reference ?? 'n/a' }}

Submitted: {{ optional($appeal->submitted_at ?? $appeal->created_at)->format('M d, Y H:i') }}

Last actor: {{ $appeal->last_actor ?? 'n/a' }}

@foreach ($appeal->messages as $message)

{{ strtoupper($message->author_role) }}

{{ $message->message }}

@endforeach
@csrf
@endforeach @if ($appeals->isEmpty())

No appeal files on record yet. Use Submit Appeal above to open a compliance review.

@endif
@include('partials.workspace-lg-only-wrap-end')