diff --git a/components/settings/OrganizationSettings.tsx b/components/settings/OrganizationSettings.tsx index 7989164..e864dcd 100644 --- a/components/settings/OrganizationSettings.tsx +++ b/components/settings/OrganizationSettings.tsx @@ -86,6 +86,7 @@ export default function OrganizationSettings() { const [auditPage, setAuditPage] = useState(0) const auditPageSize = 20 const [auditActionFilter, setAuditActionFilter] = useState('') + const [auditLogIdFilter, setAuditLogIdFilter] = useState('') const [auditStartDate, setAuditStartDate] = useState('') const [auditEndDate, setAuditEndDate] = useState('') @@ -174,6 +175,7 @@ export default function OrganizationSettings() { offset: auditPage * auditPageSize, } if (auditActionFilter) params.action = auditActionFilter + if (auditLogIdFilter) params.log_id = auditLogIdFilter if (auditStartDate) params.start_date = auditStartDate if (auditEndDate) params.end_date = auditEndDate const { entries, total } = await getAuditLog(params) @@ -185,7 +187,7 @@ export default function OrganizationSettings() { } finally { setIsLoadingAudit(false) } - }, [currentOrgId, auditPage, auditActionFilter, auditStartDate, auditEndDate]) + }, [currentOrgId, auditPage, auditActionFilter, auditLogIdFilter, auditStartDate, auditEndDate]) useEffect(() => { if (activeTab === 'audit' && currentOrgId) { @@ -793,46 +795,63 @@ export default function OrganizationSettings() {

Who did what and when for this organization.

- {/* Filters */} -
-
- - setAuditActionFilter(e.target.value)} - className="w-40 px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white" - /> + {/* Advanced Filters */} +
+
+
+ + setAuditLogIdFilter(e.target.value)} + className="w-full px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white focus:ring-2 focus:ring-brand-orange outline-none transition-all" + /> +
+
+ + setAuditActionFilter(e.target.value)} + className="w-full px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white focus:ring-2 focus:ring-brand-orange outline-none transition-all" + /> +
+
+ + setAuditStartDate(e.target.value)} + className="w-full px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white focus:ring-2 focus:ring-brand-orange outline-none transition-all" + /> +
+
+ + setAuditEndDate(e.target.value)} + className="w-full px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white focus:ring-2 focus:ring-brand-orange outline-none transition-all" + /> +
-
- - setAuditStartDate(e.target.value)} - className="px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white" - /> +
+
-
- - setAuditEndDate(e.target.value)} - className="px-3 py-2 rounded-lg border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 text-sm text-neutral-900 dark:text-white" - /> -
-
{/* Table */} @@ -854,7 +873,6 @@ export default function OrganizationSettings() { Actor Action Resource - Resource ID @@ -871,7 +889,6 @@ export default function OrganizationSettings() { {entry.action} {entry.resource_type} - {entry.resource_id || '—'} ))} diff --git a/lib/api/audit.ts b/lib/api/audit.ts index cbb27fc..2dd76e8 100644 --- a/lib/api/audit.ts +++ b/lib/api/audit.ts @@ -20,6 +20,7 @@ export interface GetAuditLogParams { limit?: number offset?: number action?: string + log_id?: string start_date?: string end_date?: string } @@ -63,6 +64,7 @@ export async function getAuditLog(params: GetAuditLogParams = {}): Promise