Files
xTeVe/ts/logs_ts.ts
Nathan Coad ffd43d5217
All checks were successful
continuous-integration/drone/push Build is passing
Enhance log display behavior and menu state management
2026-02-11 14:37:02 +11:00

74 lines
1.3 KiB
TypeScript

class Log {
createLog(entry:string):any {
var element = document.createElement("PRE");
if (entry.indexOf("WARNING") != -1) {
element.className = "warningMsg"
}
if (entry.indexOf("ERROR") != -1) {
element.className = "errorMsg"
}
if (entry.indexOf("DEBUG") != -1) {
element.className = "debugMsg"
}
element.innerHTML = entry
return element
}
}
function showLogs(bottom:boolean) {
var log = new Log()
var logs = SERVER["log"]["log"]
var div = document.getElementById("content_log")
var wrapper = document.getElementById("box-wrapper") as HTMLElement
var shouldStickToBottom:boolean = bottom
div.innerHTML = ""
if (wrapper != null && shouldStickToBottom == false) {
var distanceToBottom:number = wrapper.scrollHeight - wrapper.scrollTop - wrapper.clientHeight
if (distanceToBottom < 80) {
shouldStickToBottom = true
}
}
var keys = getObjKeys(logs)
keys.forEach(logID => {
var entry = log.createLog(logs[logID])
div.append(entry)
});
setTimeout(function(){
if (shouldStickToBottom == true && wrapper != null) {
wrapper.scrollTop = wrapper.scrollHeight;
}
}, 10);
}
function resetLogs() {
var cmd = "resetLogs"
var data = new Object()
var server:Server = new Server(cmd)
server.request(data)
}