package templates import ( "arbeitszeitmessung/helper" "arbeitszeitmessung/models" "fmt" "log" "strconv" "time" ) templ weekPicker(weekStart time.Time) { {{ year, kw := weekStart.ISOWeek() }}

KW { fmt.Sprintf("%02d, %d", kw, year) }

if time.Since(weekStart) < 24*7*time.Hour {

Die Woche kann erst am nächsten Montag gesendet werden!

} } templ weekDayComponent(user models.User, day models.WorkDay) { {{ work, pause := day.GetWorkTimeString() }}
@timeGaugeComponent(day.GetWorkDayProgress(user), false, false)

{ day.Day.Format("02.01.2006") }

{ work } { pause }
if day.Absence.Datum.Equal(day.Day) {

{ day.Absence.AbwesenheitTyp.Name }

} else if !day.TimeFrom.Equal(day.TimeTo) { { day.TimeFrom.Format("15:04") } - { day.TimeTo.Format("15:04") } } else {

Keine Anwesenheit

}
} templ employeComponent(week models.WorkWeek) { {{ year, kw := week.WeekStart.ISOWeek() progress := (float32(week.Worktime.Hours()) / week.User.ArbeitszeitPerWoche) * 100 log.Println(progress) }}

{ week.User.Vorname } { week.User.Name }

@timeGaugeComponent(uint8(progress), false, false)

Arbeitszeit: { fmt.Sprintf("%s", helper.FormatDuration(week.Worktime)) }

Überstunden: { fmt.Sprintf("%s", helper.FormatDuration(week.Overtime)) }

for _, day := range week.WorkDays { @weekDayComponent(week.User, day) }

Woche: { fmt.Sprintf("%02d-%d", kw, year) }

if week.Status == models.WeekStatusDifferences {

Unterschiedliche Arbeitszeit zwischen Abrechnung und individuellen Buchungen

} // TODO maybe delete function //
} templ userPresenceComponent(user models.User, present bool) {
if present {
Anwesend
} else {
Abwesend
}

{ user.Vorname } { user.Name }

}