|
|
|
|
@@ -1,3 +1,7 @@
|
|
|
|
|
function sleep(ms) {
|
|
|
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function login() {
|
|
|
|
|
// tell the user the app is loading
|
|
|
|
|
document.getElementById("loginSubmit").value = "Loading";
|
|
|
|
|
@@ -30,12 +34,12 @@ async function login() {
|
|
|
|
|
|
|
|
|
|
// store user data in session storage
|
|
|
|
|
let data = await response.json();
|
|
|
|
|
sessionStorage.setItem("uid", data.uid);
|
|
|
|
|
sessionStorage.setItem("name", data.name);
|
|
|
|
|
sessionStorage.setItem("role", data.role);
|
|
|
|
|
localStorage.setItem("uid", data.uid);
|
|
|
|
|
localStorage.setItem("name", data.name);
|
|
|
|
|
localStorage.setItem("role", data.role);
|
|
|
|
|
|
|
|
|
|
// if role is admin, keep auto styling
|
|
|
|
|
if (sessionStorage.getItem("role") !== "admin") {
|
|
|
|
|
if (localStorage.getItem("role") !== "admin") {
|
|
|
|
|
document.getElementById("addButton").setAttribute("style", "display: none;");
|
|
|
|
|
document.getElementById("taskButton").classList.value = "half";
|
|
|
|
|
document.getElementById("historyButton").classList.value = "half";
|
|
|
|
|
@@ -69,7 +73,7 @@ async function populateScreen() {
|
|
|
|
|
|
|
|
|
|
// if it is a user make the tasks add points
|
|
|
|
|
// or if admin make it do nothing
|
|
|
|
|
if (sessionStorage.getItem("role") === "user") {
|
|
|
|
|
if (localStorage.getItem("role") === "user") {
|
|
|
|
|
try {
|
|
|
|
|
for (let i = 0; i < tasks.length; i++) {
|
|
|
|
|
taskPage.innerHTML += `
|
|
|
|
|
@@ -83,7 +87,7 @@ async function populateScreen() {
|
|
|
|
|
} catch (e) {
|
|
|
|
|
taskPage.innerHTML +=`<sub>such empty</sub>`
|
|
|
|
|
}
|
|
|
|
|
} else if (sessionStorage.getItem("role") === "admin") {
|
|
|
|
|
} else if (localStorage.getItem("role") === "admin") {
|
|
|
|
|
try {
|
|
|
|
|
for (let i = 0; i < tasks.length; i++) {
|
|
|
|
|
taskPage.innerHTML += `
|
|
|
|
|
@@ -127,7 +131,7 @@ async function populateScreen() {
|
|
|
|
|
async function completeTask(taskID) {
|
|
|
|
|
let points = document.getElementById(`${taskID}-p`).innerText.split(" ")[0];
|
|
|
|
|
let time = new Date().toISOString().split(".")[0];
|
|
|
|
|
let uid = sessionStorage.getItem("uid");
|
|
|
|
|
let uid = localStorage.getItem("uid");
|
|
|
|
|
await fetch("/completeTask", {
|
|
|
|
|
method: "POST",
|
|
|
|
|
headers: {
|
|
|
|
|
@@ -158,8 +162,8 @@ async function switchScreen(button) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function newTask() {
|
|
|
|
|
let points = document.getElementById(`newTaskPoints`).value;
|
|
|
|
|
let name = document.getElementById(`newTaskName`).value;
|
|
|
|
|
let points = document.getElementById(`newTaskPoints`);
|
|
|
|
|
let name = document.getElementById(`newTaskName`);
|
|
|
|
|
await fetch("/addTask", {
|
|
|
|
|
method: "POST",
|
|
|
|
|
headers: {
|
|
|
|
|
@@ -167,8 +171,30 @@ async function newTask() {
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
tid: 0,
|
|
|
|
|
name: name,
|
|
|
|
|
points: Number(points),
|
|
|
|
|
name: name.value,
|
|
|
|
|
points: Number(points.value),
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
points.value = "";
|
|
|
|
|
name.value = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async function fastLog() {
|
|
|
|
|
sleep(500);
|
|
|
|
|
if (localStorage.getItem("uid") != null && localStorage.getItem("name") != null && localStorage.getItem("role") != null) {
|
|
|
|
|
document.getElementById("login").setAttribute("style", "display: none;");
|
|
|
|
|
document.getElementById("mainPage").setAttribute("style", "");
|
|
|
|
|
if (localStorage.getItem("role") !== "admin") {
|
|
|
|
|
document.getElementById("addButton").setAttribute("style", "display: none;");
|
|
|
|
|
document.getElementById("taskButton").classList.value = "half";
|
|
|
|
|
document.getElementById("historyButton").classList.value = "half";
|
|
|
|
|
document.getElementById("menu").classList.value = "flex two";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await populateScreen();
|
|
|
|
|
} else {
|
|
|
|
|
// do nothing
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fastLog();
|