@extends('admin.layouts.app')
@section('title', __('admin.notification_logs_admin.list_title') . ' โ ' . __('admin.brand.name'))
@section('page_title', __('admin.notification_logs_admin.list_title'))
@php
use App\Models\NotificationLog;
$filterKeys = ['type', 'channel', 'status', 'module', 'admin_id', 'recipient_type', 'from', 'to'];
$activeFilters = collect($filterKeys)->filter(fn ($k) => filled(request($k)))->count();
$locale = app()->getLocale();
$nameField = $locale === 'ar' ? 'name_ar' : 'name_en';
/** Channel display: icon + colour. */
$channelMeta = [
NotificationLog::CHANNEL_EMAIL => ['icon' => 'โ๏ธ', 'fg' => '#1d4ed8', 'bg' => '#dbeafe', 'label' => __('admin.notification_logs_admin.channels.email')],
NotificationLog::CHANNEL_SMS => ['icon' => '๐ฌ', 'fg' => '#7c2d12', 'bg' => '#fed7aa', 'label' => __('admin.notification_logs_admin.channels.sms')],
NotificationLog::CHANNEL_WHATSAPP => ['icon' => '๐ข', 'fg' => '#166534', 'bg' => '#bbf7d0', 'label' => __('admin.notification_logs_admin.channels.whatsapp')],
NotificationLog::CHANNEL_PUSH => ['icon' => 'โ', 'fg' => '#0369a1', 'bg' => '#e0f2fe', 'label' => __('admin.notification_logs_admin.channels.push')],
NotificationLog::CHANNEL_NOTIFICATION => ['icon' => '๐', 'fg' => '#4338ca', 'bg' => '#e0e7ff', 'label' => __('admin.notification_logs_admin.channels.notification')],
];
@endphp
@section('content')
| {{ __('admin.notification_logs_admin.fields.occurred_at') }} | {{ __('admin.notification_logs_admin.fields.action') }} | {{ __('admin.notification_logs_admin.fields.recipient') }} | {{ __('admin.notification_logs_admin.fields.channels') }} | {{ __('admin.notification_logs_admin.fields.summary') }} | {{ __('admin.notification_logs_admin.fields.admin') }} | ||
|---|---|---|---|---|---|---|---|
| @if ($hasFailures) @endif | @if ($when) {{ $when->format('Y-m-d H:i:s') }} {{ $when->diffForHumans() }} @else โ @endif |
@if ($isAutomation)
{{-- Automation dispatch โ name lives in new_value. --}}
{{ __('admin.notification_logs_admin.types.automation') }}
{{ $event->new_value ?: __('admin.notification_logs_admin.types.automation') }}
@if ($autoTrigger)
{{ $autoTrigger }}
@endif
@else
{{-- Label-option change (Action). --}}
{{ __('admin.notification_logs_admin.types.action') }}
@if ($newOptName)
{{ $newOptName }}
@else
โ
@endif
@if ($event->label_key)
{{ $event->label_key }}
@endif
@if ($oldOptName)
{{ $oldOptName }} โ {{ $newOptName }}
@endif
@endif
|
@if ($recipientUrl) {{ $recipientName }} @else {{ $recipientName }} @endif {{ class_basename($event->recipient_type) }}#{{ $event->recipient_id }} |
@foreach ($event->channels_list as $ch)
@php $cm = $channelMeta[$ch] ?? ['icon' => 'โข', 'fg' => '#475569', 'bg' => '#f1f5f9', 'label' => $ch]; @endphp
{{ $cm['icon'] }} {{ $cm['label'] }}
@endforeach
|
@if ((int) $event->sent_count > 0)
โ {{ $event->sent_count }} {{ __('admin.notification_logs_admin.counters.sent') }}
@endif
@if ((int) $event->failed_count > 0)
โ {{ $event->failed_count }} {{ __('admin.notification_logs_admin.counters.failed') }}
@endif
@if ((int) $event->pending_count > 0)
โณ {{ $event->pending_count }} {{ __('admin.notification_logs_admin.counters.pending') }}
@endif
@if ((int) $event->sent_count === 0 && (int) $event->failed_count === 0 && (int) $event->pending_count === 0)
โ
@endif
|
@if ($event->admin_actor) {{ $event->admin_actor->name }} @else โ @endif |
{{ __('admin.actions.view') ?? 'View' }}
@if ($hasFailures)
{{-- Retry every failed channel of this event (each row
on its OWN channel โ already-sent channels untouched). --}}
{{-- Validation send to the test recipients (reference: first failed row). --}}
@endif
|