added form and db support
This commit is contained in:
parent
5e4bc3ada7
commit
ddb4469501
9 changed files with 504 additions and 48 deletions
56
view.go
56
view.go
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue