diff --git a/anwendung/src/components/HourCounter.jsx b/anwendung/src/components/HourCounter.jsx index e3c5619..bf00f75 100644 --- a/anwendung/src/components/HourCounter.jsx +++ b/anwendung/src/components/HourCounter.jsx @@ -3,17 +3,18 @@ import {baseURL} from "@/components/Constants"; export default function HourCounter(){ function countTimePlanned(){ - const entryurl = baseURL + "/entries/planned?sessionid=" + localStorage.getItem("sessionid"); - const moduleid = localStorage.getItem("moduleid") + const entryurl = baseURL + "/entries/module?moduleid=" + localStorage.getItem("moduleid") + "&sessionid=" + localStorage.getItem("sessionid"); let hoursPlanned = 0 fetch(entryurl).then(response => response.json()).then(entries => { entries.forEach(e => { - hoursPlanned += e.timeend - e.timestart + hoursPlanned += (e.timeend - e.timestart)/4; }) }) } console.log(20-countTimePlanned()); + return(
); + } \ No newline at end of file diff --git a/anwendung/src/components/StatusBar.jsx b/anwendung/src/components/StatusBar.jsx index 12415a2..4c492ed 100644 --- a/anwendung/src/components/StatusBar.jsx +++ b/anwendung/src/components/StatusBar.jsx @@ -1,38 +1,131 @@ -import React, { useState, useEffect } from "react"; +import React, {useState, useEffect} from "react"; import { baseURL } from "@/components/Constants"; export default function StatusBar(p) { - const module = p.module; const [index, setIndex] = useState(-1); + if (p.module != null){ + const module = p.module; - useEffect(() => { - const url = baseURL + "/entries/planned?sessionid=" + localStorage.getItem("sessionid"); - fetch(url) - .then((response) => response.json()) - .then((entries) => { - let newIndex = -1; - if (entries !== null) { - entries.forEach((e) => { - if (e.moduleid == module.id) { - if (module.activated == 0) { + useEffect(() => { + const url = baseURL + "/entries/planned?sessionid=" + localStorage.getItem("sessionid"); + fetch(url) + .then((response) => response.json()) + .then((entries) => { + let newIndex = -1; + if (entries !== null) { + entries.forEach((e) => { + if (e.moduleid == module.id) { + if (module.activated == 0) { + newIndex = 2; + } else { + if(newIndex < 1) { + newIndex = 1; + } + } + } + }); + if (newIndex === -1) { + newIndex = 0; + } + } + setIndex(newIndex); + }); + }, [module.id, module.activated]); + + } + else if(p.semester != null){ + const semester = p.semester; + // const [newIndex, setNewIndex] = useState(-1) + const url = baseURL + "/entries/semester?semesterid=" + semester.id + "&sessionid=" + localStorage.getItem("sessionid"); + const moduleurl = baseURL + "/module/bysemesterid?sessionid=" + localStorage.getItem("sessionid") + "&semesterid=" + localStorage.getItem("currentsid"); + + useEffect(() => { + + fetch(url) + .then((response) => response.json()) + .then((entries) => { + // let newIndex = -1 + if (entries !== null) { + const moduleurl = baseURL + "/module/bysemesterid?sessionid=" + localStorage.getItem("sessionid") + "&semesterid=" + localStorage.getItem("currentsid"); + fetch(moduleurl).then(response => response.json()).then(modules => { + // let newIndex = -1 + let modulesWithEntries = []; + let isSubmitted = true; + modules.forEach(m => { + entries.forEach(e => { + if (e.moduleid === m.id) { + if (!modulesWithEntries.includes(m)) { + modulesWithEntries.push(m) + } + } + if (m.activated === 1) { + isSubmitted = false; + } + }) + }) + + // entries.forEach(e => { + // + // const moduleurl = baseURL + "/module/bysemesterid?sessionid=" + localStorage.getItem("sessionid") + "&semesterid=" + localStorage.getItem("currentsid"); + // fetch(moduleurl).then(response => response.json()).then(modules => { + // // let newIndex = -1 + // let modulesWithEntries = []; + // let isSubmitted = true; + // modules.forEach(m => { + // if (e.moduleid === m.id){ + // if (!modulesWithEntries.includes(m)) { + // modulesWithEntries.push(m) + // } + // } + // if (m.activated === 1){ + // isSubmitted = false; + // } + // }) + // // const modulesWithoutEntries = modules.filter(element => !modulesWithEntries.includes(element)); + // // console.log(modulesWithoutEntries); + // // if (modulesWithoutEntries.length === 0 && isSubmitted){ + // // newIndex = 2; + // // console.log("newIndex: "+2) + // // } + // // else if(modulesWithEntries.length !== 0 && newIndex < 1 && newIndex <= -1){ + // // newIndex = 1; + // // } + // // + // // if (newIndex == -1) { + // // newIndex = 0; + // // } + // // + // // setIndex(newIndex); + // }) + // }); + let newIndex = -1 + const modulesWithoutEntries = modules.filter(element => !modulesWithEntries.includes(element)); + console.log(modulesWithoutEntries); + if (modulesWithoutEntries.length === 0 && isSubmitted) { newIndex = 2; - } else { + console.log("newIndex: " + 2) + } else if (modulesWithEntries.length !== 0 && newIndex < 1 && newIndex <= -1) { newIndex = 1; } - } - }); - if (newIndex === -1) { - newIndex = 0; + + if (newIndex == -1) { + newIndex = 0; + } + + setIndex(newIndex); + }); } - } - setIndex(newIndex); - }); - }, [module.id, module.activated]); + + }); + }, [semester.id, semester.activated]); + + } let classNames = ["not-started", "started", "finished"]; let actives = ["", "", ""]; actives[index] = "active"; + return (