split-column.go 1018 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package widget
  2. import (
  3. "context"
  4. "html/template"
  5. "time"
  6. "github.com/glanceapp/glance/internal/assets"
  7. )
  8. type SplitColumn struct {
  9. widgetBase `yaml:",inline"`
  10. containerWidgetBase `yaml:",inline"`
  11. MaxColumns int `yaml:"max-columns"`
  12. }
  13. func (widget *SplitColumn) Initialize() error {
  14. widget.withError(nil).withTitle("Split Column").SetHideHeader(true)
  15. for i := range widget.Widgets {
  16. if err := widget.Widgets[i].Initialize(); err != nil {
  17. return err
  18. }
  19. }
  20. if widget.MaxColumns < 2 {
  21. widget.MaxColumns = 2
  22. }
  23. return nil
  24. }
  25. func (widget *SplitColumn) Update(ctx context.Context) {
  26. widget.containerWidgetBase.Update(ctx)
  27. }
  28. func (widget *SplitColumn) SetProviders(providers *Providers) {
  29. widget.containerWidgetBase.SetProviders(providers)
  30. }
  31. func (widget *SplitColumn) RequiresUpdate(now *time.Time) bool {
  32. return widget.containerWidgetBase.RequiresUpdate(now)
  33. }
  34. func (widget *SplitColumn) Render() template.HTML {
  35. return widget.render(widget, assets.SplitColumnTemplate)
  36. }