aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/edit-data.js
diff options
context:
space:
mode:
authorMaksymilian Jopek <maks@jopek.eu>2023-03-26 18:31:50 +0200
committerMaksymilian Jopek <maks@jopek.eu>2023-03-26 18:31:50 +0200
commit5aa7c4f9499135dd12162045e441f5215ee050aa (patch)
tree4f95f9f2daedb0053a0b6a95a8e354d76b3c115d /scripts/edit-data.js
downloadcalendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.tar.gz
calendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.tar.zst
calendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.zip
Full working app
Diffstat (limited to 'scripts/edit-data.js')
-rw-r--r--scripts/edit-data.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/scripts/edit-data.js b/scripts/edit-data.js
new file mode 100644
index 0000000..90b8785
--- /dev/null
+++ b/scripts/edit-data.js
@@ -0,0 +1,62 @@
+"use strict";
+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);
+const ORIG_SRC = IMG.src;
+function showMenu(id, value) {
+ if (value !== -1 && value !== null && value !== undefined)
+ INPUT.value = value.toString();
+ INPUT.dataset.id = id.toString();
+ MENU.style.display = "block";
+}
+async function menuClick(action) {
+ 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;
+ 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() {
+ 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);
+ }
+}