Lecturer Dashboard Finished Version

This commit is contained in:
AliGitGut
2023-05-29 23:32:29 +02:00
parent dc708392c8
commit a0d6d15099
3 changed files with 61 additions and 38 deletions
+12 -2
View File
@@ -5,6 +5,11 @@ import {deleteItem, editItem} from "@/components/Icons";
export default function SemesterTile(p)
{
let editable = true;
if (p.editable != null)
{
editable = p.editable
}
useEffect(() =>
{
window.addEventListener("contextmenu", (e) => (e.preventDefault()))
@@ -12,10 +17,15 @@ export default function SemesterTile(p)
return (
<div onClick={(e) => p.onClick(e)} className={"semester-tile box-shadow"}>
<p>{p.text}</p>
<p style={{
lineHeight: "80%"
}}>{p.text}</p>
<p style={{
lineHeight: "80%"
}}>{p.text2}</p>
<StatusBar progress={0}/>
<div style={{
display: "flex",
display: editable ? "flex" : "none",
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
+29 -36
View File
@@ -7,67 +7,60 @@ import PopUp from "@/components/PopUp";
import Background from "@/components/Background";
import Logout from "@/components/Logout";
export default function SemesteroverviewLecturer(p)
{
async function getSemesters()
{
export default function SemesteroverviewLecturer(p) {
function getModules() {
let urlTest = "http://localhost:8080/module/id?sessionid=" + localStorage.getItem("sessionid");
await fetch(urlTest).then(response => response.json()).then(s => {
setEntries(s)
fetch(urlTest).then(response => response.json()).then(m => {
setEntries(m);
let args = "";
for(let i = 0; i < m.length; i++)
{
args += m[i].semesterid;
if(i < m.length - 1)
{
args += "a";
}
}
let temp = []
let semesterURL = "http://localhost:8080/semester/id/all?ids=" + args + "&sessionid=" + localStorage.getItem("sessionid");
fetch(semesterURL).then(r => r.json()).then(sem => {
sem.map(e => {
temp.push(e.name)
})
}).then(() => setSemesterNames(temp))
})
}
function onClickSemester(e, m)
{
if(m.target === m.currentTarget)
{
function onClickSemester(e, m) {
if (m.target === m.currentTarget) {
localStorage.setItem("currentsid", e.id)
router.push("/planning")
}
}
async function getSemesternameById(id){
let urlname = "http://localhost:8080/semester/id?id=" + id + "&sessionid=" + localStorage.getItem("sessionid")
let name= "";
const response = await fetch(urlname);
const data = await response.json();
return data.name;
}
useEffect(() => {
getSemesters();
}, [])
useEffect(() => {
async function fetchSemesterNames() {
let names = await Promise.all(
entries.map((e) => getSemesternameById(e.semesterid))
)
setSemesterNames(names);
}
fetchSemesterNames();
getModules();
}, [])
const [entries, setEntries] = useState([]);
const [semesterNames, setSemesterNames] = useState([]);
const [modalDisplay, setModalDisplay] = useState("none");
const [modalHint, setModalHint] = useState("");
const router = useRouter();
return (
<div className={"semester-overview"}>
<Logout />
<Background />
<Logout/>
<Background/>
{entries.map((e, index) => (
<SemesterTile
text={semesterNames[index] + e.name} onClick={(f) => onClickSemester(e, f)}
editable = {false} text={semesterNames[index]} text2={e.name} onClick={(f) => onClickSemester(e, f)}
/>
))}
</div>