blob: 8af8d5530d61ebc1935d2d6124ad9f9e7a97ffac [file] [log] [blame]
function list_activity(state, json) {
let obj = document.getElementById('activity');
obj.innerHTML = ''; // clear object
if (json.activity && json.activity.length > 0) {
json.activity = json.activity.sort((a,b) => b.epoch - a.epoch);
let div = _div();
div.inject(_hr());
let wheader = _h3({class:'subtitle'},"Activity log entries (%u):".format(json.activity.length));
div.inject(wheader);
let tbl = new HTML('table', { style: {fontSize: '0.8rem'}});
let tbh = new HTML('thead');
let tbody = new HTML('tbody');
tbh.inject(new HTML('tr', {}, [
new HTML('th', 'Type'),
new HTML('th', {style: {width: '110px'}},'Added'),
new HTML('th', 'Text'),
]));
tbl.inject(tbh);
div.inject(tbl);
for (var i = 0; i < json.activity.length; i++) {
let res = json.activity[i];
let when = 'Never';
if (res.epoch) {
when = moment(res.epoch*1000.0).fromNow();
}
res.text = res.text.replace(/\b([a-f0-9]{8})[a-f0-9]{32}\b/g, (a, b) => b + "..");
let tr = new HTML('tr', {}, [
new HTML('td', {}, _kbd(res.ntype)),
new HTML('td', moment(res.epoch*1000.0).fromNow()),
new HTML('td', res.text)
]);
tbody.inject(tr);
}
tbl.inject(tbody);
obj.inject(div);
}
}
function init_activity(source) {
let obj = document.getElementById('activity');
obj.innerText = "Fetching activity, hang on...";
GET('./api/activity', list_activity, manage_error, {});
}