async function renderAudit() {
const content = document.getElementById('pageContent');
content.innerHTML = `
`;
await refreshAudit();
}
let _allAuditEntries = [];
async function refreshAudit() {
const container = document.getElementById('auditTable');
container.innerHTML = '';
try {
const r = await api.getAudit(200);
_allAuditEntries = r.entries || [];
applyAuditFilter();
} catch (err) {
container.innerHTML = `âš
${escapeHtml(err.message)}
`;
}
}
function applyAuditFilter() {
const q = (document.getElementById('auditFilter').value || '').toLowerCase();
const action = document.getElementById('auditActionFilter').value;
let filtered = _allAuditEntries;
if (q) filtered = filtered.filter(e => JSON.stringify(e).toLowerCase().includes(q));
if (action) filtered = filtered.filter(e => e.action === action);
const container = document.getElementById('auditTable');
if (filtered.length === 0) {
container.innerHTML = 'ðŸ“
No audit entries found
';
return;
}
container.innerHTML = `
| Time | Action | Details | ID |
${filtered.slice(0, 100).map(e => `
| ${formatDate(e.timestamp)} |
${e.action} |
${e.skill ? `${e.skill}` : ''}${e.file ? `File: ${e.file}` : ''}${e.job ? `Job: ${e.job}` : ''}${e.plugin ? `Plugin: ${e.plugin}` : ''} |
${e.id || ''} |
`).join('')}
${filtered.length > 100 ? 'Showing 100 of ' : ''}${filtered.length} entries
`;
}
function clearAuditFilters() {
document.getElementById('auditFilter').value = '';
document.getElementById('auditActionFilter').value = '';
applyAuditFilter();
}