From dc708392c8b13d7b2a4be6977dfefc15f5a8bfae Mon Sep 17 00:00:00 2001 From: AliGitGut Date: Mon, 29 May 2023 21:50:45 +0200 Subject: [PATCH] Dashboard Test 1 Lecturer Dashboard --- anwendung/src/components/Login.jsx | 9 ++- .../src/pages/semesteroverviewLecturer.js | 75 +++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 anwendung/src/pages/semesteroverviewLecturer.js diff --git a/anwendung/src/components/Login.jsx b/anwendung/src/components/Login.jsx index df63faa..83dbea2 100644 --- a/anwendung/src/components/Login.jsx +++ b/anwendung/src/components/Login.jsx @@ -22,8 +22,13 @@ export default function Login() { url = "http://localhost:8080/users/check?sessionid=" + value; fetch(url).then(r => r.json()).then(u => localStorage.setItem("userid", u.id)) - - await router.push("/semesteroverview") + let admin = 0 + await fetch(url).then(o => o.json()).then(user => { + admin = user.permissions}) + localStorage.setItem("admin", admin) + if(admin === 1) { + await router.push("/semesteroverview") + }else await router.push("/semesteroverviewLecturer") } else { setInputPassword(""); diff --git a/anwendung/src/pages/semesteroverviewLecturer.js b/anwendung/src/pages/semesteroverviewLecturer.js new file mode 100644 index 0000000..98822d2 --- /dev/null +++ b/anwendung/src/pages/semesteroverviewLecturer.js @@ -0,0 +1,75 @@ +import Button from "@/components/Button"; +import React, {useEffect, useState} from "react"; +import SemesterTile from "@/components/SemesterTile"; +import InputForm from "@/components/InputForm"; +import {useRouter} from "next/router"; +import PopUp from "@/components/PopUp"; +import Background from "@/components/Background"; +import Logout from "@/components/Logout"; + +export default function SemesteroverviewLecturer(p) +{ + async function getSemesters() + { + let urlTest = "http://localhost:8080/module/id?sessionid=" + localStorage.getItem("sessionid"); + + await fetch(urlTest).then(response => response.json()).then(s => { + setEntries(s) + }) + + } + + 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(); + }, []) + + const [entries, setEntries] = useState([]); + const [semesterNames, setSemesterNames] = useState([]); + const [modalDisplay, setModalDisplay] = useState("none"); + const [modalHint, setModalHint] = useState(""); + const router = useRouter(); + + + return ( +
+ + + {entries.map((e, index) => ( + onClickSemester(e, f)} + /> + ))} +
+ ); +} \ No newline at end of file