74 lines
2.3 KiB
TypeScript
74 lines
2.3 KiB
TypeScript
import { Controller } from "./main";
|
|
|
|
export class TimeView {
|
|
esp_time: HTMLDivElement
|
|
rtc_time: HTMLDivElement
|
|
browser_time: HTMLDivElement
|
|
sync: HTMLButtonElement
|
|
auto_refresh: HTMLInputElement;
|
|
controller: Controller;
|
|
timer: NodeJS.Timeout | undefined;
|
|
timezoneSelect: HTMLSelectElement;
|
|
|
|
constructor(controller:Controller) {
|
|
(document.getElementById("timeview") as HTMLElement).innerHTML = require("./timeview.html")
|
|
this.timezoneSelect = document.getElementById('timezone_select') as HTMLSelectElement;
|
|
this.timezoneSelect.onchange = function(){
|
|
controller.configChanged()
|
|
}
|
|
|
|
this.auto_refresh = document.getElementById("timeview_auto_refresh") as HTMLInputElement;
|
|
this.esp_time = document.getElementById("timeview_esp_time") as HTMLDivElement;
|
|
this.rtc_time = document.getElementById("timeview_rtc_time") as HTMLDivElement;
|
|
this.browser_time = document.getElementById("timeview_browser_time") as HTMLDivElement;
|
|
this.sync = document.getElementById("timeview_time_upload") as HTMLButtonElement;
|
|
this.sync.onclick = controller.syncRTCFromBrowser;
|
|
this.controller = controller;
|
|
|
|
this.auto_refresh.onchange = () => {
|
|
if(this.timer){
|
|
clearTimeout(this.timer)
|
|
}
|
|
if(this.auto_refresh.checked){
|
|
controller.updateRTCData()
|
|
}
|
|
}
|
|
}
|
|
|
|
update(native: string, rtc: string) {
|
|
this.esp_time.innerText = native;
|
|
this.rtc_time.innerText = rtc;
|
|
var date = new Date();
|
|
this.browser_time.innerText = date.toISOString();
|
|
if(this.auto_refresh.checked){
|
|
this.timer = setTimeout(this.controller.updateRTCData, 1000);
|
|
} else {
|
|
if(this.timer){
|
|
clearTimeout(this.timer)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
timezones(timezones: string[]) {
|
|
timezones.forEach(tz => {
|
|
const option = document.createElement('option');
|
|
option.value = tz;
|
|
option.textContent = tz;
|
|
this.timezoneSelect.appendChild(option);
|
|
});
|
|
|
|
}
|
|
|
|
getTimeZone() {
|
|
return this.timezoneSelect.value;
|
|
}
|
|
|
|
setTimeZone(timezone: string | undefined) {
|
|
if (timezone != undefined) {
|
|
this.timezoneSelect.value = timezone;
|
|
} else {
|
|
this.timezoneSelect.value = "UTC";
|
|
}
|
|
}
|
|
} |