FrontEnd Bug Fix
This commit is contained in:
@@ -43,8 +43,14 @@ export default function InputForm(p) {
|
|||||||
let url = "http://localhost:8080/users/all?sessionid=" + sessionid;
|
let url = "http://localhost:8080/users/all?sessionid=" + sessionid;
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
await fetch(url).then(response => response.json()).then(user => setUsers(user));
|
await fetch(url).then(response => response.json()).then(user => setUsers(user));
|
||||||
}
|
}
|
||||||
|
catch(e)
|
||||||
|
{
|
||||||
|
router.push("/")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
||||||
@@ -213,7 +219,7 @@ export default function InputForm(p) {
|
|||||||
}}><input type="checkbox" onChange={(e) => {
|
}}><input type="checkbox" onChange={(e) => {
|
||||||
onCheckBoxClicked(user, e);
|
onCheckBoxClicked(user, e);
|
||||||
}}/></div></td>
|
}}/></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"}
|
<select id={"userSelect"} name={"userSelect"} className={"box-shadow selector"}
|
||||||
multiple={false} style={{
|
multiple={false} style={{
|
||||||
maxHeight: 80,
|
maxHeight: 80,
|
||||||
|
|||||||
@@ -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>
|
||||||
|
)
|
||||||
|
}
|
||||||
@@ -1,13 +1,27 @@
|
|||||||
import InputForm from "@/components/InputForm";
|
import InputForm from "@/components/InputForm";
|
||||||
import {useRouter} from "next/router";
|
import {useRouter} from "next/router";
|
||||||
|
import Logout from "@/components/Logout";
|
||||||
|
import {useEffect} from "react";
|
||||||
|
|
||||||
export default function CreateSemester()
|
export default function CreateSemester()
|
||||||
{
|
{
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
let {courseName, startDate, endDate} = router.query;
|
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 (
|
return (
|
||||||
<div className={"normal-centered"}>
|
<div className={"normal-centered"}>
|
||||||
|
<Logout/>
|
||||||
<InputForm startDate={startDate} endDate={endDate} courseName={courseName}/>
|
<InputForm startDate={startDate} endDate={endDate} courseName={courseName}/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import InputForm from "@/components/InputForm";
|
|||||||
import {useRouter} from "next/router";
|
import {useRouter} from "next/router";
|
||||||
import PopUp from "@/components/PopUp";
|
import PopUp from "@/components/PopUp";
|
||||||
import Background from "@/components/Background";
|
import Background from "@/components/Background";
|
||||||
|
import Logout from "@/components/Logout";
|
||||||
|
|
||||||
export default function SemesterOverview(p)
|
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");
|
let urlTest = "http://localhost:8080/semester/all?sessionid=" + localStorage.getItem("sessionid");
|
||||||
|
|
||||||
|
try {
|
||||||
await fetch(urlTest).then(response => response.json()).then(s => {
|
await fetch(urlTest).then(response => response.json()).then(s => {
|
||||||
setEntries(s)
|
setEntries(s)
|
||||||
})
|
})
|
||||||
|
} catch(e)
|
||||||
|
{
|
||||||
|
router.push("/")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onClickSemester(e, m)
|
function onClickSemester(e, m)
|
||||||
@@ -83,8 +89,17 @@ export default function SemesterOverview(p)
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getSemesters();
|
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 [entries, setEntries] = useState([])
|
||||||
const [modalDisplay, setModalDisplay] = useState("none");
|
const [modalDisplay, setModalDisplay] = useState("none");
|
||||||
const [modalHint, setModalHint] = useState("");
|
const [modalHint, setModalHint] = useState("");
|
||||||
@@ -92,6 +107,7 @@ export default function SemesterOverview(p)
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={"semester-overview"}>
|
<div className={"semester-overview"}>
|
||||||
|
<Logout/>
|
||||||
<Background/>
|
<Background/>
|
||||||
{
|
{
|
||||||
entries.map(e => (<SemesterTile text={e.name} onClick={(f) => onClickSemester(e, f)} onButtonDeleteClick={() => {
|
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);
|
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
|
@CrossOrigin
|
||||||
@DeleteMapping("/users")
|
@DeleteMapping("/users")
|
||||||
public ResponseEntity<Boolean> deleteUser(@RequestParam(name = "sessionid") String sessionID, @RequestParam(name = "mail") String mail) {
|
public ResponseEntity<Boolean> deleteUser(@RequestParam(name = "sessionid") String sessionID, @RequestParam(name = "mail") String mail) {
|
||||||
|
|||||||
Reference in New Issue
Block a user