calendar.go 606 B

123456789101112131415161718192021222324252627282930
  1. package widget
  2. import (
  3. "context"
  4. "html/template"
  5. "time"
  6. "github.com/glanceapp/glance/internal/assets"
  7. "github.com/glanceapp/glance/internal/feed"
  8. )
  9. type Calendar struct {
  10. widgetBase `yaml:",inline"`
  11. Calendar *feed.Calendar
  12. }
  13. func (widget *Calendar) Initialize() error {
  14. widget.withTitle("Calendar").withCacheOnTheHour()
  15. return nil
  16. }
  17. func (widget *Calendar) Update(ctx context.Context) {
  18. widget.Calendar = feed.NewCalendar(time.Now())
  19. widget.withError(nil).scheduleNextUpdate()
  20. }
  21. func (widget *Calendar) Render() template.HTML {
  22. return widget.render(widget, assets.CalendarTemplate)
  23. }