Restructure & refactor codebase
This commit is contained in:
52
internal/glance/widget-group.go
Normal file
52
internal/glance/widget-group.go
Normal file
@@ -0,0 +1,52 @@
|
||||
package glance
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"html/template"
|
||||
"time"
|
||||
)
|
||||
|
||||
var groupWidgetTemplate = mustParseTemplate("group.html", "widget-base.html")
|
||||
|
||||
type groupWidget struct {
|
||||
widgetBase `yaml:",inline"`
|
||||
containerWidgetBase `yaml:",inline"`
|
||||
}
|
||||
|
||||
func (widget *groupWidget) initialize() error {
|
||||
widget.withError(nil)
|
||||
widget.HideHeader = true
|
||||
|
||||
for i := range widget.Widgets {
|
||||
widget.Widgets[i].setHideHeader(true)
|
||||
|
||||
if widget.Widgets[i].GetType() == "group" {
|
||||
return errors.New("nested groups are not supported")
|
||||
} else if widget.Widgets[i].GetType() == "split-column" {
|
||||
return errors.New("split columns inside of groups are not supported")
|
||||
}
|
||||
}
|
||||
|
||||
if err := widget.containerWidgetBase._initializeWidgets(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (widget *groupWidget) update(ctx context.Context) {
|
||||
widget.containerWidgetBase._update(ctx)
|
||||
}
|
||||
|
||||
func (widget *groupWidget) setProviders(providers *widgetProviders) {
|
||||
widget.containerWidgetBase._setProviders(providers)
|
||||
}
|
||||
|
||||
func (widget *groupWidget) requiresUpdate(now *time.Time) bool {
|
||||
return widget.containerWidgetBase._requiresUpdate(now)
|
||||
}
|
||||
|
||||
func (widget *groupWidget) Render() template.HTML {
|
||||
return widget.renderTemplate(widget, groupWidgetTemplate)
|
||||
}
|
||||
Reference in New Issue
Block a user