search
@if (filterEntity || filterAction || searchText) { } {{ totalElements }} entries
@if (loading) {

Loading audit log...

} @else if (logs.length === 0) {
history

No audit entries found.

} @else {
@for (log of logs; track log.id) {
{{ actionMeta(log.action).icon }}
{{ actionMeta(log.action).label }} {{ log.entityType }} @if (log.entityId) { #{{ log.entityId }} }
{{ log.createdAt }} {{ expandedId === log.id ? 'expand_less' : 'expand_more' }}

{{ log.description }}

@if (log.performedByName) { person{{ log.performedByName }} } @if (log.ipAddress) { computer{{ log.ipAddress }} } @if (log.officeId) { businessOffice #{{ log.officeId }} }
@if (expandedId === log.id && log.details) {
Details @if (isArrayDetails(log.details)) { @if (isWinnerArray(log.details)) { @for (row of voteEntries(log.details); track $index) { }
Post Winner Votes
{{ row.post }} {{ row.winner }} {{ row.votes }}
} @else { @if (hasVoteEdits(log.details)) { } @for (row of voteEntries(log.details); track $index) { @if (hasVoteEdits(log.details)) { } }
Candidate Post VotesPrevious
{{ row.candidate }} {{ row.post }} {{ row.votes }}{{ row.previousVotes ?? '—' }}
} } @else if (detailsEntries(log.details).length > 0) {
@for (entry of detailsEntries(log.details); track entry.key) {
{{ entry.label }} {{ formatValue(entry) }}
}
} @else {
{{ parsedDetails(log.details) }}
}
}
}
@if (totalPages > 1) {
@if (totalElements === 0) { No entries } @else { Showing {{ startItem }}–{{ endItem }} of {{ totalElements }} }
@for (p of pageNumbers; track p) { }
} }