Compare commits

..

No commits in common. "826f6597fda8095aef2845d8bd5d9dc68c53da0c" and "c9bfe0dd27e0b60e7d06151c2f713adbdee946a8" have entirely different histories.

3 changed files with 80 additions and 224 deletions

View file

@ -1,164 +1,58 @@
{{define "title"}}Sprechstunde anlegen{{end}} <{{define "title"}}Sprechstunde anlegen{{end}}
{{define "content"}} {{define "content"}}
<p>
<div class="col-md-12"> {{range .Errors}}{{.}}<br>{{end}}
<div class="alert alert-info"> </p>
<p>
Für die vorlesungsfreie Zeit müssen und können keine Sprechstunden gebucht werden. Für die vorlesungsfreie Zeit müssen und können keine Sprechstunden gebucht werden.
Nutzt die offenen Arbeitsräume in dieser Zeit, wann immer ihr sie braucht. Nutzt die offenen Arbeitsräume in dieser Zeit, wann immer ihr sie braucht.
</div> </p>
{{range .Errors}}
<div class="alert alert-danger">
<strong>Fehler: </strong> {{.}}
</div>
{{end}}
</div>
<style>
input.required ~ label::after, select.required ~ label::after {
content: ' *';
color: red;
}
.form-control ~ .form-text {
padding-left: 12px;
padding-right: 12px;
}
</style>
<div class="row">
<div class="col-lg-8 mb-4">
<form method="POST" action="addOfficeHour"> <form method="POST" action="addOfficeHour">
<div class="form-floating mb-3"> <label for="veranstaltung">Veranstaltung</label>:
<input class="form-control required" required name="name" id="name" type="text" value="{{.Name}}" placeholder=""> <select name="veranstaltung" id="veranstaltung">
<label for="name">Name</label>
</div>
<div class="form-floating mb-3">
<input class="form-control required" required name="email" id="email" type="email" value="{{.Email}}" placeholder="">
<label for="email">Email-Adresse</label>
<div class="form-text">
{{if ne .Config.Tutor.MailSuffix ""}}
Du musst hier eine Email-Adresse angeben, die auf „{{.Config.Tutor.MailSuffix}}“ endet.<br />
{{end}}
Die Email-Adresse dient der Vermeidung von Spam und wird nicht veröffentlicht.
</div>
</div>
<div class="form-floating mb-3">
<select class="form-control form-select required" required name="veranstaltung" id="veranstaltung">
{{range $course := .Courses}} {{range $course := .Courses}}
<option value="{{$course.Id}}"{{if eq $course.Id $.SelectedCourse}} selected{{end}}>{{$course.Name}}</option> <option value="{{$course.Id}}"{{if eq $course.Id $.SelectedCourse}} selected{{end}}>{{$course.Name}}</option>
{{end}} {{end}}
</select> </select><br>
<label for="veranstaltung">Veranstaltung</label> <small><span class="text-muted">Wenn du eine Veranstaltung hier vermisst, schreibe an
<div class="form-text"> <a href="mailto:sprechstundentool@mathebau.de?subject=Sprechstundentool: Neue Veranstaltung&body=Hey liebe Sprechstundentool-Admins,%0D%0A%0D%0Ameine Veranstaltung fehlt im Auswahlmenü.%0D%0AEs ist die Veranstaltung%0D%0A%0D%0AViele Grüße%0D%0A">sprechstundentool@mathebau.de</a>.</span></small><br>
Wenn du eine Veranstaltung hier vermisst, schreibe an <label for="woche">Vorlesungswoche</label>:
<a href="mailto:sprechstundentool@mathebau.de?subject=Sprechstundentool: Neue Veranstaltung&body=Hey liebe Sprechstundentool-Admins,%0D%0A%0D%0Ameine Veranstaltung fehlt im Auswahlmenü.%0D%0AEs ist die Veranstaltung%0D%0A%0D%0AViele Grüße%0D%0A" tabindex="-1">sprechstundentool@mathebau.de</a>. <select name="woche" id="woche">
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-floating mb-3">
<select class="form-control form-select required" required name="woche" id="woche">
<option value="0"{{if eq 0 $.Date.Week}} selected{{end}}>Jede</option> <option value="0"{{if eq 0 $.Date.Week}} selected{{end}}>Jede</option>
<option value="1"{{if eq 1 $.Date.Week}} selected{{end}}>Ungerade</option> <option value="1"{{if eq 1 $.Date.Week}} selected{{end}}>Ungerade</option>
<option value="2"{{if eq 2 $.Date.Week}} selected{{end}}>Gerade</option> <option value="2"{{if eq 2 $.Date.Week}} selected{{end}}>Gerade</option>
</select> </select><br>
<label for="woche">Vorlesungswoche</label> <label for="tag">Tag</label>: <select name="tag" id="tag">
</div>
</div>
<div class="col-md-6">
<div class="form-floating mb-3">
<select class="form-control form-select required" required name="tag" id="tag">
<option value="0"{{if eq 0 $.Date.Day}} selected{{end}}>Montag</option> <option value="0"{{if eq 0 $.Date.Day}} selected{{end}}>Montag</option>
<option value="1"{{if eq 1 $.Date.Day}} selected{{end}}>Dienstag</option> <option value="1"{{if eq 1 $.Date.Day}} selected{{end}}>Dienstag</option>
<option value="2"{{if eq 2 $.Date.Day}} selected{{end}}>Mittwoch</option> <option value="2"{{if eq 2 $.Date.Day}} selected{{end}}>Mittwoch</option>
<option value="3"{{if eq 3 $.Date.Day}} selected{{end}}>Donnerstag</option> <option value="3"{{if eq 3 $.Date.Day}} selected{{end}}>Donnerstag</option>
<option value="4"{{if eq 4 $.Date.Day}} selected{{end}}>Freitag</option> <option value="4"{{if eq 4 $.Date.Day}} selected{{end}}>Freitag</option>
</select> </select><br>
<label for="tag">Tag</label> <label for="startzeit">Startzeit</label>: <input type="time" name="startzeit" id="startzeit" min="{{printf "%02d" .EarliestStartTime.Hour}}:{{printf "%02d" .EarliestStartTime.Minute}}" max="{{printf "%02d" .LatestStartTime.Hour}}:{{printf "%02d" .LatestStartTime.Minute}}" {{if ge $.Date.Hour .EarliestStartTime.Hour}}value="{{printf "%02d" $.Date.Hour}}:{{printf "%02d" $.Date.Minute}}"{{end}} required><br>
</div> <label for="dauer">Dauer in Minuten</label>: <input name="dauer" id="dauer" type="number" min="{{.MinuteGranularity}}" max="120" step="{{.MinuteGranularity}}" value="{{.Duration}}" required><br>
<label for="raum">Raum</label>:
</div> <select name="raum" id="raum">
</div>
<div class="row">
<div class="col-md-6">
<div class="form-floating mb-3">
<input class="form-control required" required type="time" name="startzeit" id="startzeit"
min="{{printf "%02d" .EarliestStartTime.Hour}}:{{printf "%02d" .EarliestStartTime.Minute}}"
max="{{printf "%02d" .LatestStartTime.Hour}}:{{printf "%02d" .LatestStartTime.Minute}}"
{{if ge $.Date.Hour .EarliestStartTime.Hour}}value="{{printf "%02d" $.Date.Hour}}:{{printf "%02d" $.Date.Minute}}" {{end}}>
<label for="startzeit">Startzeit</label>
</div>
</div>
<div class="col-md-6">
<div class="form-floating mb-3">
<input class="form-control required" required name="dauer" id="dauer" type="number"
min="{{.MinuteGranularity}}" max="120" step="{{.MinuteGranularity}}"
{{ if ne .Duration 0}}value="{{.Duration}}"{{end}} placeholder="">
<label for="dauer">Dauer in Minuten</label>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-floating mb-3">
<select class="form-control form-select required" required name="raum" id="raum">
{{range $room := .Rooms}} {{range $room := .Rooms}}
<option value="{{$room.Id}}"{{if eq $room.Id $.SelectedRoom}} selected{{end}}>{{$room.Name}}</option> <option value="{{$room.Id}}"{{if eq $room.Id $.SelectedRoom}} selected{{end}}>{{$room.Name}}</option>
{{end}} {{end}}
</select> </select><br>
<label for="raum">Raum</label> <label for="raumname">Raumname (für Sonderräume)</label>: <input type="text" name="raumname" id="raumname" value="{{.Roomname}}"><br>
</div> <label for="name">Name</label>: <input name="name" id="name" type="text" size="50" value="{{.Name}}" required><br>
<label for="email">Email-Adresse</label>:
</div> <input name="email" id="email" type="email" size="50" value="{{.Email}}" required><br>
<div class="col-md-6"> <label for="info">Info</label>: <input name="info" id="info" type="text" size="50" value="{{.Info}}"><br>
<input type="submit">
<div class="form-floating mb-3">
<input class="form-control" type="text" name="raumname" id="raumname" value="{{.Roomname}}" placeholder="">
<label for="raumname">Raumname (für Sonderräume)</label>
</div>
</div>
</div>
<div class="form-floating mb-3">
<input class="form-control" name="info" id="info" type="text" value="{{.Info}}" placeholder="">
<label for="info">Info</label>
</div>
<div class="text-center">
<button class="btn btn-primary" type="submit">Sprechstunde erstellen</button>
</div>
</form> </form>
</div> {{if ne .Config.Tutor.MailSuffix ""}}
<div class="col-lg-4"> Du musst hier eine Email-Adresse angeben, die auf „{{.Config.Tutor.MailSuffix}}“ endet.<br>
<p> {{end}}
Beachte, dass in den Arbeitsräumen nur begrenzt viele Sprechstunden gleichzeitig stattfinden dürfen. Außerdem dürfen in Räumen nur begrenzt viele Sprechstunden gleichzeitig stattfinden, nämlich
Das Formular wird dich warnen, falls du versuchst deine Sprechstunde in einem zu vollen Raum anzulegen. <dl>
</p>
<ul class="list-group">
{{range $room := .Rooms}} {{range $room := .Rooms}}
{{ if ge 42 $room.MaxOccupy}} <dt>{{$room.Name}}</dt>
<li class="list-group-item d-flex justify-content-between align-items-center"> <dd>{{$room.MaxOccupy}} Sprechstunde{{if gt $room.MaxOccupy 1}}n{{end}}</dd>
{{$room.Name}}
<span class="badge bg-secondary rounded-pill">
{{$room.MaxOccupy}} Sprechstunde{{if gt $room.MaxOccupy 1}}n{{end}}
</span>
</li>
{{end}} {{end}}
{{end}} </dl>
</ul>
</div>
</div>
{{end}} {{end}}

View file

@ -12,32 +12,16 @@
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<div class="col-md-8 offset-md-2 bg-secondary bg-gradient mt-3 mb-2 p-3 rounded" style="--bs-bg-opacity: .3;">
<h5 class="text-center m-1">Sprechstunden für Matheveranstaltungen an der TU Darmstadt</h5>
<p class="text-center mb-0">
<a href="/">Startseite</a>
&bullet;
<a href="/addOfficeHour">Sprechstunde anlegen</a>
&bull;
<a href="/deleteOfficeHour">Sprechstunde löschen</a>
</p>
</div>
<div id="content">
<h1 class="h3 m-1 mb-3">{{template "title" .}}</h1>
{{block "content" .}}Du solltest dies nicht sehen.{{end}} {{block "content" .}}Du solltest dies nicht sehen.{{end}}
</div> </div>
</div>
<footer class="container"> <footer class="container">
<div class="col-md-8 offset-md-2 bg-secondary bg-gradient my-3 p-3 rounded" style="--bs-bg-opacity: .3;"> <a href="/">Startseite</a><br>
&COPY; <a class="text-body" href="https://mathebau.de/">Fachschaft Mathematik, TU Darmstadt</a> <a href="/addOfficeHour">Sprechstunde anlegen</a><br>
<br /> <a href="/deleteOfficeHour">Sprechstunde löschen</a><br>
<!-- NOTE: when updating this hard coded email adress, also update it in addMask.html --> <!-- NOTE: when updating this hard coded email adress, also update it in addMask.html -->
Technische Fragen an <a href="mailto:sprechstundentool@mathebau.de">sprechstundentool@mathebau.de</a> Technische Fragen an <a href="mailto:sprechstundentool@mathebau.de">sprechstundentool@mathebau.de</a><br>
<br /> Quellcode und Featurewünsche: <a href="https://gitea.mathebau.de/Fachschaft/sprechstunden-go">Gitea-Repository</a>
Quellcode und Featurewünsche:&nbsp;<a href="https://gitea.mathebau.de/Fachschaft/sprechstunden-go">Gitea-Repository</a>
</div>
</footer> </footer>
<script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script> <script src="/static/bootstrap/js/bootstrap.bundle.min.js"></script>

View file

@ -1,47 +1,25 @@
{{define "title"}} {{define "title"}}Übersicht{{end}}
Sprechstunden
{{- range $course := .Courses -}}
{{- if eq $course.Id $.SelectedCourse}} für {{$course.Name}}{{- end -}}
{{- end -}}
{{- range $room := .Rooms -}}
{{- if eq $room.Id $.SelectedRoom}} in Raum {{$room.Name}}{{- end -}}
{{- end -}}
{{end}}
{{define "content"}} {{define "content"}}
<form method="GET" action="/getByCourse"> <form method="GET" action="/getByCourse">
<div class="input-group mb-3"> <label for="veranstaltung">Veranstaltung: </label>
<div class="form-floating col-lg-8"> <select name="veranstaltung" id="veranstaltung" size="1" onchange="document.forms[0].submit()">
<select class="form-control form-select" name="veranstaltung" id="veranstaltung" size="1" onchange="document.forms[0].submit()"> <option value="">Alle</option>
<option value=""> auswählen </option>
{{range $course := .Courses}} {{range $course := .Courses}}
<option value="{{$course.Id}}"{{if eq $course.Id $.SelectedCourse}} selected{{end}}>{{$course.Name}}</option> <option value="{{$course.Id}}"{{if eq $course.Id $.SelectedCourse}} selected{{end}}>{{$course.Name}}</option>
{{end}} {{end}}
</select> </select>
<label for="veranstaltung">Veranstaltung</label> <input type="submit" value="Auswählen">
</div>
<noscript>
<button class="btn btn-sm btn-outline-secondary col-lg-4" type="submit">Los!</button>
</noscript>
</div>
</form> </form>
<form method="GET" action="/getByRoom"> <form method="GET" action="/getByRoom">
<div class="input-group mb-3"> <label for="raum">Raum: </label>
<div class="form-floating"> <select name="raum" id="raum" size="1" onchange="document.forms[1].submit()">
<select class="form-control form-select" name="raum" id="raum" size="1" onchange="document.forms[1].submit()"> <option value="">Alle</option>
<option value=""> auswählen </option>
{{range $room := .Rooms}} {{range $room := .Rooms}}
<option value="{{$room.Id}}"{{if eq $room.Id $.SelectedRoom}} selected{{end}}>{{$room.Name}}</option> <option value="{{$room.Id}}"{{if eq $room.Id $.SelectedRoom}} selected{{end}}>{{$room.Name}}</option>
{{end}} {{end}}
</select> </select>
<label for="raum">Raum</label> <input type="submit" value="Auswählen">
</div>
<noscript>
<button class="btn btn-outline-secondary col-lg-4" type="submit">Los!</button>
</noscript>
</div>
</form> </form>
<div id="timetable" style="overflow-x: scroll;">
{{.Timetable}} {{.Timetable}}
</div>
{{end}} {{end}}