added form and db support

This commit is contained in:
steven carpenter 2025-07-03 21:21:25 -04:00
parent 5e4bc3ada7
commit ddb4469501
9 changed files with 504 additions and 48 deletions

56
view.go
View file

@ -3,6 +3,8 @@ package main
import (
"fmt"
"time"
"strings"
"github.com/charmbracelet/lipgloss"
)
func (m model) View() string {
@ -63,27 +65,51 @@ func (m model) viewMonth() string {
}
func (m model) viewHourly() string {
var out string
var b strings.Builder
dateHeader := fmt.Sprintf("Schedule for %04d-%02d-%02d", m.year, m.monthIndex+1, m.selectedDay)
out += headerStyle.Render(dateHeader) + "\n\n"
nowHour := time.Now().Hour()
events, _ := GetEventsForDay(int32(m.year), int32(m.monthIndex+1), int32(m.selectedDay))
for hour := 0; hour < 24; hour++ {
label := fmt.Sprintf("%02d:00 - %02d:00", hour, hour+1)
label := fmt.Sprintf("%02d:00", hour)
styled := false
switch {
case hour == m.hourCursor:
out += hourSelectedStyle.Render(label) + "\n"
case hour == nowHour:
out += currentHourStyle.Render(label) + "\n"
default:
out += hourCellStyle.Render(label) + "\n"
for _, e := range events {
if hour >= int(e.StartHour) && hour < int(e.EndHour) {
style := hourCellStyle.Copy().Background(lipgloss.Color(e.Color))
if hour == m.hourCursor {
if hour == int(e.StartHour) {
label = style.Copy().Bold(true).Render("▶ " + fmt.Sprintf("%02d:00 - %s", hour, e.Title))
} else {
label = style.Copy().Bold(true).Render("▶ " + label)
}
} else {
if hour == int(e.StartHour) {
label = style.Render(" " + fmt.Sprintf("%02d:00 - %s", hour, e.Title))
} else {
label = style.Render(" " + label)
}
}
styled = true
break
}
}
if !styled {
if hour == m.hourCursor {
label = hourSelectedStyle.Render("▶ " + label)
} else if hour == time.Now().Hour() {
label = currentHourStyle.Render(" " + label)
} else {
label = hourCellStyle.Render(" " + label)
}
}
b.WriteString(label + "\n")
}
out += "\nPress ESC to return to month view, q to quit."
return out
return b.String()
}