Merge branch 'DesignIdea' into main
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
import React from "react";
|
||||||
|
|
||||||
|
export default function Background()
|
||||||
|
{
|
||||||
|
return (
|
||||||
|
<div style={{
|
||||||
|
position: "absolute",
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
overflow: "clip",
|
||||||
|
pointerEvents: "none"
|
||||||
|
}}>
|
||||||
|
<div style={{
|
||||||
|
position: "absolute",
|
||||||
|
transform: "skew(20deg)",
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
zIndex: -10,
|
||||||
|
backgroundColor: "#f2f2f2",
|
||||||
|
borderTopLeftRadius: 400,
|
||||||
|
borderBottomRightRadius: 800,
|
||||||
|
|
||||||
|
}}></div>
|
||||||
|
<div style={{
|
||||||
|
position: "absolute",
|
||||||
|
width: "100%",
|
||||||
|
height: "100%",
|
||||||
|
zIndex: -11,
|
||||||
|
backgroundColor: "#346991",
|
||||||
|
}}></div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -6,10 +6,10 @@ export const arrowRight = `<svg xmlns="http://www.w3.org/2000/svg" fill="white"
|
|||||||
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
|
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8z"/>
|
||||||
</svg>`
|
</svg>`
|
||||||
|
|
||||||
export const deleteItem = `<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-trash-fill" viewBox="0 0 16 16">
|
export const deleteItem = `<svg xmlns="http://www.w3.org/2000/svg" fill="black" class="bi bi-trash-fill" viewBox="0 0 16 16">
|
||||||
<path d="M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1H2.5zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5zM8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5zm3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0z"/>
|
<path d="M2.5 1a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1H3v9a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V4h.5a1 1 0 0 0 1-1V2a1 1 0 0 0-1-1H10a1 1 0 0 0-1-1H7a1 1 0 0 0-1 1H2.5zm3 4a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 .5-.5zM8 5a.5.5 0 0 1 .5.5v7a.5.5 0 0 1-1 0v-7A.5.5 0 0 1 8 5zm3 .5v7a.5.5 0 0 1-1 0v-7a.5.5 0 0 1 1 0z"/>
|
||||||
</svg>`
|
</svg>`
|
||||||
|
|
||||||
export const editItem = `<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-pencil-fill" viewBox="0 0 16 16">
|
export const editItem = `<svg xmlns="http://www.w3.org/2000/svg" fill="black" class="bi bi-pencil-fill" viewBox="0 0 16 16">
|
||||||
<path d="M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z"/>
|
<path d="M12.854.146a.5.5 0 0 0-.707 0L10.5 1.793 14.207 5.5l1.647-1.646a.5.5 0 0 0 0-.708l-3-3zm.646 6.061L9.793 2.5 3.293 9H3.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.207l6.5-6.5zm-7.468 7.468A.5.5 0 0 1 6 13.5V13h-.5a.5.5 0 0 1-.5-.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.5-.5V10h-.5a.499.499 0 0 1-.175-.032l-.179.178a.5.5 0 0 0-.11.168l-2 5a.5.5 0 0 0 .65.65l5-2a.5.5 0 0 0 .168-.11l.178-.178z"/>
|
||||||
</svg>`
|
</svg>`
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
import Button from "@/components/Button";
|
import Button from "@/components/Button";
|
||||||
import {useRouter} from "next/router";
|
import {useRouter} from "next/router";
|
||||||
import {useEffect, useState} from "react";
|
import {useEffect, useState} from "react";
|
||||||
|
import Background from "@/components/Background";
|
||||||
|
|
||||||
let userInfo = []
|
let userInfo = []
|
||||||
|
|
||||||
@@ -13,13 +14,11 @@ export default function InputForm(p) {
|
|||||||
this.checked = false;
|
this.checked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
setChecked(checked)
|
setChecked(checked) {
|
||||||
{
|
|
||||||
this.checked = checked;
|
this.checked = checked;
|
||||||
}
|
}
|
||||||
|
|
||||||
setModule(module)
|
setModule(module) {
|
||||||
{
|
|
||||||
this.module = module;
|
this.module = module;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,13 +102,12 @@ export default function InputForm(p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!found) {
|
if (!found) {
|
||||||
userInfo.push(new UserInfo(user.id, module));
|
userInfo.push(new UserInfo(user.id, module));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onCheckBoxClicked(user, e)
|
function onCheckBoxClicked(user, e) {
|
||||||
{
|
|
||||||
onModuleClicked(user, "");
|
onModuleClicked(user, "");
|
||||||
|
|
||||||
let found = false;
|
let found = false;
|
||||||
@@ -122,7 +120,7 @@ export default function InputForm(p) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!found) {
|
if (!found) {
|
||||||
let temp = new UserInfo(user.id, "");
|
let temp = new UserInfo(user.id, "");
|
||||||
temp.setChecked(e.target.checked);
|
temp.setChecked(e.target.checked);
|
||||||
userInfo.push(temp);
|
userInfo.push(temp);
|
||||||
@@ -131,19 +129,38 @@ export default function InputForm(p) {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="inputForm round-border">
|
<Background/>
|
||||||
<h3>SemesterName</h3>
|
<div className="inputForm box-shadow">
|
||||||
<input className="courseNameInput" value={courseName} onChange={(e) => setCourseName(e.target.value)}/>
|
<p style={{
|
||||||
|
fontSize: "18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
width: 150
|
||||||
|
}}>SemesterName</p>
|
||||||
|
<input className="courseNameInput box-shadow" value={courseName}
|
||||||
|
onChange={(e) => setCourseName(e.target.value)}/>
|
||||||
<div className="semesterRangeInput">
|
<div className="semesterRangeInput">
|
||||||
<div className="semesterDateLables">
|
<div className="semesterDateLables">
|
||||||
<p className="semesterDateLable">Semesterstart</p>
|
<p className="semesterDateLable" style={{
|
||||||
<p className="semesterDateLable">Semesterende</p>
|
fontSize: " 18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
width: 150
|
||||||
|
}}>Semesterstart</p>
|
||||||
|
<p className="semesterDateLable" style={{
|
||||||
|
fontSize: " 18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
width: 150
|
||||||
|
}}>Semesterende</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="semesterDateInputPair">
|
<div className="semesterDateInputPair">
|
||||||
<input type="date" id="start" name="trip-start" value={startDate}
|
<input type="date" id="start" className={"box-shadow selector"} value={startDate}
|
||||||
|
style={{padding: 5}}
|
||||||
onChange={(e) => setStartDate(e.target.value)}/>
|
onChange={(e) => setStartDate(e.target.value)}/>
|
||||||
<p className="inputFieldSeperator">-</p>
|
<p className="inputFieldSeperator">-</p>
|
||||||
<input type="date" id="start" name="trip-start" value={endDate}
|
<input type="date" id="start" className={"box-shadow selector"} value={endDate}
|
||||||
|
style={{padding: 5}}
|
||||||
onChange={(e) => setEndDate(e.target.value)}/>
|
onChange={(e) => setEndDate(e.target.value)}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -151,19 +168,57 @@ export default function InputForm(p) {
|
|||||||
<table>
|
<table>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th style={{
|
||||||
<th>Dozent</th>
|
fontSize: " 18px",
|
||||||
<th>Modul</th>
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
}}>Wählen
|
||||||
|
</th>
|
||||||
|
<th style={{
|
||||||
|
fontSize: " 18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
}}>Freischalten
|
||||||
|
</th>
|
||||||
|
<th style={{
|
||||||
|
fontSize: " 18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
textAlign: "center"
|
||||||
|
}}>Dozent
|
||||||
|
</th>
|
||||||
|
<th style={{
|
||||||
|
fontSize: " 18px",
|
||||||
|
color: "#777777",
|
||||||
|
fontWeight: 500,
|
||||||
|
textAlign: "center",
|
||||||
|
}}>Modul
|
||||||
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
{users.map(user => (
|
{users.map(user => (
|
||||||
<tr>
|
<tr>
|
||||||
<td><input type="checkbox" onChange={(e) => {
|
|
||||||
|
<td><div style={{
|
||||||
|
display: "flex",
|
||||||
|
flexDirection: "row",
|
||||||
|
justifyContent: "center",
|
||||||
|
}}><input type="checkbox" onChange={(e) => {
|
||||||
onCheckBoxClicked(user, e);
|
onCheckBoxClicked(user, e);
|
||||||
}}/></td>
|
}}/></div></td>
|
||||||
<td>{user.firstName + " " + user.lastName}</td>
|
|
||||||
<select id={"userSelect"} name={"userSelect"} multiple={false} style={{
|
<td><div style={{
|
||||||
|
display: "flex",
|
||||||
|
flexDirection: "row",
|
||||||
|
justifyContent: "center",
|
||||||
|
}}><input type="checkbox" onChange={(e) => {
|
||||||
|
onCheckBoxClicked(user, e);
|
||||||
|
}}/></div></td>
|
||||||
|
<td style={{}}>{user.firstName + " " + user.lastName}</td>
|
||||||
|
<select id={"userSelect"} name={"userSelect"} className={"box-shadow selector"}
|
||||||
|
multiple={false} style={{
|
||||||
maxHeight: 80,
|
maxHeight: 80,
|
||||||
border: "1px solid black"
|
marginTop: 10,
|
||||||
|
padding: "5px 2px"
|
||||||
}} onChange={(e) => {
|
}} onChange={(e) => {
|
||||||
onModuleClicked(user, e.target.value)
|
onModuleClicked(user, e.target.value)
|
||||||
}}>
|
}}>
|
||||||
@@ -179,10 +234,10 @@ export default function InputForm(p) {
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div id="buttons">
|
<div id="buttons">
|
||||||
<Button color="red" width="100px" height="30px" text="Abbrechen" onClick={() => {
|
<Button color="rgba(54,54,54,0.64)" width="100px" height="30px" text="Abbrechen" onClick={() => {
|
||||||
router.back()
|
router.back()
|
||||||
}}/>
|
}}/>
|
||||||
<Button color="green" width="100px" height="30px" text="Speichern" onClick={() => {
|
<Button color="#77932b" width="100px" height="30px" text="Speichern" onClick={() => {
|
||||||
onCreateClicked()
|
onCreateClicked()
|
||||||
}}/>
|
}}/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import {useState} from "react";
|
import React, {useState} from "react";
|
||||||
import Button from "@/components/Button";
|
import Button from "@/components/Button";
|
||||||
import {NextResponse} from "next/server";
|
import {NextResponse} from "next/server";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
@@ -36,28 +36,30 @@ export default function Login() {
|
|||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="border">
|
// <div className="border">
|
||||||
<login className={"login-container"}>
|
<login className={"login-container box-shadow"}>
|
||||||
<p className={"font-big-fat placement"}>Login</p>
|
<p className={"font-big-fat placement"}>Login</p>
|
||||||
<div className={"placement"}>
|
<div className={"placement"}>
|
||||||
<br/>
|
<br/>
|
||||||
<p className={"font-kinda-big"}>Username</p>
|
<p className={"font-kinda-big"}>Username</p>
|
||||||
<input type="text" value={inputUserName} onChange={e => setInputUserName(e.target.value)}
|
<input type="text" value={inputUserName} onChange={e => setInputUserName(e.target.value)}
|
||||||
placeholder={hint} className="input input-bordered input-sm w-full max-w-xs"
|
placeholder={hint} className="input input-bordered input-sm w-full max-w-xs box-shadow"
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: backgroundColor
|
backgroundColor: backgroundColor
|
||||||
}}/>
|
}}/>
|
||||||
<br/>
|
<br/>
|
||||||
<p className={"font-kinda-big"}>Password</p>
|
<p className={"font-kinda-big"}>Password</p>
|
||||||
<input type="password" value={inputPassword} onChange={e => setInputPassword(e.target.value)}
|
<input type="password" value={inputPassword} onChange={e => setInputPassword(e.target.value)}
|
||||||
placeholder={hint} className="input input-bordered input-sm w-full max-w-xs"
|
placeholder={hint} className="input input-bordered input-sm w-full max-w-xs box-shadow"
|
||||||
style={{
|
style={{
|
||||||
backgroundColor: backgroundColor
|
backgroundColor: backgroundColor
|
||||||
}}/>
|
}}/>
|
||||||
</div>
|
</div>
|
||||||
<Button text={"Login"} color={"#e2001a"} width={"25px"} onClick={() => on_login_click()}/>
|
|
||||||
|
<Button text={"Login"} color={"#77932b"} width={100} height={40} onClick={() => on_login_click()}/>
|
||||||
|
|
||||||
|
|
||||||
</login>
|
</login>
|
||||||
</div>
|
// </div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -13,11 +13,11 @@ export default function PopUp(p) {
|
|||||||
}}>
|
}}>
|
||||||
|
|
||||||
<div className={"modal-container"}>
|
<div className={"modal-container"}>
|
||||||
<div className={"modal"}>
|
<div className={"modal box-shadow"}>
|
||||||
<p className={"font-middle"}>{p.hint}</p>
|
<p className={"font-middle"}>{p.hint}</p>
|
||||||
<div>
|
<div>
|
||||||
<Button text={p.text1} color={"#363636"} onClick={p.function1}/>
|
<Button text={p.text1} color={"rgba(54,54,54,0.64)"} onClick={p.function1}/>
|
||||||
<Button text={p.text2} color={"#7a7a7a"} onClick={p.function2}/>
|
<Button text={p.text2} color={"#77932b"} onClick={p.function2}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function SemesterTile(p)
|
|||||||
})
|
})
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div onClick={(e) => p.onClick(e)} className={"semester-tile"}>
|
<div onClick={(e) => p.onClick(e)} className={"semester-tile box-shadow"}>
|
||||||
<p>{p.text}</p>
|
<p>{p.text}</p>
|
||||||
<StatusBar progress={0}/>
|
<StatusBar progress={0}/>
|
||||||
<div style={{
|
<div style={{
|
||||||
@@ -21,8 +21,8 @@ export default function SemesterTile(p)
|
|||||||
alignItems: "center",
|
alignItems: "center",
|
||||||
gap: 5
|
gap: 5
|
||||||
}}>
|
}}>
|
||||||
<Button icon={deleteItem} width={30} height={30} onClick={p.onButtonDeleteClick}/>
|
<Button icon={deleteItem} width={30} height={30} color={"#ffffff"} onClick={p.onButtonDeleteClick}/>
|
||||||
<Button icon={editItem} width={30} height={30} onClick={p.onButtonEditClick}/>
|
<Button icon={editItem} width={30} height={30} color={"#ffffff"} onClick={p.onButtonEditClick}/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -11,19 +11,28 @@ import InputForm from "@/components/InputForm";
|
|||||||
import Login from "@/components/Login";
|
import Login from "@/components/Login";
|
||||||
import Test from "@/components/Test";
|
import Test from "@/components/Test";
|
||||||
import BasicDateCalendar from "@/components/CalendarSideBar";
|
import BasicDateCalendar from "@/components/CalendarSideBar";
|
||||||
|
import {randomInt} from "next/dist/shared/lib/bloom-filter/utils";
|
||||||
|
import Background from "@/components/Background";
|
||||||
|
|
||||||
|
|
||||||
const inter = Inter({subsets: ['latin']})
|
const inter = Inter({subsets: ['latin']})
|
||||||
|
|
||||||
export default function Home(p) {
|
export default function Home(p) {
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
||||||
|
|
||||||
<div className={"normal-centered"}>
|
<div className={"normal-centered"}>
|
||||||
|
<Background/>
|
||||||
|
<h1 style={{
|
||||||
|
fontSize: 40,
|
||||||
|
fontWeight: "bold",
|
||||||
|
color: "#77932b",
|
||||||
|
marginBottom: "5%",
|
||||||
|
textShadow: "2px 2px 2px rgba(0, 0, 0, 0.2)",
|
||||||
|
textAlign: "center"
|
||||||
|
}}>Willkommen in deinem Vorlesungsplaner</h1>
|
||||||
<Login/>
|
<Login/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
import Button from "@/components/Button";
|
import Button from "@/components/Button";
|
||||||
import {useEffect, useState} from "react";
|
import React, {useEffect, useState} from "react";
|
||||||
import SemesterTile from "@/components/SemesterTile";
|
import SemesterTile from "@/components/SemesterTile";
|
||||||
import InputForm from "@/components/InputForm";
|
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";
|
||||||
|
|
||||||
export default function SemesterOverview(p)
|
export default function SemesterOverview(p)
|
||||||
{
|
{
|
||||||
@@ -91,6 +92,7 @@ export default function SemesterOverview(p)
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={"semester-overview"}>
|
<div className={"semester-overview"}>
|
||||||
|
<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={() => {
|
||||||
localStorage.setItem("currentsid", e.id)
|
localStorage.setItem("currentsid", e.id)
|
||||||
@@ -101,7 +103,7 @@ export default function SemesterOverview(p)
|
|||||||
funcButtonEdit(e, m);
|
funcButtonEdit(e, m);
|
||||||
}}/>))
|
}}/>))
|
||||||
}
|
}
|
||||||
<Button color={"#818181"} 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()}/>
|
||||||
<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}/>
|
||||||
|
|||||||
+167
-120
@@ -8,12 +8,27 @@
|
|||||||
--background-end-rgb: 255, 255, 255;
|
--background-end-rgb: 255, 255, 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #f2f2f2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.splash {
|
||||||
|
position: absolute;
|
||||||
|
border-radius: 70px;
|
||||||
|
background-color: #c77c0c;
|
||||||
|
|
||||||
|
z-index: -5;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Page Layouts
|
Page Layouts
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.normal-centered
|
.normal-centered {
|
||||||
{
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -21,8 +36,7 @@ Page Layouts
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semester-overview
|
.semester-overview {
|
||||||
{
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
@@ -33,37 +47,41 @@ Page Layouts
|
|||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body
|
body {
|
||||||
{
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.box-shadow
|
||||||
|
{
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-shadow-heavy
|
||||||
|
{
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0,1);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Button
|
Button
|
||||||
*/
|
*/
|
||||||
.round-border
|
.round-border {
|
||||||
{
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
border-width: 0;
|
border-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-small
|
.font-small {
|
||||||
{
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-middle
|
.font-middle {
|
||||||
{
|
font-size: 16px;
|
||||||
font-size: 16px ;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-big
|
.font-big {
|
||||||
{
|
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.button
|
.button {
|
||||||
{
|
|
||||||
background-color: #363636;
|
background-color: #363636;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
color: white;
|
color: white;
|
||||||
@@ -71,6 +89,10 @@ Button
|
|||||||
|
|
||||||
.button:hover
|
.button:hover
|
||||||
{
|
{
|
||||||
|
filter: brightness(0.65);
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
background-color: #585858;
|
background-color: #585858;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,16 +100,14 @@ Button
|
|||||||
Step Progress Bar
|
Step Progress Bar
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.step-container
|
.step-container {
|
||||||
{
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
max-width: 400px;
|
max-width: 400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steps
|
.steps {
|
||||||
{
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -97,9 +117,9 @@ Step Progress Bar
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.step
|
.step {
|
||||||
{
|
width: 40px;
|
||||||
width: 40px; height: 40px;
|
height: 40px;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@@ -108,29 +128,31 @@ Step Progress Bar
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steps .not-started
|
.steps .not-started {
|
||||||
{
|
/*background-image: linear-gradient(#b42121, #b44821);*/
|
||||||
background-image: linear-gradient(#b42121, #b44821);
|
background-color: #77932b;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.steps .started
|
.steps .started {
|
||||||
{
|
/*background-image: linear-gradient(#c75c0c, #c77c0c);*/
|
||||||
background-image: linear-gradient(#c75c0c, #c77c0c);
|
background-color: #77932b;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steps .finished
|
|
||||||
{
|
.steps .finished {
|
||||||
background-image: linear-gradient(#43C20BFF, #0bc27c);
|
/*background-image: linear-gradient(#43C20BFF, #0bc27c);*/
|
||||||
|
background-color: #77932b;
|
||||||
}
|
}
|
||||||
|
|
||||||
.steps .active
|
|
||||||
{
|
.steps .active {
|
||||||
border-width: 3px;
|
/*border-width: 2px;*/
|
||||||
border-color: #1e2428;
|
/*border-color: #1e2428;*/
|
||||||
|
background-color: #346991;
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar
|
.progress-bar {
|
||||||
{
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 8px;
|
height: 8px;
|
||||||
background-color: #5d606e;
|
background-color: #5d606e;
|
||||||
@@ -141,7 +163,7 @@ Step Progress Bar
|
|||||||
weekSelector
|
weekSelector
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.dateElement{
|
.dateElement {
|
||||||
display: flex;
|
display: flex;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
@@ -160,8 +182,7 @@ weekSelector
|
|||||||
Popup
|
Popup
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.modal-container
|
.modal-container {
|
||||||
{
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -172,29 +193,45 @@ Popup
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: rgba(0, 0, 0, 0.3);
|
background-color: rgba(0, 0, 0, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal
|
.modal {
|
||||||
{
|
height: 180px;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
height: 100px;
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
background-color: rgb(255, 255, 255);
|
background-color: rgb(255, 255, 255);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 5px;
|
padding: 20px;
|
||||||
|
animation-name: modalgrow;
|
||||||
|
animation-duration: 0.2s;
|
||||||
|
animation-play-state: running;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal p
|
@keyframes modalgrow {
|
||||||
{
|
from
|
||||||
|
{
|
||||||
|
height: 90px;
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
|
to
|
||||||
|
{
|
||||||
|
height: 180px;
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal p {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
pointer-events: none;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal div
|
.modal div {
|
||||||
{
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -207,37 +244,31 @@ Calender View
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
.calender-container
|
.calender-container {
|
||||||
{
|
|
||||||
max-height: 600px;
|
max-height: 600px;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
display: grid;
|
display: grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
.calender-container::-webkit-scrollbar
|
.calender-container::-webkit-scrollbar {
|
||||||
{
|
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content
|
.content {
|
||||||
{
|
|
||||||
grid-area: 1 / 1;
|
grid-area: 1 / 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay
|
.overlay {
|
||||||
{
|
|
||||||
padding: 2px 0 0 0;
|
padding: 2px 0 0 0;
|
||||||
grid-area: 1 / 1;
|
grid-area: 1 / 1;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-pointer-events
|
.no-pointer-events {
|
||||||
{
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wochen-tag-container
|
.wochen-tag-container {
|
||||||
{
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@@ -248,8 +279,7 @@ Calender View
|
|||||||
background-color: #363636;
|
background-color: #363636;
|
||||||
}
|
}
|
||||||
|
|
||||||
.calender-view
|
.calender-view {
|
||||||
{
|
|
||||||
width: 1000px;
|
width: 1000px;
|
||||||
height: 2400px;
|
height: 2400px;
|
||||||
background-color: #363636;
|
background-color: #363636;
|
||||||
@@ -262,8 +292,7 @@ Calender View
|
|||||||
padding: 2px 0 0 0;
|
padding: 2px 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.calender-view .spalte
|
.calender-view .spalte {
|
||||||
{
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
@@ -272,8 +301,7 @@ Calender View
|
|||||||
grid-template-columns: 100%;
|
grid-template-columns: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.wochen-tag-container .wochen-tag
|
.wochen-tag-container .wochen-tag {
|
||||||
{
|
|
||||||
text-align: center;
|
text-align: center;
|
||||||
background-color: #f80000;
|
background-color: #f80000;
|
||||||
width: 400px;
|
width: 400px;
|
||||||
@@ -287,8 +315,7 @@ Calender View
|
|||||||
grid-row-end: 4;
|
grid-row-end: 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry
|
.entry {
|
||||||
{
|
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -302,8 +329,7 @@ Calender View
|
|||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.entry .resize-grab
|
.entry .resize-grab {
|
||||||
{
|
|
||||||
height: 5px;
|
height: 5px;
|
||||||
cursor: ns-resize;
|
cursor: ns-resize;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -328,16 +354,36 @@ input {
|
|||||||
|
|
||||||
.courseNameInput {
|
.courseNameInput {
|
||||||
width: 300px;
|
width: 300px;
|
||||||
|
padding: 5px;
|
||||||
|
border: none;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-family: Arial, serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.selector
|
||||||
|
{
|
||||||
|
border-width: 0;
|
||||||
|
border-radius: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semesterDateInput {
|
.semesterDateInput {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
|
padding: 5px;
|
||||||
|
border: none;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 5px;
|
||||||
|
font-family: Arial, serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semesterDateLables, .semesterDateInputPair {
|
.semesterDateLables, .semesterDateInputPair {
|
||||||
display:flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
justify-content: left;
|
justify-content: left;
|
||||||
|
padding: 0;
|
||||||
|
border: none;
|
||||||
|
background-color: white;
|
||||||
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.inputFieldSeperator {
|
.inputFieldSeperator {
|
||||||
@@ -345,9 +391,8 @@ input {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semesterDateLable{
|
.semesterDateLable {
|
||||||
width: 150px;
|
margin-right: 32px;
|
||||||
margin-right: 40px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.semesterRangeInput {
|
.semesterRangeInput {
|
||||||
@@ -358,9 +403,11 @@ input {
|
|||||||
width: 600px;
|
width: 600px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border: solid;
|
/*border: solid;*/
|
||||||
|
border-radius: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
background-color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
#buttons {
|
#buttons {
|
||||||
@@ -368,11 +415,12 @@ input {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dozentSelector {
|
.dozentSelector {
|
||||||
height: 350px;
|
height: 350px;
|
||||||
border: solid;
|
/*border: solid;*/
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
width: 500px;
|
width: 500px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
@@ -384,8 +432,7 @@ th {
|
|||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
td
|
td {
|
||||||
{
|
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -393,72 +440,73 @@ td
|
|||||||
Login
|
Login
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.login-container
|
.login-container {
|
||||||
{
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: space-evenly;
|
||||||
gap: 10px;
|
/*gap: 10px;*/
|
||||||
width: 100%;
|
border-radius: 10px;
|
||||||
height: 100%;
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
width: 375px;
|
||||||
|
height: 350px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-bordered
|
|
||||||
{
|
.input-bordered {
|
||||||
border: 1px solid #000000;
|
border: none;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input
|
.input {
|
||||||
{
|
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
background-color: #e9e9e9;
|
border: none;
|
||||||
|
background-color: white;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
font-family: Arial, serif;
|
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border{
|
.input:focus
|
||||||
width: 375px;
|
{
|
||||||
height: 350px;
|
outline: none;
|
||||||
background-color: #ffffff;
|
|
||||||
border-radius: 5px;
|
|
||||||
border-width: 2px;
|
|
||||||
border-color: #1e2428;
|
|
||||||
/*gap: 10px;*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.placement {
|
.placement {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
justify-content: left;
|
justify-content: left;
|
||||||
}
|
}
|
||||||
.font-kinda-big{
|
|
||||||
|
.font-kinda-big {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
color: #777777;
|
||||||
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.font-big-fat {
|
.font-big-fat {
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-sm {
|
.input-sm {
|
||||||
height: 2rem/* 32px */;
|
height: 2rem /* 32px */;
|
||||||
padding-left: 0.75rem/* 12px */;
|
padding-left: 0.75rem /* 12px */;
|
||||||
padding-right: 0.75rem/* 12px */;
|
padding-right: 0.75rem /* 12px */;
|
||||||
font-size: 0.875rem/* 14px */;
|
font-size: 0.875rem /* 14px */;
|
||||||
line-height: 2rem/* 32px */;
|
line-height: 2rem /* 32px */;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
SemesterTile
|
SemesterTile
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.semester-tile
|
.semester-tile {
|
||||||
{
|
background-color: #ffffff;
|
||||||
background-color: #797979;
|
|
||||||
width: 240px;
|
width: 240px;
|
||||||
height: 160px;
|
height: 160px;
|
||||||
color: white;
|
color: black;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -468,17 +516,16 @@ SemesterTile
|
|||||||
gap: 10px;
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semester-tile:hover
|
.semester-tile:hover {
|
||||||
{
|
background-color: #e1e1e1;
|
||||||
background-color: #5d606e;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.semester-tile p
|
.semester-tile p {
|
||||||
{
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 23px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.semester-tile .step-container
|
.semester-tile .step-container {
|
||||||
{
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user