Files
libra/docs/tasks/6-10.md
T
Naser Mansour 7f35297025 Mark all libra tasks Done — confirmed live in production ~1 year
Naser confirmed all remaining QA Review / Draft rows (97 subtasks, 16
parent rollups) are done in substance: the site has been in production
for roughly a year. Overrides the conservative QA-Review/Draft mapping
from the prior takeover commit (0f9d12c) at his explicit instruction.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-27 22:04:04 +03:00

35 lines
1.5 KiB
Markdown

---
id: 6-10
title: 6-10 Audit Log Viewer
status: Done
date: 2026-09-27
parent: 6
---
## Description
As an admin, I want to view admin action history, So that I can maintain accountability and track changes. - resources/views/livewire/admin/audit-logs.blade.php - Main Volt component - app/Models/AdminLog.php - Eloquent model (if not already created in Story 1.1) - routes/web.php - Add admin route (or admin routes file) - lang/ar/audit.php - Arabic translations - lang/en/audit.php - English translations. Full implementation history: docs/stories/story-6.10-audit-log-viewer.md
## Acceptance Criteria
- [ ] Paginated table of audit log entries (25 per page)
- [ ] Each row displays:
- [ ] Filter by action type (dropdown with available actions)
- [ ] Filter by target type (dropdown with available targets)
- [ ] Filter by date range (date pickers for from/to)
- [ ] Filters apply without page reload (Livewire)
- [ ] Reset filters button
- [ ] Search by target ID (exact match)
- [ ] Search updates results in real-time with debounce
- [ ] Modal displays full log entry details
- [ ] Shows old values in readable format (JSON pretty-printed)
- [ ] Shows new values in readable format
- [ ] Highlights differences between old/new for updates
- [ ] Bilingual labels
- [ ] Export current filtered results to CSV
- [ ] CSV includes all displayed columns
- [ ] CSV filename includes export date
- [ ] Bilingual column headers based on admin's language preference
- [ ] Friendly message when no logs exist
- [ ] Friendly message when filters return no results