@extends('admin.layout') @section('title', 'Audit Logs') @section('content') @php $livePolling = ! request()->hasAny(['search', 'action', 'user_id', 'model', 'date_from', 'date_to']) && $logs->onFirstPage(); @endphp {{-- ── PAGE HEADER ─────────────────────────────────────────── --}} {{-- ── FILTERS ──────────────────────────────────────────────── --}}
{{-- Search --}}
{{-- Action --}} {{-- User --}} {{-- Model --}} {{-- Date range --}} @if(request()->hasAny(['search','action','user_id','model','date_from','date_to'])) Clear @endif
{{-- ── TABLE ───────────────────────────────────────────── --}}
@forelse($logs as $log) @php $ac = \App\Models\AuditLog::actionMeta($log->action); $modelIcon = match(class_basename($log->auditable_type ?? '')) { 'Order' => 'shopping-bag', 'User' => 'user', 'MenuItem' => 'utensils', 'Category' => 'layout-grid', 'Rider' => 'bike', default => 'box', }; $avColor = match($log->user_role) { 'admin' => '#dc2626', 'chef' => '#f59e0b', 'rider' => '#8b5cf6', default => '#3b82f6', }; $initials = $log->user_name ? strtoupper(implode('', array_map(fn($p) => $p[0], array_slice(explode(' ', trim($log->user_name)), 0, 2)))) : '?'; @endphp {{-- Time --}} {{-- User --}} {{-- Action --}} {{-- Record / description --}} {{-- IP --}} {{-- Diff toggle --}} @empty @endforelse
Time User Action Record IP Address Changes
{{ $log->created_at->format('g:i A') }}
{{ $log->created_at->format('M d, Y') }}
{{ $log->created_at->diffForHumans() }}
{{ $initials }}
@if($log->user_name)
{{ $log->user_name }}
@if($log->user_role) {{ ucfirst($log->user_role) }} @endif @else
Guest
@endif
{{ str_replace('_', ' ', $log->action) }} @if($log->auditable_type)
{{ $log->auditable_label ?? class_basename($log->auditable_type) }} · {{ class_basename($log->auditable_type) }}@if($log->auditable_id) #{{ $log->auditable_id }}@endif
@endif
{{ $log->description ?? '—' }} {{ $log->ip_address ?? '—' }} @if($log->old_values || $log->new_values) @else @endif
No entries found
Try adjusting your filters or wait for activity to be recorded.
{{-- Pagination --}} @if($logs->hasPages())
Showing {{ $logs->firstItem() }}–{{ $logs->lastItem() }} of {{ $logs->total() }}
@if($logs->onFirstPage()) ← Prev @else ← Prev @endif @if($logs->hasMorePages()) Next → @else Next → @endif
@endif
@push('scripts') @endpush {{-- ── DIFF MODAL ───────────────────────────────────────────── --}} @endsection