in webui/js/source/mgmt.js [326:392]
function admin_audit_view(state, json) {
let headers = ['Date', 'Author', 'Remote', 'Action', 'Target', 'Log'];
let cp = document.getElementById("panel");
let div = document.getElementById('auditlog_entries');
if (!div) {
div = new HTML('div', {
id: "auditlog",
style: {
margin: '5px'
}
});
cp.inject(div);
div.inject(new HTML('h1', {}, "Audit log:"));
}
let table = document.getElementById('auditlog_entries');
if (json.entries && json.entries.length > 0 || table) {
if (!table) {
table = new HTML('table', {
border: "1",
id: "auditlog_entries",
class: "auditlog_entries"
});
let trh = new HTML('tr');
for (let header of headers) {
let th = new HTML('th', {}, header + ":");
trh.inject(th);
}
table.inject(trh)
div.inject(table);
let btn = new HTML('button', {
onclick: "admin_audit_next();"
}, "Load more entries");
div.inject(btn);
}
for (let entry of json.entries) {
let tr = new HTML('tr', {
class: "auditlog_entry"
});
for (let header of headers) {
let key = header.toLowerCase();
let value = entry[key];
if (key == 'target') {
value = new HTML('a', {
href: "/admin/" + value
}, value);
}
if (key == 'action') {
let action_colors = {
edit: 'blue',
delete: 'red',
default: 'black'
};
value = new HTML('spam', {
style: {
color: action_colors[value] ? action_colors[value] : action_colors['default']
}
}, value);
}
let th = new HTML('td', {}, value);
tr.inject(th);
}
table.inject(tr);
}
} else {
div.inject("Audit log is empty");
}
}