GeoNetAgent, LDAPWeb, server-audit, server-connection
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

43 lines
2.5 KiB

<div class="bg-slate-900 border border-slate-800 rounded-2xl overflow-hidden flex flex-col list-panel">
<div class="list-panel__toolbar p-4 border-b border-slate-800">
<h2 class="text-lg font-semibold text-white">Activity Log</h2>
<p class="text-slate-400 text-sm mt-1">Aksi terkait akun ini dari audit log</p>
</div>
@if ($activityError ?? null)
<div class="p-4 text-amber-300 text-sm">{{ $activityError }}</div>
@endif
<div class="list-panel__scroll">
<table class="min-w-full text-sm list-table">
<thead class="text-slate-300">
<tr>
<th class="px-4 py-3 text-left bg-slate-800 border-b border-slate-700">Time</th>
<th class="px-4 py-3 text-left bg-slate-800 border-b border-slate-700">Action</th>
<th class="px-4 py-3 text-left bg-slate-800 border-b border-slate-700">IP</th>
<th class="px-4 py-3 text-left bg-slate-800 border-b border-slate-700">Detail</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-800">
@forelse ($activityLogs as $log)
<tr class="hover:bg-slate-800/40">
<td class="px-4 py-3 text-slate-400 whitespace-nowrap text-xs">{{ $log->occurred_at?->format('Y-m-d H:i:s') }}</td>
<td class="px-4 py-3 text-slate-300 text-xs">{{ $log->action }}</td>
<td class="px-4 py-3 whitespace-nowrap">
@if ($log->ip_address)
<span class="font-mono text-xs text-white">{{ $log->ip_address }}</span>
@php $scope = $log->metadata['ip_scope'] ?? null; @endphp
@if ($scope)
<span class="text-xs text-slate-500">({{ $scope === 'public' ? 'Publik' : ($scope === 'private' ? 'Lokal' : $scope) }})</span>
@endif
@else
<span class="text-slate-500"></span>
@endif
</td>
<td class="px-4 py-3 text-slate-400 text-xs max-w-xs truncate">{{ $log->resource ?? $log->path ?? '—' }}</td>
</tr>
@empty
<tr><td colspan="4" class="px-4 py-8 text-center text-slate-400">No activity recorded yet.</td></tr>
@endforelse
</tbody>
</table>
</div>
</div>