All Entrys Shown for Lecturer

A lecturer can now see all his entries in his lecture view. Entries from other semester are blue colored, cant be configured from the from lecture view and are not of relevance for the rule semester, since they don´t apply for the students, only for the lecturer him- or herself
This commit is contained in:
AliGitGut
2023-06-09 21:35:02 +02:00
parent b4020d0756
commit 394b920a4e
5 changed files with 185080 additions and 32 deletions
+41 -29
View File
@@ -42,6 +42,8 @@ export default function CalenderView(p) {
function readEntries() { function readEntries() {
let url = baseURL + "/entries?semesterid=" + localStorage.getItem("currentsid") + let url = baseURL + "/entries?semesterid=" + localStorage.getItem("currentsid") +
"&daynumber=" + currentWeekStartDay + "&yearnumber=" + currentYear + "&sessionid=" + localStorage.getItem("sessionid"); "&daynumber=" + currentWeekStartDay + "&yearnumber=" + currentYear + "&sessionid=" + localStorage.getItem("sessionid");
let currentsid = localStorage.getItem("currentsid")
try { try {
fetch(url).then(r => r.json()).then(en => { fetch(url).then(r => r.json()).then(en => {
@@ -52,6 +54,10 @@ export default function CalenderView(p) {
let daySum = 0 let daySum = 0
for (let j = 0; j < en[i].length; j++) { for (let j = 0; j < en[i].length; j++) {
if (en[i][j] != null){ if (en[i][j] != null){
console.log(currentsid + " " + en[i][j].semesterid)
}
if (en[i][j] != null && currentsid == (en[i][j]).semesterid) {
let elem = en[i][j] let elem = en[i][j]
if ((elem.timestart - 1) / 4 < 8) { if ((elem.timestart - 1) / 4 < 8) {
@@ -76,7 +82,7 @@ export default function CalenderView(p) {
let min = 24 * 3 let min = 24 * 3
for (let j2 = 0; j2 < en[i].length; j2++) { for (let j2 = 0; j2 < en[i].length; j2++) {
if (en[i][j2] != null && (en[i][j2].timestart - 1) / 4 >= 11 && (en[i][j2].timestart - 1) / 4 <= 14) { if (en[i][j2] != null && (en[i][j2].timestart - 1) / 4 >= 11 && (en[i][j2].timestart - 1) / 4 <= 14 && currentsid == (en[i][j2]).semesterid) {
if (en[i][j2].timestart < min && en[i][j2].timestart >= elem.timeend) { if (en[i][j2].timestart < min && en[i][j2].timestart >= elem.timeend) {
min = en[i][j2].timestart min = en[i][j2].timestart
} }
@@ -90,7 +96,6 @@ export default function CalenderView(p) {
} }
} }
console.log("test")
errorState[i] = ErrorType.Okay errorState[i] = ErrorType.Okay
} }
@@ -260,6 +265,7 @@ export default function CalenderView(p) {
let currentColumnID = parseInt(e.currentTarget.id) let currentColumnID = parseInt(e.currentTarget.id)
let currentId = e.target.id; let currentId = e.target.id;
let currentUserID = localStorage.getItem("userid"); let currentUserID = localStorage.getItem("userid");
let currentsid = localStorage.getItem("currentsid")
if (e.button === 0) { if (e.button === 0) {
if (!currentId.includes("e")) { if (!currentId.includes("e")) {
@@ -273,7 +279,7 @@ export default function CalenderView(p) {
} }
} else { } else {
let parentID = parseInt(e.target.parentElement.id.replace("e", "")); let parentID = parseInt(e.target.parentElement.id.replace("e", ""));
if (currentUserID == getElementInColumn(parentID, currentColumnID).usercreatedbyid) { if (currentUserID == getElementInColumn(parentID, currentColumnID).usercreatedbyid && getElementInColumn(parentID, currentColumnID).semesterid == currentsid) {
grabbedDown = currentId.includes("down") grabbedDown = currentId.includes("down")
selectedElement = getElementInColumn(parentID, currentColumnID); selectedElement = getElementInColumn(parentID, currentColumnID);
} }
@@ -281,7 +287,7 @@ export default function CalenderView(p) {
} }
} else if (e.button === 2) { } else if (e.button === 2) {
let parentID = parseInt(e.target.id.replace("e", "")); let parentID = parseInt(e.target.id.replace("e", ""));
if (currentUserID == getElementInColumn(parentID, currentColumnID).usercreatedbyid && currentId.includes("e")) { if (currentUserID == getElementInColumn(parentID, currentColumnID).usercreatedbyid && currentId.includes("e") && getElementInColumn(parentID, currentColumnID).semesterid == currentsid) {
let id = parseInt(currentId.replace("e", "")) let id = parseInt(currentId.replace("e", ""))
errorState[currentColumnID] = ErrorType.Okay errorState[currentColumnID] = ErrorType.Okay
deleteEntry(id) deleteEntry(id)
@@ -317,11 +323,14 @@ export default function CalenderView(p) {
readEntries() readEntries()
} }
function getEntryColor(userCreatedByID, columnID) { function getEntryColor(userCreatedByID, columnID, semesterid) {
let id = localStorage.getItem("userid"); let id = localStorage.getItem("userid");
let currentsid = localStorage.getItem("currentsid")
if (id == userCreatedByID) { if (id == userCreatedByID) {
if (isDayOkay[columnID]) { if (isDayOkay[columnID] && semesterid == currentsid) {
return "#77932b"; return "#77932b";
}else if(semesterid != currentsid){
return "#346991";
}else { }else {
return "#e5a10e"; return "#e5a10e";
} }
@@ -331,12 +340,17 @@ export default function CalenderView(p) {
} }
} }
function getResizeBarColor(userCreatedByID, columnID) { function getResizeBarColor(userCreatedByID, columnID, semesterid) {
let id = localStorage.getItem("userid"); let id = localStorage.getItem("userid");
let currentsid = localStorage.getItem("currentsid")
if (id == userCreatedByID) { if (id == userCreatedByID) {
if (isDayOkay[columnID]) { if (isDayOkay[columnID] && currentsid == semesterid) {
return "#5a6c20"; return "#5a6c20";
} else { } else if(currentsid != semesterid)
{
return "#346991"
}
else {
return "#c08809"; return "#c08809";
} }
} else { } else {
@@ -358,14 +372,12 @@ export default function CalenderView(p) {
let url = baseURL + "/semester/id?sessionid=" + localStorage.getItem("sessionid") + let url = baseURL + "/semester/id?sessionid=" + localStorage.getItem("sessionid") +
"&id=" + localStorage.getItem("currentsid"); "&id=" + localStorage.getItem("currentsid");
console.log(localStorage.getItem("currentsid"))
fetch(url).then(r => r.json()).then(s => { fetch(url).then(r => r.json()).then(s => {
currentWeekStartDay = s.startday - new Date(s.startyear, 0, s.startday).getUTCDay(); currentWeekStartDay = s.startday - new Date(s.startyear, 0, s.startday).getUTCDay();
currentYear = s.startyear; currentYear = s.startyear;
setStartYearCalenderSideBar(currentYear) setStartYearCalenderSideBar(currentYear)
setEndYearCalenderSideBar(s.endyear) setEndYearCalenderSideBar(s.endyear)
//console.log(new Date(s.startyear, 0, s.startday).getMonth())
setHighlightMonth(new Date(s.startyear, 0, s.startday).getMonth()) setHighlightMonth(new Date(s.startyear, 0, s.startday).getMonth())
setHighlightYear(currentYear) setHighlightYear(currentYear)
@@ -501,17 +513,17 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 0) backgroundColor: getEntryColor(d.usercreatedbyid, 0, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 0) backgroundColor: getResizeBarColor(d.usercreatedbyid, 0, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 0) backgroundColor: getResizeBarColor(d.usercreatedbyid, 0, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
@@ -527,18 +539,18 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 1) backgroundColor: getEntryColor(d.usercreatedbyid, 1, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 1) backgroundColor: getResizeBarColor(d.usercreatedbyid, 1, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 1) backgroundColor: getResizeBarColor(d.usercreatedbyid, 1, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
@@ -555,18 +567,18 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 2) backgroundColor: getEntryColor(d.usercreatedbyid, 2, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 2) backgroundColor: getResizeBarColor(d.usercreatedbyid, 2, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 2) backgroundColor: getResizeBarColor(d.usercreatedbyid, 2, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
@@ -582,18 +594,18 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 3) backgroundColor: getEntryColor(d.usercreatedbyid, 3, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 3) backgroundColor: getResizeBarColor(d.usercreatedbyid, 3, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 3) backgroundColor: getResizeBarColor(d.usercreatedbyid, 3, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
@@ -610,17 +622,17 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 4) backgroundColor: getEntryColor(d.usercreatedbyid, 4, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 4) backgroundColor: getResizeBarColor(d.usercreatedbyid, 4, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 4) backgroundColor: getResizeBarColor(d.usercreatedbyid, 4, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
@@ -637,17 +649,17 @@ export default function CalenderView(p) {
width: "100%", width: "100%",
gridRowStart: d.timestart, gridRowStart: d.timestart,
gridRowEnd: d.timeend, gridRowEnd: d.timeend,
backgroundColor: getEntryColor(d.usercreatedbyid, 5) backgroundColor: getEntryColor(d.usercreatedbyid, 5, d.semesterid)
}} id={d.id + "e"}> }} id={d.id + "e"}>
<div className={"resize-grab"} id={"grabup"} style={{ <div className={"resize-grab"} id={"grabup"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 5) backgroundColor: getResizeBarColor(d.usercreatedbyid, 5, d.semesterid)
}}></div> }}></div>
<div style={{maxHeight: "60%"}} className={"no-pointer-events"}> <div style={{maxHeight: "60%"}} className={"no-pointer-events"}>
<p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p> <p>{internal_to_time(d.timestart) + " - " + internal_to_time(d.timeend)}</p>
<p>{d.info}</p> <p>{d.info}</p>
</div> </div>
<div className={"resize-grab"} id={"grabdown"} style={{ <div className={"resize-grab"} id={"grabdown"} style={{
backgroundColor: getResizeBarColor(d.usercreatedbyid, 5) backgroundColor: getResizeBarColor(d.usercreatedbyid, 5, d.semesterid)
}}></div> }}></div>
</div>))} </div>))}
</div> </div>
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -102,6 +102,42 @@ public class DataBaseHandler
} }
} }
public Entry[][] getAllEntrys(int semesterid, int daynumber, int yearnumber, int userid)
{
try {
ResultSet rs = st. executeQuery("select * from entries where " +
"semesterid<>" + semesterid +
" and yearnumber=" + yearnumber +
" and usercreatedbyid=" + userid +
" and daynumber between " + daynumber + " and " + daynumber + 6);
List<Entry> entryList = new ArrayList<>();
Entry current = null;
while((current = resultSetToEntry(rs)) != null)
{
entryList.add(current);
}
Entry[][] entries = new Entry[6][20];
for(int i = 0; i < 6; i++)
{
int f = 0;
for(int j = 0; j < entryList.size(); j++)
{
if(entryList.get(j).getDaynumber() == i + daynumber)
{
entries[i][f] = entryList.get(j);
f++;
}
}
}
return entries;
}catch(Exception e)
{
return null;
}
}
public void deleteEntry(int id) public void deleteEntry(int id)
{ {
try try
@@ -34,7 +34,25 @@ public class EntriesController
if (sessionUser != null) if (sessionUser != null)
{ {
return new ResponseEntity<>(db.getEntries(semesterid, daynumber, yearnumber), HttpStatus.OK); var lonelyEntry = db.getEntries(semesterid, daynumber, yearnumber);
var happyEntry = db.getAllEntrys(semesterid, daynumber, yearnumber, sessionUser.getId());
var combinedEntry = new Entry[6][20];
for (int i = 0; i < 6; i++) {
var idx = 0;
for (int j = 0; j < 20; j++) {
if (lonelyEntry[i][j] != null){
combinedEntry[i][idx] = lonelyEntry[i][j];
idx++;
}
if (happyEntry[i][j] != null){
combinedEntry[i][idx] = happyEntry[i][j];
idx++;
}
}
}
return new ResponseEntity<>(combinedEntry, HttpStatus.OK);
} }
return new ResponseEntity<>(null, HttpStatus.FORBIDDEN); return new ResponseEntity<>(null, HttpStatus.FORBIDDEN);