blob: 3dcacac881dade389a9be72bbc64d480112dde66 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
document.body.onkeydown = e => {
if (e.key === "Escape") {
INPUT.value = "";
INPUT.dataset.id = "";
MENU.style.display = "none";
}
}
const MENU = document.getElementsByTagName("div")[0];
const INPUT = document.getElementsByTagName("input")[0];
const IMG = document.getElementsByTagName("img")[0];
const MAP = document.getElementsByTagName("map")[0];
const ERR = document.getElementsByTagName("div")[1];
const Y_DATA = JSON.parse(document.getElementsByTagName("span")[0].innerHTML) as Array<number>;
const ORIG_SRC = IMG.src;
function showMenu(id: number, value?: number): void {
if (value !== -1 && value !== null && value !== undefined)
INPUT.value = value.toString();
INPUT.dataset.id = id.toString();
MENU.style.display = "block";
}
async function menuClick(action: string): Promise<void> {
if (action !== "cancel" && (parseFloat(INPUT.value) < Y_DATA[0] || parseFloat(INPUT.value) > Y_DATA[Y_DATA.length - 1])) {
ERR.innerHTML = "Too small or to big number";
return;
}
if (action !== "cancel") {
let data: number | null;
if (action === "save")
data = parseFloat(INPUT.value);
else if (action === "condition")
data = -1;
else if (action === "null")
data = null;
else
throw new Error("New chart data has unknown type");
await fetch("/php/save-data.php", {
method: "POST",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
},
body: JSON.stringify({ data, id: INPUT.dataset.id }),
});
// IMG.src = `${IMG.src.split('?')[0]}?${Date.now()}`;
IMG.src = ORIG_SRC + "cache=" + Date.now()
setNewImgMap();
}
INPUT.value = "";
INPUT.dataset.id = "";
MENU.style.display = "none";
}
async function setNewImgMap(): Promise<void> {
MAP.innerHTML = await (await fetch("/php/get-img-map.php")).text();
}
function input() {
const v = INPUT.value;
if (!/[\d\.]/.test(v[v.length - 1]) || v.split('.').length > 2) {
console.log(2);
INPUT.value = v.substr(0, v.length - 1);
}
}
|