Added Status Bar for Admins
There are still some minor Bugs to fix, but it works
This commit is contained in:
@@ -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(<p></p>);
|
||||
|
||||
}
|
||||
@@ -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 (
|
||||
<div className={"step-container"}>
|
||||
<div className={"steps"}>
|
||||
|
||||
@@ -110,7 +110,7 @@ export default function SemesterOverview(p) {
|
||||
localStorage.setItem("currentsid", e.id)
|
||||
funcButtonEdit(e, m);
|
||||
}}/>
|
||||
{/*<StatusBar progress={0}/>*/}
|
||||
<StatusBar semester={e} module={null}/>
|
||||
<div style={
|
||||
{
|
||||
display:"flex",
|
||||
|
||||
@@ -68,7 +68,7 @@ export default function SemesteroverviewLecturer(p) {
|
||||
editable={false} text={semesterNames[index]} text2={e.name}
|
||||
onClick={(f) => onClickSemester(e, f, semesterNames[index])}
|
||||
/>
|
||||
<StatusBar progress={0} module={e}/>
|
||||
<StatusBar module={e} semester={null}/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user