working compound days + working public holidays
Some checks failed
Tests / Run Go Tests (push) Failing after 44s
Some checks failed
Tests / Run Go Tests (push) Failing after 44s
This commit is contained in:
@@ -9,9 +9,7 @@ import (
|
||||
)
|
||||
|
||||
templ weekPicker(weekStart time.Time) {
|
||||
{{
|
||||
year, kw := weekStart.ISOWeek()
|
||||
}}
|
||||
{{ year, kw := weekStart.ISOWeek() }}
|
||||
<form method="get" class="flex flex-row gap-4 items-center justify-around">
|
||||
<input type="date" class="hidden" name="submission_date" value={ weekStart.Format(time.DateOnly) }/>
|
||||
<button onclick={ templ.JSFuncCall("navigateWeek", templ.JSExpression("this"), templ.JSExpression("event"), "-1") } class="btn">
|
||||
@@ -33,49 +31,48 @@ templ defaultWeekDayComponent(u models.User, day models.IWorkDay) {
|
||||
@timeGaugeComponent(day.GetDayProgress(u), false)
|
||||
<div class="flex flex-col">
|
||||
<p class=""><span class="font-bold uppercase hidden md:inline">{ helper.FormatGermanDayOfWeek(day.Date()) }:</span> { day.Date().Format("02.01.2006") }</p>
|
||||
if day.IsWorkDay() {
|
||||
{{
|
||||
workDay, _ := day.(*models.WorkDay)
|
||||
work, pause, _ := workDay.GetTimes(u, models.WorktimeBaseDay, false)
|
||||
}}
|
||||
if !workDay.RequiresAction() {
|
||||
<div class="flex flex-row gap-2">
|
||||
<span class="text-accent">{ helper.FormatDuration(work) }</span>
|
||||
<span class="text-neutral-500">{ helper.FormatDuration(pause) }</span>
|
||||
</div>
|
||||
<div class="flex flex-row gap-2 items-center">
|
||||
<span class="icon-[material-symbols-light--schedule-outline] flex-shrink-0"></span>
|
||||
switch {
|
||||
case !workDay.TimeFrom.Equal(workDay.TimeTo):
|
||||
<span>{ workDay.TimeFrom.Format("15:04") }</span>
|
||||
<span>-</span>
|
||||
<span>{ workDay.TimeTo.Format("15:04") }</span>
|
||||
{{ work, pause, _ := day.GetTimes(u, models.WorktimeBaseDay, false) }}
|
||||
<div class="flex flex-row gap-2">
|
||||
<span class="text-accent">{ helper.FormatDuration(work) }</span>
|
||||
<span class="text-neutral-500">{ helper.FormatDuration(pause) }</span>
|
||||
</div>
|
||||
switch day.Type() {
|
||||
case models.DayTypeWorkday:
|
||||
{{ workDay, _ := day.(*models.WorkDay) }}
|
||||
@workDayWeekComponent(workDay, u)
|
||||
case models.DayTypeCompound:
|
||||
for _, c := range day.(*models.CompoundDay).DayParts {
|
||||
switch c.Type() {
|
||||
case models.DayTypeWorkday:
|
||||
{{ workDay, _ := c.(*models.WorkDay) }}
|
||||
@workDayWeekComponent(workDay, u)
|
||||
default:
|
||||
<p>Keine Anwesenheit</p>
|
||||
<div>{ c.ToString() }</div>
|
||||
}
|
||||
</div>
|
||||
} else {
|
||||
<p class="text-red-600">Bitte anpassen</p>
|
||||
}
|
||||
} else {
|
||||
{{
|
||||
absentDay, _ := day.(*models.Absence)
|
||||
}}
|
||||
<div>{ absentDay.AbwesenheitTyp.Name } </div>
|
||||
}
|
||||
default:
|
||||
<div>{ day.ToString() }</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
templ weekDayComponent(user models.User, day models.WorkDay) {
|
||||
// {{ work, pause, _ := day.GetAllWorkTimesReal(user) }}
|
||||
<div class="flex flex-row gap-2">
|
||||
// @timeGaugeComponent(day.GetWorkDayProgress(user), false, day.RequiresAction())
|
||||
<div class="flex flex-col">
|
||||
if !day.RequiresAction() {
|
||||
templ workDayWeekComponent(workDay *models.WorkDay, u models.User) {
|
||||
if !workDay.RequiresAction() {
|
||||
<div class="flex flex-row gap-2 items-center">
|
||||
<span class="icon-[material-symbols-light--schedule-outline] flex-shrink-0"></span>
|
||||
switch {
|
||||
case !workDay.TimeFrom.Equal(workDay.TimeTo):
|
||||
<span>{ workDay.TimeFrom.Format("15:04") }</span>
|
||||
<span>-</span>
|
||||
<span>{ workDay.TimeTo.Format("15:04") }</span>
|
||||
default:
|
||||
<p>Keine Anwesenheit</p>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
} else {
|
||||
<p class="text-red-600">Bitte anpassen</p>
|
||||
}
|
||||
}
|
||||
|
||||
templ workWeekComponent(week models.WorkWeek, onlyAccept bool) {
|
||||
|
||||
Reference in New Issue
Block a user