diff --git a/bamboohr/widget.go b/bamboohr/widget.go index 390346eb..0de30f73 100644 --- a/bamboohr/widget.go +++ b/bamboohr/widget.go @@ -29,7 +29,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/gcal/widget.go b/gcal/widget.go index d80ff581..be233898 100644 --- a/gcal/widget.go +++ b/gcal/widget.go @@ -31,7 +31,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/git/widget.go b/git/widget.go index e9d8e348..2b1d78db 100644 --- a/git/widget.go +++ b/git/widget.go @@ -31,7 +31,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/github/widget.go b/github/widget.go index 44a57cda..ec7369d2 100644 --- a/github/widget.go +++ b/github/widget.go @@ -30,7 +30,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/jira/widget.go b/jira/widget.go index 352da32d..9a1fdee3 100644 --- a/jira/widget.go +++ b/jira/widget.go @@ -29,7 +29,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/newrelic/widget.go b/newrelic/widget.go index 47a46dd5..e5dfde6e 100644 --- a/newrelic/widget.go +++ b/newrelic/widget.go @@ -30,7 +30,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/opsgenie/widget.go b/opsgenie/widget.go index cbd4e690..0fbc10d9 100644 --- a/opsgenie/widget.go +++ b/opsgenie/widget.go @@ -30,7 +30,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/security/widget.go b/security/widget.go index cd9d8187..776f7e11 100644 --- a/security/widget.go +++ b/security/widget.go @@ -30,7 +30,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/status/widget.go b/status/widget.go index bd9a1cc9..eef0f128 100644 --- a/status/widget.go +++ b/status/widget.go @@ -32,7 +32,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/weather/widget.go b/weather/widget.go index 335d9d7c..c3b3cad4 100644 --- a/weather/widget.go +++ b/weather/widget.go @@ -31,7 +31,7 @@ func NewWidget() *Widget { /* -------------------- Exported Functions -------------------- */ func (widget *Widget) Refresh() { - if widget.Enabled == false { + if widget.Disabled() { return } diff --git a/wtf.go b/wtf.go index ffe29e03..f5780e02 100644 --- a/wtf.go +++ b/wtf.go @@ -32,6 +32,14 @@ func refresher(stat *status.Widget, app *tview.Application) { } } +func addToApp(grid *tview.Grid, widget wtf.TextViewer) { + if widget.Disabled() { + return + } + + grid.AddItem(widget.TextView(), 0, 0, 2, 1, 0, 0, false) +} + var result = wtf.CreateConfigDir() var Config = wtf.LoadConfigFile() @@ -85,16 +93,27 @@ func main() { grid.SetColumns(37, 37, 37, 37, 37) // How _wide_ the column is, in terminal columns grid.SetBorder(false) - grid.AddItem(bamboo.View, 0, 0, 2, 1, 0, 0, false) - grid.AddItem(cal.View, 2, 1, 4, 1, 0, 0, false) - grid.AddItem(git.View, 0, 2, 2, 3, 0, 0, false) - grid.AddItem(github.View, 2, 2, 2, 3, 0, 0, false) - grid.AddItem(newrelic.View, 4, 2, 1, 3, 0, 0, false) - grid.AddItem(weather.View, 0, 1, 1, 1, 0, 0, false) - grid.AddItem(sec.View, 5, 0, 1, 1, 0, 0, false) - grid.AddItem(opsgenie.View, 2, 0, 2, 1, 0, 0, false) - grid.AddItem(jira.View, 1, 1, 1, 1, 0, 0, false) - grid.AddItem(stat.View, 5, 2, 3, 3, 0, 0, false) + addToApp(grid, bamboo) + addToApp(grid, cal) + addToApp(grid, git) + addToApp(grid, github) + addToApp(grid, newrelic) + addToApp(grid, weather) + addToApp(grid, sec) + addToApp(grid, opsgenie) + addToApp(grid, jira) + addToApp(grid, stat) + + //grid.AddItem(bamboo.View, 0, 0, 2, 1, 0, 0, false) + //grid.AddItem(cal.View, 2, 1, 4, 1, 0, 0, false) + //grid.AddItem(git.View, 0, 2, 2, 3, 0, 0, false) + //grid.AddItem(github.View, 2, 2, 2, 3, 0, 0, false) + //grid.AddItem(newrelic.View, 4, 2, 1, 3, 0, 0, false) + //grid.AddItem(weather.View, 0, 1, 1, 1, 0, 0, false) + //grid.AddItem(sec.View, 5, 0, 1, 1, 0, 0, false) + //grid.AddItem(opsgenie.View, 2, 0, 2, 1, 0, 0, false) + //grid.AddItem(jira.View, 1, 1, 1, 1, 0, 0, false) + //grid.AddItem(stat.View, 5, 2, 3, 3, 0, 0, false) app := tview.NewApplication() diff --git a/wtf/text_viewer.go b/wtf/text_viewer.go new file mode 100644 index 00000000..3763a10c --- /dev/null +++ b/wtf/text_viewer.go @@ -0,0 +1,11 @@ +package wtf + +import ( + "github.com/rivo/tview" +) + +type TextViewer interface { + Disabled() bool + Enabled() bool + TextView() *tview.TextView +} diff --git a/wtf/text_widget.go b/wtf/text_widget.go index 899173b6..abe91774 100644 --- a/wtf/text_widget.go +++ b/wtf/text_widget.go @@ -18,7 +18,8 @@ type Position struct { } type TextWidget struct { - Enabled bool + enabled bool + Name string Position Position RefreshedAt time.Time @@ -28,7 +29,7 @@ type TextWidget struct { func NewTextWidget(name string, configKey string) TextWidget { widget := TextWidget{ - Enabled: Config.UBool(fmt.Sprintf("wtf.%s.enabled", configKey), false), + enabled: Config.UBool(fmt.Sprintf("wtf.%s.enabled", configKey), false), Name: name, RefreshInt: Config.UInt(fmt.Sprintf("wtf.%s.refreshInterval", configKey)), } @@ -38,6 +39,14 @@ func NewTextWidget(name string, configKey string) TextWidget { /* -------------------- Exported Functions -------------------- */ +func (widget *TextWidget) Disabled() bool { + return !widget.Enabled() +} + +func (widget *TextWidget) Enabled() bool { + return widget.enabled +} + func (widget *TextWidget) RefreshInterval() int { return widget.RefreshInt }