k9s/internal/view/charts.go

54 lines
1.4 KiB
Go

package view
import (
"context"
"github.com/derailed/k9s/internal/client"
"github.com/derailed/k9s/internal/render"
"github.com/derailed/k9s/internal/ui"
"github.com/gdamore/tcell"
"github.com/rs/zerolog/log"
)
// Chart represents a helm chart view.
type Chart struct {
ResourceViewer
}
// NewChart returns a new alias view.
func NewChart(gvr client.GVR) ResourceViewer {
c := Chart{
ResourceViewer: NewBrowser(gvr),
}
c.GetTable().SetColorerFn(render.Chart{}.ColorerFunc())
c.GetTable().SetBorderFocusColor(tcell.ColorMediumSpringGreen)
c.GetTable().SetSelectedStyle(tcell.ColorWhite, tcell.ColorMediumSpringGreen, tcell.AttrNone)
c.SetBindKeysFn(c.bindKeys)
c.SetContextFn(c.chartContext)
return &c
}
func (c *Chart) chartContext(ctx context.Context) context.Context {
return ctx
}
func (c *Chart) bindKeys(aa ui.KeyActions) {
aa.Delete(ui.KeyShiftA, ui.KeyShiftN, tcell.KeyCtrlS, tcell.KeyCtrlSpace, ui.KeySpace)
aa.Add(ui.KeyActions{
ui.KeyB: ui.NewKeyAction("Blee", c.bleeCmd, true),
ui.KeyShiftN: ui.NewKeyAction("Sort Name", c.GetTable().SortColCmd(0, true), false),
ui.KeyShiftS: ui.NewKeyAction("Sort Status", c.GetTable().SortColCmd(2, true), false),
ui.KeyShiftA: ui.NewKeyAction("Sort Age", c.GetTable().SortColCmd(-1, true), false),
})
}
func (c *Chart) bleeCmd(evt *tcell.EventKey) *tcell.EventKey {
path := c.GetTable().GetSelectedItem()
if path == "" {
return nil
}
log.Debug().Msgf("BLEE CMD %q", path)
return nil
}