Comments
Alle, von mir zu bearbeitenden, komplizierten und relevanten Codeteile wurden ausführlich beschrieben
This commit is contained in:
Generated
+9
-2
@@ -6,8 +6,11 @@
|
|||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="744e9299-0ce3-415c-8733-c935bf920887" name="Changes" comment="">
|
<list default="true" id="744e9299-0ce3-415c-8733-c935bf920887" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/anwendung/src/components/StatusBar.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/components/StatusBar.jsx" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/anwendung/src/components/CalendarSideBar.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/components/CalendarSideBar.jsx" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/anwendung/src/styles/globals.css" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/styles/globals.css" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/anwendung/src/components/DateElement.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/components/DateElement.jsx" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/anwendung/src/components/WeekSelector.jsx" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/components/WeekSelector.jsx" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/anwendung/src/pages/semesteroverview.js" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/pages/semesteroverview.js" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/anwendung/src/pages/semesteroverviewLecturer.js" beforeDir="false" afterPath="$PROJECT_DIR$/anwendung/src/pages/semesteroverviewLecturer.js" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -154,6 +157,10 @@
|
|||||||
<workItem from="1687349584578" duration="477000" />
|
<workItem from="1687349584578" duration="477000" />
|
||||||
<workItem from="1687354510081" duration="453000" />
|
<workItem from="1687354510081" duration="453000" />
|
||||||
<workItem from="1687354999964" duration="291000" />
|
<workItem from="1687354999964" duration="291000" />
|
||||||
|
<workItem from="1687431213516" duration="596000" />
|
||||||
|
<workItem from="1688661149524" duration="602000" />
|
||||||
|
<workItem from="1688661766941" duration="1680000" />
|
||||||
|
<workItem from="1688812359996" duration="6843000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ export default function BasicDateCalendar(p) {
|
|||||||
|
|
||||||
const ref = useRef(null)
|
const ref = useRef(null)
|
||||||
|
|
||||||
function getBackMonthColor(monthIndex)
|
function getBackMonthColor(monthIndex) //Farbliche Kennzeichnung des Monats in dem man aktuell Plant
|
||||||
{
|
{
|
||||||
let date = new Date(parseInt(startParts[2]), parseInt(startParts[1]) + monthIndex - 1, 1)
|
let date = new Date(parseInt(startParts[2]), parseInt(startParts[1]) + monthIndex - 1, 1) //Datums Objekt des Monats in dem man sich aktuell befindet
|
||||||
if (date.getFullYear() === p.highlightYear && date.getMonth() === p.highlightMonth)
|
if (date.getFullYear() === p.highlightYear && date.getMonth() === p.highlightMonth)
|
||||||
{
|
{
|
||||||
if(lastMonth !== p.highlightMonth)
|
if(lastMonth !== p.highlightMonth)
|
||||||
@@ -35,8 +35,8 @@ export default function BasicDateCalendar(p) {
|
|||||||
result = []
|
result = []
|
||||||
calculatedDay = []
|
calculatedDay = []
|
||||||
|
|
||||||
startDate = new Date(p.startyear, 0 ,p.startday)
|
startDate = new Date(p.startyear, 0 ,p.startday) //Startdatum des Theoriesemesters
|
||||||
let endDate = new Date(p.endyear, 0 , p.endday)
|
let endDate = new Date(p.endyear, 0 , p.endday) //Enddatum des Theoriesemesters
|
||||||
let startString = startDate.getDate() + "." + (startDate.getMonth() + 1) + "." + p.startyear
|
let startString = startDate.getDate() + "." + (startDate.getMonth() + 1) + "." + p.startyear
|
||||||
let endString = endDate.getDate() + "." + (endDate.getMonth() + 1) + "." + p.endyear
|
let endString = endDate.getDate() + "." + (endDate.getMonth() + 1) + "." + p.endyear
|
||||||
generateCalendar(startString, endString)
|
generateCalendar(startString, endString)
|
||||||
@@ -45,10 +45,10 @@ export default function BasicDateCalendar(p) {
|
|||||||
return (
|
return (
|
||||||
<div className={"Allround"} ref={ref}>
|
<div className={"Allround"} ref={ref}>
|
||||||
<div className={"Down"}>
|
<div className={"Down"}>
|
||||||
{result.map((monthResult, index) => (
|
{result.map((monthResult, index) => ( //map durch alle Monate aus dem Array monthResult
|
||||||
<div className={"A box-shadow"} onClick={() => p.onMonthClick(
|
<div className={"A box-shadow"} onClick={() => p.onMonthClick(
|
||||||
(parseInt(startParts[1]) + index),
|
(parseInt(startParts[1]) + index),
|
||||||
startParts
|
startParts //gibt zurück auf welchen Monat geklickt wurde, wodurch direkt in den jeweiligen Monat gewechselt werden kann
|
||||||
)} >
|
)} >
|
||||||
<p style={{
|
<p style={{
|
||||||
textAlign : "center",
|
textAlign : "center",
|
||||||
@@ -63,7 +63,7 @@ export default function BasicDateCalendar(p) {
|
|||||||
pointerEvents: "none"
|
pointerEvents: "none"
|
||||||
}}>
|
}}>
|
||||||
{weekdays.map((weekday) => (
|
{weekdays.map((weekday) => (
|
||||||
<p key={weekday} style={{
|
<p key={weekday} style={{ //generiere einmal alle Wochentage (Montag,...,Sonntag)
|
||||||
pointerEvents: "none"
|
pointerEvents: "none"
|
||||||
}}>{weekday}</p>
|
}}>{weekday}</p>
|
||||||
))}
|
))}
|
||||||
@@ -82,8 +82,7 @@ export default function BasicDateCalendar(p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getMonthName(monthIndex) { //holt die relevanten Monatsnamen aus dem 2D Array
|
||||||
function getMonthName(monthIndex) {
|
|
||||||
if (startParts[1] - 1 + monthIndex < 12) {
|
if (startParts[1] - 1 + monthIndex < 12) {
|
||||||
return months[startParts[1] - 1 + monthIndex][0];
|
return months[startParts[1] - 1 + monthIndex][0];
|
||||||
} else {
|
} else {
|
||||||
@@ -94,31 +93,31 @@ function getMonthName(monthIndex) {
|
|||||||
function generateCalendar(start, ende)
|
function generateCalendar(start, ende)
|
||||||
{
|
{
|
||||||
splitter(start, ende)
|
splitter(start, ende)
|
||||||
if (startParts[2] < endParts[2])
|
if (startParts[2] < endParts[2]) //Abfrage für den Fall, dass ein Theoriesemester Jahresübergreifend ist
|
||||||
{
|
{
|
||||||
for (let i = startParts[1] - 1; i <= 11; i++)
|
for (let i = startParts[1] - 1; i <= 11; i++) //Durchlaufe alle Monate bis zum Jahresende
|
||||||
{
|
{
|
||||||
let monthResult = [];
|
let monthResult = [];
|
||||||
for (let j = 1; j <= days[i]; j++)
|
for (let j = 1; j <= days[i]; j++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
||||||
new Date(startParts[2], i, j) <= new Date(startParts[2], 11, 31)
|
new Date(startParts[2], i, j) <= new Date(startParts[2], 11, 31)
|
||||||
)
|
) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||||
{
|
{
|
||||||
monthResult.push(j);
|
monthResult.push(j);
|
||||||
calculateDay(startParts[2], i, j)
|
calculateDay(startParts[2], i, j)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result.push(monthResult);
|
result.push(monthResult);
|
||||||
if (i == 11)
|
if (i == 11) //erstes Jahr ist fertig abgebildet
|
||||||
{
|
{
|
||||||
for (let h = 0; h <= endParts[1] - 1; h++)
|
for (let h = 0; h <= endParts[1] - 1; h++) //laufe vom Anfang des Jahres bis zum angegebenen Ende des Theoriesemesters
|
||||||
{
|
{
|
||||||
let monthResultNewYear = [];
|
let monthResultNewYear = [];
|
||||||
for (let g = 1; g <= days[h]; g++)
|
for (let g = 1; g <= days[h]; g++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||||
{
|
{
|
||||||
if (new Date(endParts[2], h, g) <= new Date(endParts[2], endParts[1] - 1, endParts[0]))
|
if (new Date(endParts[2], h, g) <= new Date(endParts[2], endParts[1] - 1, endParts[0])) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||||
{
|
{
|
||||||
monthResultNewYear.push(g);
|
monthResultNewYear.push(g);
|
||||||
calculateDay(endParts[2], h, g)
|
calculateDay(endParts[2], h, g)
|
||||||
@@ -128,17 +127,17 @@ function generateCalendar(start, ende)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else
|
} else //Normalfall das ein Anfang und Ende eines Theoriesemester im gleichen Jahr liegt
|
||||||
{
|
{
|
||||||
for (let i = startParts[1] - 1; i <= endParts[1] - 1; i++)
|
for (let i = startParts[1] - 1; i <= endParts[1] - 1; i++) //durchlaufe alle Monate in der angegebenen Zeitspanne
|
||||||
{
|
{
|
||||||
let monthResult = [];
|
let monthResult = [];
|
||||||
for (let j = 1; j <= days[i]; j++)
|
for (let j = 1; j <= days[i]; j++) //durchlaufe alle Tage des Monats in dem wir uns befinden
|
||||||
{
|
{
|
||||||
if (
|
if (
|
||||||
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
new Date(startParts[2], i, j) >= new Date(startParts[2], startParts[1] - 1, startParts[0]) &&
|
||||||
new Date(startParts[2], i, j) <= new Date(startParts[2], endParts[1] - 1, endParts[0])
|
new Date(startParts[2], i, j) <= new Date(startParts[2], endParts[1] - 1, endParts[0])
|
||||||
)
|
) //überprüft ob der Tag noch in der angegebenen Zeitspanne des Theoriesemsters liegt
|
||||||
{
|
{
|
||||||
monthResult.push(j)
|
monthResult.push(j)
|
||||||
calculateDay(startParts[2], i, j)
|
calculateDay(startParts[2], i, j)
|
||||||
@@ -149,7 +148,8 @@ function generateCalendar(start, ende)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateDay(x, i, j){
|
function calculateDay(x, i, j)//berechnet den Wochentag eines Datums (Montag,...,Sonntag)
|
||||||
|
{
|
||||||
if (j == startDate.getDate() && i == startDate.getMonth() || j == 1){
|
if (j == startDate.getDate() && i == startDate.getMonth() || j == 1){
|
||||||
let monthStart = new Date(x, i, j)
|
let monthStart = new Date(x, i, j)
|
||||||
if (monthStart.getDay() == 0)
|
if (monthStart.getDay() == 0)
|
||||||
@@ -158,7 +158,7 @@ function calculateDay(x, i, j){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function freeSpaces(index)
|
function freeSpaces(index)//generiert Leerzeichen damit Tage genau unter ihrem jeweiligen Wochentag stehen
|
||||||
{
|
{
|
||||||
let arrayTest = []
|
let arrayTest = []
|
||||||
for (let i = 0; i < calculatedDay[index]; i++) {
|
for (let i = 0; i < calculatedDay[index]; i++) {
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ export default function DateElement(p){
|
|||||||
let startDate = new Date(p.year, 0, p.startday);
|
let startDate = new Date(p.year, 0, p.startday);
|
||||||
let endDate = new Date(p.year, 0, p.startday + 5);
|
let endDate = new Date(p.year, 0, p.startday + 5);
|
||||||
|
|
||||||
let startDateString = `${startDate.getDate()}.${startDate.getMonth()+1}.${startDate.getFullYear()}`;
|
let startDateString = `${startDate.getDate()}.${startDate.getMonth()+1}.${startDate.getFullYear()}`; //Anfang der Woche in der man sich befindet wird in startDateString geladen
|
||||||
let endDateString = `${endDate.getDate()}.${endDate.getMonth()+1}.${endDate.getFullYear()}`;
|
let endDateString = `${endDate.getDate()}.${endDate.getMonth()+1}.${endDate.getFullYear()}`; //Ende der Woche in der man sich befindet wird in endDateString geladen
|
||||||
return (
|
return /*Anzeige des Beginns und Endes der Woche in der man sich befindet*/(
|
||||||
<>
|
<>
|
||||||
<div className="dateElement round-border box-shadow">
|
<div className="dateElement round-border box-shadow">
|
||||||
<p>{startDateString} - {endDateString}</p>
|
<p>{startDateString} - {endDateString}</p>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { arrowRight } from "./Icons"
|
|||||||
|
|
||||||
export default function WeekSelector(p){
|
export default function WeekSelector(p){
|
||||||
|
|
||||||
return (
|
return /*Aufruf des DateElements mit aktuellem Starttag im Jahr und dem Jahr, sowie Buttons zum hin und her Wechsel der Wochen*/(
|
||||||
<>
|
<>
|
||||||
<div className="weekSelector">
|
<div className="weekSelector">
|
||||||
<Button icon={arrowLeft} onClick={() => p.onFunctionLeft()} width={50} color={"#346991"}/>
|
<Button icon={arrowLeft} onClick={() => p.onFunctionLeft()} width={50} color={"#346991"}/>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export default function SemesterOverview(p) {
|
|||||||
let allModules
|
let allModules
|
||||||
let allEntries
|
let allEntries
|
||||||
|
|
||||||
|
//Datenanfrage an das Backend für alle existierenden Semester
|
||||||
await fetch(urlTest).then(response => response.json()).then(s => {
|
await fetch(urlTest).then(response => response.json()).then(s => {
|
||||||
allSemesters = s
|
allSemesters = s
|
||||||
if (set) {
|
if (set) {
|
||||||
@@ -30,17 +31,21 @@ export default function SemesterOverview(p) {
|
|||||||
}).then(() => {
|
}).then(() => {
|
||||||
if(!set)
|
if(!set)
|
||||||
{
|
{
|
||||||
|
//Datenanfrage an das Backend um alle Module zu erhalten
|
||||||
fetch(baseURL + "/module/all?sessionid=" + localStorage.getItem("sessionid")).then(r => r.json()).then(mod => {
|
fetch(baseURL + "/module/all?sessionid=" + localStorage.getItem("sessionid")).then(r => r.json()).then(mod => {
|
||||||
allModules = mod
|
allModules = mod
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
|
//Datenanfrage an das Backend um alle gesetzten Entries zu erhalten
|
||||||
fetch(baseURL + "/entries/all?sessionid=" + localStorage.getItem("sessionid")).then(r => r.json()).then(en => {
|
fetch(baseURL + "/entries/all?sessionid=" + localStorage.getItem("sessionid")).then(r => r.json()).then(en => {
|
||||||
allEntries = en
|
allEntries = en
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
let modulesCountInSemester = []
|
let modulesCountInSemester = []
|
||||||
for (let i = 0; i < allSemesters.length; i++) {
|
for (let i = 0; i < allSemesters.length; i++) //durchlaufe die Anzahl der Semester welche von dem Backend zurück gegeben wurden
|
||||||
|
{
|
||||||
let count = 0
|
let count = 0
|
||||||
for (let j = 0; j < allModules.length; j++) {
|
for (let j = 0; j < allModules.length; j++) { //durchlaufe die Anzahl der Module welche von dem Backend zurück gegeben wurden
|
||||||
if (allSemesters[i].id === allModules[j].semesterid) {
|
if (allSemesters[i].id === allModules[j].semesterid) //Prüfe ob das Modul zu dem jeweiligen Semester gehört und erhöhe count
|
||||||
|
{
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -48,20 +53,25 @@ export default function SemesterOverview(p) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let temp = []
|
let temp = []
|
||||||
for (let s = 0; s < allSemesters.length; s++) {
|
for (let s = 0; s < allSemesters.length; s++) //durchlaufe die Anzahl der Semester welche von dem Backend zurück gegeben wurden
|
||||||
|
{
|
||||||
let count = 0;
|
let count = 0;
|
||||||
|
|
||||||
for (let i = 0; i < allModules.length; i++) {
|
for (let i = 0; i < allModules.length; i++) //durchlaufe die Anzahl der Module welche von dem Backend zurück gegeben wurden
|
||||||
if (allModules[i].semesterid === allSemesters[s].id) {
|
{
|
||||||
|
if (allModules[i].semesterid === allSemesters[s].id) //Prüfe ob das Modul zu dem jeweiligen Semester gehört
|
||||||
|
{
|
||||||
let sum = 0
|
let sum = 0
|
||||||
let ent = allEntries.filter(e => e.moduleid === allModules[i].id)
|
let ent = allEntries.filter(e => e.moduleid === allModules[i].id) //lade alle Entries die zu dem Modul gehören in dem wir uns befinden in die Variable
|
||||||
for (let j = 0; j < ent.length; j++) {
|
for (let j = 0; j < ent.length; j++) //durchlaufe die Anzahl der Entries aus ent
|
||||||
sum += ent[j].timeend - ent[j].timestart
|
{
|
||||||
|
sum += ent[j].timeend - ent[j].timestart //summiere die Dauer aller Entries in dem Semester
|
||||||
}
|
}
|
||||||
|
|
||||||
sum /= 3
|
sum /= 3
|
||||||
|
|
||||||
if (sum >= 20 && allModules[i].activated === 0) {
|
if (sum >= 20 && allModules[i].activated === 0) //Überprüfung ob alle 20 Schulstunden eines Moduls gesetzt worden sind und der Vorlesungsplan des Moduls abgegeben worden ist
|
||||||
|
{
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -75,7 +85,7 @@ export default function SemesterOverview(p) {
|
|||||||
temp.push(100)
|
temp.push(100)
|
||||||
}
|
}
|
||||||
|
|
||||||
setProgresses(temp)
|
setProgresses(temp) //setze die Fortschrittsleiste entsprechend der Einträge im Semester
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -89,7 +99,7 @@ export default function SemesterOverview(p) {
|
|||||||
function onClickSemester(e, m) {
|
function onClickSemester(e, m) {
|
||||||
if (m.target === m.currentTarget) {
|
if (m.target === m.currentTarget) {
|
||||||
localStorage.setItem("currentsid", e.id)
|
localStorage.setItem("currentsid", e.id)
|
||||||
router.push("/planning")
|
router.push("/planning") //leite weiter auf die Planungsseite
|
||||||
localStorage.setItem("semestername", e.name + " Sem. " + (e.number + 1))
|
localStorage.setItem("semestername", e.name + " Sem. " + (e.number + 1))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,7 +107,7 @@ export default function SemesterOverview(p) {
|
|||||||
|
|
||||||
function onClickNewSemester() {
|
function onClickNewSemester() {
|
||||||
localStorage.setItem("currentsid", 0);
|
localStorage.setItem("currentsid", 0);
|
||||||
router.push("/createSemester");
|
router.push("/createSemester"); //leite weiter auf die Seite für das Inputform zur Erstellung eines neuen Semesters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -115,9 +125,9 @@ export default function SemesterOverview(p) {
|
|||||||
|
|
||||||
async function funcButtonDelete() {
|
async function funcButtonDelete() {
|
||||||
let id = localStorage.getItem("currentsid");
|
let id = localStorage.getItem("currentsid");
|
||||||
let url = baseURL + "/semester?sessionid=" + localStorage.getItem("sessionid") + "&id=" + id;
|
let url = baseURL + "/semester?sessionid=" + localStorage.getItem("sessionid") + "&id=" + id; //Anfrage an das Backend auf spezifisches Semesters auf das geklickt worden ist
|
||||||
await fetch(url, {
|
await fetch(url, {
|
||||||
method: "DELETE"
|
method: "DELETE" //lösche das spezifisch angeklickte Semester
|
||||||
});
|
});
|
||||||
|
|
||||||
togglePopup();
|
togglePopup();
|
||||||
@@ -129,6 +139,7 @@ export default function SemesterOverview(p) {
|
|||||||
localStorage.setItem("currentsid", e.id);
|
localStorage.setItem("currentsid", e.id);
|
||||||
let semester = e;
|
let semester = e;
|
||||||
|
|
||||||
|
//setze die Einträge des Semesters auf die aktuell gespeicherten Einträge
|
||||||
let startYear = semester.startyear;
|
let startYear = semester.startyear;
|
||||||
let endYear = semester.endyear;
|
let endYear = semester.endyear;
|
||||||
let startDay = semester.startday;
|
let startDay = semester.startday;
|
||||||
@@ -137,6 +148,7 @@ export default function SemesterOverview(p) {
|
|||||||
let startDate = new Date(startYear, 0, startDay + 1);
|
let startDate = new Date(startYear, 0, startDay + 1);
|
||||||
let endDate = new Date(endYear, 0, endDay + 1);
|
let endDate = new Date(endYear, 0, endDay + 1);
|
||||||
|
|
||||||
|
//speichere die abgeänderten Daten des Semesters
|
||||||
await router.push({
|
await router.push({
|
||||||
pathname: "/createSemester",
|
pathname: "/createSemester",
|
||||||
query: {
|
query: {
|
||||||
@@ -170,16 +182,16 @@ export default function SemesterOverview(p) {
|
|||||||
{
|
{
|
||||||
entries.map((e, index) => (
|
entries.map((e, index) => (
|
||||||
<div className={"semester-tile box-shadow"} onClick={(f) => onClickSemester(e, f)}>
|
<div className={"semester-tile box-shadow"} onClick={(f) => onClickSemester(e, f)}>
|
||||||
<SemesterTile text={e.name + " Sem. " + (e.number + 1)} onClick={(f) => onClickSemester(e, f)}
|
<SemesterTile text={e.name + " Sem. " + (e.number + 1)} onClick={(f) => onClickSemester(e, f) /*Darstellung der Semester mit ihren Namen und der Semesternummer in welcher der Kurs sich befindet*/}
|
||||||
onButtonDeleteClick={() => {
|
onButtonDeleteClick={() => {
|
||||||
localStorage.setItem("currentsid", e.id)
|
localStorage.setItem("currentsid", e.id)
|
||||||
setModalHint(e.name + " Löschen?");
|
setModalHint(e.name + " Löschen?");
|
||||||
togglePopup();
|
togglePopup();
|
||||||
}} onButtonEditClick={(m) => {
|
}} onButtonEditClick={(m) => {
|
||||||
localStorage.setItem("currentsid", e.id)
|
localStorage.setItem("currentsid", e.id)
|
||||||
funcButtonEdit(e, m);
|
funcButtonEdit(e, m) /*Aufruf der Editierfunktion für das Angeklickte Semester*/;
|
||||||
}}/>
|
}}/>
|
||||||
<StatusBar progress={progresses[index]}/>
|
<StatusBar progress={progresses[index] /*Fortschrittsleiste wird gesetzt*/}/>
|
||||||
<div style={
|
<div style={
|
||||||
{
|
{
|
||||||
display: "flex",
|
display: "flex",
|
||||||
@@ -202,7 +214,7 @@ export default function SemesterOverview(p) {
|
|||||||
</div>))
|
</div>))
|
||||||
}
|
}
|
||||||
<Button color={"#dcdcdc"} text={"+"} width={240} height={160} fontColor={"black"} fontSize={50}
|
<Button color={"#dcdcdc"} text={"+"} width={240} height={160} fontColor={"black"} fontSize={50}
|
||||||
onClick={() => onClickNewSemester()}/>
|
onClick={() => onClickNewSemester() /*Zuweisung der Funktion für den Button zu Erstellung eines neuen Semesters*/}/>
|
||||||
<PopUp hint={modalHint} text1={"Abbrechen"} text2={"Löschen"} displayState={modalDisplay}
|
<PopUp hint={modalHint} text1={"Abbrechen"} text2={"Löschen"} displayState={modalDisplay}
|
||||||
function1={funcButtonAbort} function2={funcButtonDelete}/>
|
function1={funcButtonAbort} function2={funcButtonDelete}/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -14,41 +14,48 @@ export default function SemesteroverviewLecturer(p) {
|
|||||||
function getModules() {
|
function getModules() {
|
||||||
let urlTest = baseURL + "/module/id?sessionid=" + localStorage.getItem("sessionid");
|
let urlTest = baseURL + "/module/id?sessionid=" + localStorage.getItem("sessionid");
|
||||||
|
|
||||||
|
//Datenanfrage an das Backend für alle Module welche dem User zugewiesen worden sind
|
||||||
fetch(urlTest).then(response => response.json()).then(m => {
|
fetch(urlTest).then(response => response.json()).then(m => {
|
||||||
setEntries(m);
|
setEntries(m);
|
||||||
let args = "";
|
let args = "";
|
||||||
for (let i = 0; i < m.length; i++) {
|
for (let i = 0; i < m.length; i++) //durchlaufe die Anzahl der Module
|
||||||
args += m[i].semesterid;
|
{
|
||||||
|
args += m[i].semesterid; //füge dem String "args" die Einträge hinzu
|
||||||
|
|
||||||
if (i < m.length - 1) {
|
if (i < m.length - 1) {
|
||||||
args += "a";
|
args += "a"; //trenne die Einträge durch ein "a" voneinander ab
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let temp = []
|
let temp = []
|
||||||
|
|
||||||
let semesterURL = baseURL + "/semester/id/all?ids=" + args + "&sessionid=" + localStorage.getItem("sessionid");
|
let semesterURL = baseURL + "/semester/id/all?ids=" + args + "&sessionid=" + localStorage.getItem("sessionid");
|
||||||
|
|
||||||
|
//Datenanfrage an das Backend für alle Semester welche dem User für die Planung zugewiesen sind
|
||||||
fetch(semesterURL).then(r => r.json()).then(sem => {
|
fetch(semesterURL).then(r => r.json()).then(sem => {
|
||||||
sem.map(e => {
|
sem.map(e => {
|
||||||
temp.push(e.name + " Sem. " + (e.number + 1))
|
temp.push(e.name + " Sem. " + (e.number + 1)) //lade das Semester in welchem der Kurs sich befindet in das Array "temp"
|
||||||
})
|
})
|
||||||
}).then(() => setSemesterNames(temp)).then(() => {
|
}).then(() => setSemesterNames(temp)).then(() => {
|
||||||
let entriesURL = baseURL + "/entries/all?sessionid=" + localStorage.getItem("sessionid")
|
let entriesURL = baseURL + "/entries/all?sessionid=" + localStorage.getItem("sessionid")
|
||||||
|
|
||||||
|
//Datenanfrage an das Backend aller Entries eines Moduls eines Semesters (automatisch nur die Entries die durch den User erstellt worden sind)
|
||||||
fetch(entriesURL).then(r => r.json()).then(en => {
|
fetch(entriesURL).then(r => r.json()).then(en => {
|
||||||
let tempTimeStamps = []
|
let tempTimeStamps = []
|
||||||
for(let j = 0; j < m.length; j++)
|
for(let j = 0; j < m.length; j++) //durchlaufe die Anzahl an Modulen die von dem Backend zurückgegeben worden sind
|
||||||
{
|
{
|
||||||
let sum = 0
|
let sum = 0
|
||||||
let currentModule = m[j]
|
let currentModule = m[j]
|
||||||
for (let i = 0; i < en.length; i++)
|
for (let i = 0; i < en.length; i++) //durchlaufe die Anzahl der Entries die von dem Backend zurückgegeben worden sind
|
||||||
{
|
{
|
||||||
if(currentModule.id === en[i].moduleid)
|
if(currentModule.id === en[i].moduleid)
|
||||||
{
|
{
|
||||||
sum += en[i].timeend - en[i].timestart
|
sum += en[i].timeend - en[i].timestart //summiere die Dauer all dieser Entries
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sum /= 3
|
sum /= 3
|
||||||
tempTimeStamps.push(sum)
|
tempTimeStamps.push(sum) //lade die Summe aller Entries eines Moduls in das Array "tempTimeStamps"
|
||||||
}
|
}
|
||||||
|
|
||||||
setTimeStamps(tempTimeStamps)
|
setTimeStamps(tempTimeStamps)
|
||||||
@@ -82,9 +89,8 @@ export default function SemesteroverviewLecturer(p) {
|
|||||||
const [semesterNames, setSemesterNames] = useState([]);
|
const [semesterNames, setSemesterNames] = useState([]);
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
function getProgressForTime(time, activated)
|
function getProgressForTime(time, activated)//überprüfe welchen Status die Fortschrittsanzeige haben muss und gib diesen zurück
|
||||||
{
|
{
|
||||||
console.log(activated)
|
|
||||||
|
|
||||||
if(time === 0)
|
if(time === 0)
|
||||||
{
|
{
|
||||||
@@ -113,7 +119,7 @@ export default function SemesteroverviewLecturer(p) {
|
|||||||
editable={false} text={semesterNames[index]} text2={e.name}
|
editable={false} text={semesterNames[index]} text2={e.name}
|
||||||
onClick={(f) => onClickSemester(e, f, semesterNames[index])}
|
onClick={(f) => onClickSemester(e, f, semesterNames[index])}
|
||||||
/>
|
/>
|
||||||
<StatusBar progress={getProgressForTime(timeStamps[index], e.activated)} module={e}/>
|
<StatusBar progress={getProgressForTime(timeStamps[index], e.activated)/*beladenes Array "timeStamps" an der Stelle "index" => relevante Summe der Einträge eines Moduls in einem Semester/Kurs*/} module={e}/>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class DataBaseHandler {
|
|||||||
st.executeUpdate("insert into entries (daynumber, yearnumber, semesterid, usercreatedbyid, timestart, timeend, moduleid, info) values (" +
|
st.executeUpdate("insert into entries (daynumber, yearnumber, semesterid, usercreatedbyid, timestart, timeend, moduleid, info) values (" +
|
||||||
entry.getDaynumber() + ", " + entry.getYearnumber() + ", " + entry.getSemesterid() + ", " +
|
entry.getDaynumber() + ", " + entry.getYearnumber() + ", " + entry.getSemesterid() + ", " +
|
||||||
entry.getUsercreatedbyid() + ", " + entry.getTimestart() + ", " + entry.getTimeend() + ", " + entry.getModuleid() + " ,'" + entry.getInfo() + "')"
|
entry.getUsercreatedbyid() + ", " + entry.getTimestart() + ", " + entry.getTimeend() + ", " + entry.getModuleid() + " ,'" + entry.getInfo() + "')"
|
||||||
);
|
); //Datenbank Eintrag eines neu erstellten Entry mit allen nötigen Informationen
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
{
|
{
|
||||||
@@ -68,28 +68,31 @@ public class DataBaseHandler {
|
|||||||
Entry current = null;
|
Entry current = null;
|
||||||
while ((current = resultSetToEntry(rs)) != null) {
|
while ((current = resultSetToEntry(rs)) != null) {
|
||||||
entryList.add(current);
|
entryList.add(current);
|
||||||
}
|
} //Datenbankanfrage für alle Entries bei denen die Semesterid, das Jahr und der Tag mit den übergebenen Paramtern übereinstimmt
|
||||||
|
|
||||||
Entry[][] entries = new Entry[6][20];
|
Entry[][] entries = new Entry[6][20];
|
||||||
for (int i = 0; i < 6; i++) {
|
for (int i = 0; i < 6; i++) //durchlaufe die Anzahl der Tage einer Vorlesungswoche (Montag,...,Samstag)
|
||||||
|
{
|
||||||
int f = 0;
|
int f = 0;
|
||||||
|
|
||||||
for (int j = 0; j < entryList.size(); j++) {
|
for (int j = 0; j < entryList.size(); j++)
|
||||||
|
{
|
||||||
if (entryList.get(j).getDaynumber() == i + daynumber) {
|
if (entryList.get(j).getDaynumber() == i + daynumber) {
|
||||||
entries[i][f] = entryList.get(j);
|
entries[i][f] = entryList.get(j); //belade das Array "entries" mit dem entries einer woche
|
||||||
f++;
|
f++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return entries;
|
return entries; //gib das Array "entries" zurück
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Entry[][] getAllEntrys(int semesterid, int daynumber, int yearnumber, int userid) {
|
public Entry[][] getAllEntrys(int semesterid, int daynumber, int yearnumber, int userid) //Datenbankanfrage für alle Entries eines Users in einem Semester
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from entries where " +
|
ResultSet rs = st.executeQuery("select * from entries where " +
|
||||||
"semesterid<>" + semesterid +
|
"semesterid<>" + semesterid +
|
||||||
@@ -119,7 +122,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Entry[] getAllEntries()
|
public Entry[] getAllEntries() //Datenbankanfrage für alle Entries
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from entries");
|
ResultSet rs = st.executeQuery("select * from entries");
|
||||||
@@ -137,7 +140,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Entry[] getAllEntriesModule(int moduleid)
|
public Entry[] getAllEntriesModule(int moduleid) //Datenbankanfrage für alle Entries eines spezifischen Moduls
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from entries where moduleid=" + moduleid);
|
ResultSet rs = st.executeQuery("select * from entries where moduleid=" + moduleid);
|
||||||
@@ -156,7 +159,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteEntry(int id) {
|
public void deleteEntry(int id) //Löschung eines spezifischen entries
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("delete from entries where id=" + id);
|
st.executeUpdate("delete from entries where id=" + id);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -164,7 +168,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateEntry(Entry entry) {
|
public void updateEntry(Entry entry) //Aktualisiere Einträge eines Entry falls es verändert wurde
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("update entries set timeend=" + entry.getTimeend() + ", timestart=" + entry.getTimestart() + " where id=" + entry.getId());
|
st.executeUpdate("update entries set timeend=" + entry.getTimeend() + ", timestart=" + entry.getTimestart() + " where id=" + entry.getId());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -209,7 +214,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Semester getSemester(int id) {
|
public Semester getSemester(int id)
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from semester where id=" + id);
|
ResultSet rs = st.executeQuery("select * from semester where id=" + id);
|
||||||
return resultSetToSemester(rs);
|
return resultSetToSemester(rs);
|
||||||
@@ -244,7 +250,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Semester updateSemester(Semester semester) {
|
public Semester updateSemester(Semester semester) //Aktualisiere die Einträge eines Semesters bei Veränderungen durch editier Funktion
|
||||||
|
{
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("update semester set startday=" + semester.getStartday() + ", " +
|
st.executeUpdate("update semester set startday=" + semester.getStartday() + ", " +
|
||||||
"endday=" + semester.getEndday() + ", " +
|
"endday=" + semester.getEndday() + ", " +
|
||||||
|
|||||||
Reference in New Issue
Block a user