46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import { Controller } from "./main";
|
|
import {LogArray, LogLocalisation} from "./api";
|
|
|
|
export class LogView {
|
|
private readonly logpanel: HTMLElement;
|
|
private readonly loadLog: HTMLButtonElement;
|
|
loglocale: LogLocalisation | undefined;
|
|
|
|
constructor(controller: Controller) {
|
|
(document.getElementById("logview") as HTMLElement).innerHTML = require('./log.html') as string;
|
|
this.logpanel = document.getElementById("logpanel") as HTMLElement
|
|
this.loadLog = document.getElementById("loadLog") as HTMLButtonElement
|
|
|
|
this.loadLog.onclick = () => {
|
|
controller.loadLog();
|
|
}
|
|
}
|
|
|
|
setLogLocalisation(loglocale: LogLocalisation) {
|
|
this.loglocale = loglocale;
|
|
}
|
|
|
|
setLog(logs: LogArray) {
|
|
this.logpanel.textContent = ""
|
|
logs.forEach(entry => {
|
|
let message = this.loglocale!![entry.message_id];
|
|
let template = message.message
|
|
template = template.replace("${number_a}", entry.a.toString());
|
|
template = template.replace("${number_b}", entry.b.toString());
|
|
template = template.replace("${txt_short}", entry.txt_short.toString());
|
|
template = template.replace("${txt_long}", entry.txt_long.toString());
|
|
|
|
let ts = new Date(entry.timestamp);
|
|
|
|
let div = document.createElement("div")
|
|
let timestampDiv = document.createElement("div")
|
|
let messageDiv = document.createElement("div")
|
|
timestampDiv.innerText = ts.toISOString();
|
|
messageDiv.innerText = template;
|
|
div.appendChild(timestampDiv)
|
|
div.appendChild(messageDiv)
|
|
this.logpanel.appendChild(div)
|
|
}
|
|
)
|
|
}
|
|
} |