FrontEnd Bug Fix

This commit is contained in:
brausjonas
2023-05-24 16:05:21 +02:00
parent 337aea6a65
commit f42f2df078
7 changed files with 1314 additions and 5 deletions
+7 -1
View File
@@ -43,8 +43,14 @@ export default function InputForm(p) {
let url = "http://localhost:8080/users/all?sessionid=" + sessionid;
try {
await fetch(url).then(response => response.json()).then(user => setUsers(user));
}
catch(e)
{
router.push("/")
}
}
useEffect(() => {
@@ -213,7 +219,7 @@ export default function InputForm(p) {
}}><input type="checkbox" onChange={(e) => {
onCheckBoxClicked(user, e);
}}/></div></td>
<td style={{}}>{user.firstName + " " + user.lastName}</td>
<td style={{textAlign: "center"}}>{user.firstName + " " + user.lastName}</td>
<select id={"userSelect"} name={"userSelect"} className={"box-shadow selector"}
multiple={false} style={{
maxHeight: 80,
+24
View File
@@ -0,0 +1,24 @@
import Button from "@/components/Button";
import {useRouter} from "next/router";
export default function Logout()
{
const router = useRouter()
async function logout()
{
let url = "http://localhost:8080/users/logout?sessionid=" + localStorage.getItem("sessionid");
await fetch(url)
await router.push("/")
}
return (
<div style={{
position: "absolute",
left: 20,
top: 20
}}>
<Button onClick={() => logout()} text={"Logout"} color={"#77932b"} width={100} height={40}/>
</div>
)
}
+14
View File
@@ -1,13 +1,27 @@
import InputForm from "@/components/InputForm";
import {useRouter} from "next/router";
import Logout from "@/components/Logout";
import {useEffect} from "react";
export default function CreateSemester()
{
const router = useRouter();
let {courseName, startDate, endDate} = router.query;
useEffect(() => {
let checkURL = "http://localhost:8080/users/check?sessionid=" + localStorage.getItem("sessionid");
try {
fetch(checkURL).then(r => console.log(r))
}
catch(e)
{
router.push("/")
}
}, []);
return (
<div className={"normal-centered"}>
<Logout/>
<InputForm startDate={startDate} endDate={endDate} courseName={courseName}/>
</div>
)
+16
View File
@@ -5,6 +5,7 @@ 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 SemesterOverview(p)
{
@@ -12,9 +13,14 @@ export default function SemesterOverview(p)
{
let urlTest = "http://localhost:8080/semester/all?sessionid=" + localStorage.getItem("sessionid");
try {
await fetch(urlTest).then(response => response.json()).then(s => {
setEntries(s)
})
} catch(e)
{
router.push("/")
}
}
function onClickSemester(e, m)
@@ -83,8 +89,17 @@ export default function SemesterOverview(p)
useEffect(() => {
getSemesters();
let checkURL = "http://localhost:8080/users/check?sessionid=" + localStorage.getItem("sessionid");
try {
fetch(checkURL).then(r => console.log(r))
}
catch(e)
{
router.push("/")
}
}, [])
const [entries, setEntries] = useState([])
const [modalDisplay, setModalDisplay] = useState("none");
const [modalHint, setModalHint] = useState("");
@@ -92,6 +107,7 @@ export default function SemesterOverview(p)
return (
<div className={"semester-overview"}>
<Logout/>
<Background/>
{
entries.map(e => (<SemesterTile text={e.name} onClick={(f) => onClickSemester(e, f)} onButtonDeleteClick={() => {
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -140,6 +140,20 @@ public class UserController {
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
}
@CrossOrigin
@GetMapping("/users/check")
public ResponseEntity<User> checkLogin(@RequestParam(name="sessionid") String sessionid)
{
User u = UserSessionIDHandler.getUserBySessionID(sessionid);
if(u != null)
{
return new ResponseEntity<>(db.getUser(u.getId()), HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
@CrossOrigin
@DeleteMapping("/users")
public ResponseEntity<Boolean> deleteUser(@RequestParam(name = "sessionid") String sessionID, @RequestParam(name = "mail") String mail) {