feat: enhance firewall log timestamp display with formatted and relative time

This commit is contained in:
2025-12-04 22:27:27 -05:00
parent 54cec2e302
commit f845d20c05

View File

@@ -850,7 +850,54 @@
<tbody>
@foreach($this->paginatedLogs as $log)
<tr class="border-b border-neutral/10 hover:bg-background-secondary/30 transition-colors">
<td class="py-3 px-4 text-xs text-base/70">{{ $log['timestamp_display'] ?? $log['timestamp'] ?? '-' }}</td>
<td class="py-3 px-4 text-xs text-base/70">
@if(isset($log['timestamp_iso']) && $log['timestamp_iso'] !== '-')
<div x-data="{
timestamp: '{{ $log['timestamp_iso'] }}',
formatTime() {
try {
const date = new Date(this.timestamp);
if (isNaN(date.getTime())) return '{{ $log['timestamp'] }}';
return date.toLocaleString('en-US', {
month: 'short',
day: '2-digit',
year: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
hour12: false
});
} catch(e) {
return '{{ $log['timestamp'] }}';
}
},
getRelativeTime() {
try {
const date = new Date(this.timestamp);
if (isNaN(date.getTime())) return '';
const now = new Date();
const diffMs = now - date;
const diffSec = Math.floor(diffMs / 1000);
const diffMin = Math.floor(diffSec / 60);
const diffHour = Math.floor(diffMin / 60);
const diffDay = Math.floor(diffHour / 24);
if (diffSec < 60) return diffSec + ' seconds ago';
if (diffMin < 60) return diffMin + ' minute' + (diffMin !== 1 ? 's' : '') + ' ago';
if (diffHour < 24) return diffHour + ' hour' + (diffHour !== 1 ? 's' : '') + ' ago';
return diffDay + ' day' + (diffDay !== 1 ? 's' : '') + ' ago';
} catch(e) {
return '';
}
}
}"
class="cursor-help"
:title="getRelativeTime()"
x-text="formatTime()"></div>
@else
{{ $log['timestamp_display'] ?? $log['timestamp'] ?? '-' }}
@endif
</td>
<td class="py-3 px-4 text-sm">
<span class="px-2 py-1 rounded text-xs font-medium {{ $log['level_badge_class'] ?? '' }}">
{{ $log['action'] ?? '-' }}