diff --git a/src/admin/admin.css b/src/admin/admin.css index f4f36f0..2e88fef 100644 --- a/src/admin/admin.css +++ b/src/admin/admin.css @@ -1484,6 +1484,11 @@ img { color: var(--info); } +.admin-badge-danger { + background: var(--danger-soft); + color: var(--danger); +} + /* ============================================================================ Modals ============================================================================ */ @@ -2342,7 +2347,9 @@ img { align-items: center; justify-content: center; gap: 0.75rem; - padding: 0.75rem 0; + padding: 0.75rem 1rem; + margin-top: 0.5rem; + border-top: 1px solid var(--border-color); font-size: 13px; } diff --git a/src/admin/pages/AuditLog.jsx b/src/admin/pages/AuditLog.jsx index 980563c..5c377d9 100644 --- a/src/admin/pages/AuditLog.jsx +++ b/src/admin/pages/AuditLog.jsx @@ -4,6 +4,9 @@ import { useAuth } from '../context/AuthContext' import { useAlert } from '../context/AlertContext' import Forbidden from '../components/Forbidden' import Pagination from '../components/Pagination' +import FormField from '../components/FormField' +import AdminDatePicker from '../components/AdminDatePicker' +import { czechPlural } from '../utils/formatters' import apiFetch from '../utils/api' const API_BASE = '/api/admin' @@ -26,16 +29,16 @@ const ACTION_LABELS = { const ACTION_BADGE_CLASS = { create: 'admin-badge-success', update: 'admin-badge-info', - delete: 'admin-badge-warning', + delete: 'admin-badge-danger', login: 'admin-badge-secondary', - login_failed: 'admin-badge-warning', + login_failed: 'admin-badge-danger', logout: 'admin-badge-secondary', view: 'admin-badge-info', activate: 'admin-badge-success', deactivate: 'admin-badge-warning', password_change: 'admin-badge-info', - permission_change: 'admin-badge-info', - access_denied: 'admin-badge-warning', + permission_change: 'admin-badge-warning', + access_denied: 'admin-badge-danger', } const ENTITY_TYPE_LABELS = { @@ -143,86 +146,125 @@ export default function AuditLog() { return new Date(dateString).toLocaleString('cs-CZ') } - const renderSkeletonRows = () => ( - Array.from({ length: 10 }, (_, i) => ( -
+ {pagination.total} {czechPlural(pagination.total, 'záznam', 'záznamy', 'záznamů')} +
+ )} +| + | + | + | + | + | + | ||||||
| - Žádné záznamy k zobrazení + |
+
+
+
+
+ Žádné záznamy k zobrazení + |
||||||||||
| {formatDatetime(log.created_at)} | +{formatDatetime(log.created_at)} | {log.username || '-'} | @@ -267,7 +328,7 @@ export default function AuditLog() { onPageChange={handlePageChange} onPerPageChange={handlePerPageChange} /> - - + + ) } | ||||||||