hibiscus/public/requests.js

104 lines
2.9 KiB
JavaScript
Raw Normal View History

2024-03-18 15:01:09 +03:00
async function postData(url = "", data = "") {
const response = await fetch(url, {
method: "POST",
credentials: "same-origin",
headers: {
"Content-Type": "text/plain",
},
redirect: "follow",
referrerPolicy: "no-referrer",
body: data,
});
2024-03-27 11:51:33 +03:00
return response
2024-03-18 15:01:09 +03:00
}
async function getData(url = "", data = "") {
const response = await fetch(url, {
method: "GET",
credentials: "same-origin",
redirect: "follow",
referrerPolicy: "no-referrer"
});
if (response.ok) {
return response.text();
} else {
console.log(response.text())
return response.status
// return "Error"
}
}
function saveLog() {
let logField = document.getElementById("log")
postData("/api/log", logField.value).then((data) => {
2024-03-27 11:51:33 +03:00
if (data.ok) {
2024-03-18 15:01:09 +03:00
logField.value = ""
}
});
}
function saveToday() {
let logField = document.getElementById("day")
postData("/api/today", logField.value).then((data) => {
2024-03-27 11:51:33 +03:00
if (!data.ok) {
alert(`Error saving: ${data.text()}`)
}
2024-03-18 15:01:09 +03:00
});
}
function loadToday() {
let dayField = document.getElementById("day")
getData("/api/today", dayField.value).then((data) => {
if (data === 404) {
dayField.value = ""
} else if (data === 401) {
2024-03-27 11:51:33 +03:00
dayField.readOnly = true
2024-03-18 15:01:09 +03:00
dayField.value = "Unauthorized"
} else if (data === 500) {
2024-03-27 11:51:33 +03:00
dayField.readOnly = true
2024-03-18 15:01:09 +03:00
dayField.value = "Internal server error"
} else {
dayField.value = data
}
});
2024-03-26 14:32:19 +03:00
}
function loadPrevious() {
let daysField = document.getElementById("days")
daysField.innerHTML = ""
getData("/api/day", "").then((data) => {
if (data === 401) {
alert("Unauthorized")
} else if (data === 500) {
alert("Internal server error")
} else {
data = JSON.parse(data).reverse() // Reverse: latest days first
for (let i in data) {
let li = document.createElement("li");
2024-03-27 11:51:33 +03:00
li.innerHTML = `<a href="/day?d=${data[i]}">${formatDate(data[i])}</a>` // Parse to human-readable
2024-03-26 14:32:19 +03:00
daysField.appendChild(li);
}
}
});
2024-03-27 11:51:33 +03:00
}
function loadDay() {
const urlParams = new URLSearchParams(window.location.search);
const day = urlParams.get('d');
let dayTag = document.getElementById("daytag")
dayTag.innerText = formatDate(day)
let dayField = document.getElementById("day")
getData("/api/day/" + day, "").then((data) => {
if (data === 404) {
dayField.value = ""
} else if (data === 401) {
dayField.value = "Unauthorized"
} else if (data === 500) {
dayField.value = "Internal server error"
} else {
dayField.value = data
}
});
dayField.readOnly = true
2024-03-18 15:01:09 +03:00
}