TeaWeb/shared/js/ui/modal/ModalAbout.ts

54 lines
1.9 KiB
TypeScript
Raw Normal View History

2020-03-30 13:44:18 +02:00
import {createModal} from "tc-shared/ui/elements/Modal";
import * as loader from "tc-loader";
import {LogCategory} from "tc-shared/log";
import * as log from "tc-shared/log";
2020-03-30 13:44:18 +02:00
function format_date(date: number) {
const d = new Date(date);
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
return ('00' + d.getDay()).substr(-2) + "." + ('00' + d.getMonth()).substr(-2) + "." + d.getFullYear() + " - " + ('00' + d.getHours()).substr(-2) + ":" + ('00' + d.getMinutes()).substr(-2);
}
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
export function spawnAbout() {
const app_version = (() => {
const version_node = document.getElementById("app_version");
if(!version_node) return undefined;
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
const version = version_node.hasAttribute("value") ? version_node.getAttribute("value") : undefined;
if(!version) return undefined;
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
if(version == "unknown" || version.replace(/0+/, "").length == 0)
return undefined;
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
return version;
})();
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
const connectModal = createModal({
header: tr("About"),
body: () => {
let tag = $("#tmpl_about").renderTag({
client: loader.version().type !== "web",
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
version_client: loader.version().type === "web" ? app_version || "in-dev" : "loading...",
version_ui: app_version || "in-dev",
2019-08-21 10:00:01 +02:00
2020-03-30 13:44:18 +02:00
version_timestamp: !!app_version ? format_date(Date.now()) : "--"
});
2020-03-30 13:44:18 +02:00
return tag;
},
footer: null,
width: "60em"
});
connectModal.htmlTag.find(".modal-body").addClass("modal-about");
connectModal.open();
if(loader.version().type !== "web") {
(window as any).native.client_version().then(version => {
connectModal.htmlTag.find(".version-client").text(version);
}).catch(error => {
log.error(LogCategory.GENERAL, tr("Failed to load client version: %o"), error);
connectModal.htmlTag.find(".version-client").text("unknown");
});
2019-08-21 10:00:01 +02:00
}
}