CHANGE: added team view, with submitted bookings for team members and send form for own bookings

This commit is contained in:
2025-02-25 15:08:34 +01:00
parent 478fd53d4f
commit d68a19790e
14 changed files with 846 additions and 1766 deletions

View File

@@ -1,14 +1,13 @@
package templates
import (
"arbeitszeitmessung/models"
"time"
)
import "arbeitszeitmessung/models"
templ weekDayComponent(day models.WorkDay) {
import "fmt"
templ weekDayComponent(user models.User, day models.WorkDay) {
{{ work, pause := day.GetWorkTimeString() }}
<div class="flex flex-row gap-2">
@timeGaugeComponent(92, false, false)
@timeGaugeComponent(day.GetWorkDayProgress(user), false, false)
<div class="flex flex-col">
<p class=""><span class="font-bold uppercase hidden md:inline">{ day.Day.Format("Mon") }:</span> { day.Day.Format("02.01.2006") }</p>
<div class="flex flex-row gap-2">
@@ -19,22 +18,23 @@ templ weekDayComponent(day models.WorkDay) {
</div>
}
templ employeComponent(user models.User) {
templ employeComponent(week models.WorkWeek) {
{{
workWeek := user.GetWeek(time.Now().AddDate(0, 0, -2))
year, kw := week.WeekStart.ISOWeek()
}}
<div class="grid-sub divide-x-1">
<div class="grid-cell">
<p class="font-bold uppercase">{ user.Vorname } { user.Name }</p>
<p class="font-bold uppercase">{ week.User.Vorname } { week.User.Name }</p>
<p class="text-sm">Arbeitszeit</p>
<p class="text-accent">40h 12min</p>
</div>
<div class="grid-cell col-span-3 flex flex-col gap-2">
for _, day := range workWeek.WorkDays {
@weekDayComponent(day)
for _, day := range week.WorkDays {
@weekDayComponent(week.User, day)
}
</div>
<div class="grid-cell flex flex-col justify-end">
<div class="grid-cell flex flex-col justify-between gap-2">
<p class="text-sm"><span class="">Woche:</span> { fmt.Sprintf("%02d-%d", kw, year) }</p>
<button type="submit" class="w-full bg-neutral-100 cursor-pointer rounded-md text-neutral-800 p-2 md:px-4 border text-center text-sm hover:text-white transition-colors border-neutral-900 focus:bg-neutral-700 active:bg-neutral-700 hover:bg-neutral-700 disabled:pointer-events-none disabled:opacity-50">
<p class="">Bestätigen</p>
</button>