summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthieu <matthieu.cneude@gmail.com>2018-09-16 08:32:54 +0200
committerMatthieu <matthieu.cneude@gmail.com>2018-09-16 08:32:54 +0200
commitc8fc022128d534f15b2404a91999512bd8ebcc4a (patch)
treee1b6fb1d097141c29726dc6403b9677e81bf492a
parentf57139ea24fbc2b10ad16b2308d343060bff88dc (diff)
Reorganise the whole config - get rid of maps to keep the order of
configures widgets
-rw-r--r--cmd/devdash/config.go15
-rw-r--r--cmd/devdash/devdash.go13
-rw-r--r--internal/ga_widget.go6
-rw-r--r--internal/plateform/termui.go5
-rw-r--r--internal/project.go23
5 files changed, 32 insertions, 30 deletions
diff --git a/cmd/devdash/config.go b/cmd/devdash/config.go
index eb15339..da236ff 100644
--- a/cmd/devdash/config.go
+++ b/cmd/devdash/config.go
@@ -16,17 +16,22 @@ const (
)
type config struct {
- General General `mapstructure "general"`
- Projects map[string]Projects `mapstructure "projects"`
+ General General `mapstructure "general"`
+ Projects []Project `mapstructure "projects"`
}
type General struct {
Keys map[string]string
}
-type Projects struct {
- Services Services `mapstructure "services"`
- Widgets []map[string]internal.Widget `mapstructure "widgets"`
+type Project struct {
+ Name string `mapstructure:"name"`
+ Services Services `mapstructure "services"`
+ Widgets []Row `mapstructure "widgets"`
+}
+
+type Row struct {
+ Row []internal.Widget `mapstructure "row"`
}
type Services struct {
diff --git a/cmd/devdash/devdash.go b/cmd/devdash/devdash.go
index 1dbbc5e..6609b1d 100644
--- a/cmd/devdash/devdash.go
+++ b/cmd/devdash/devdash.go
@@ -25,19 +25,18 @@ func main() {
tui := internal.NewTUI(termui)
tui.AddKQuit(cfg.KQuit())
- for pn, p := range cfg.Projects {
- fmt.Println(pn)
+ for _, p := range cfg.Projects {
+ pn := p.Name
if err != nil {
fmt.Println(err)
}
// create a slice of slice with shape row[rowNbr][WidgetNbr]map[widgetName]Widget
- rows := make([][]map[string]internal.Widget, len(p.Widgets))
- fmt.Println(p.Widgets)
- for i := 0; i < len(p.Widgets); i++ {
- for wn, w := range p.Widgets[i] {
- rows[i] = append(rows[i], map[string]internal.Widget{wn: w})
+ rows := make([][]internal.Widget, len(p.Widgets))
+ for ir, r := range p.Widgets {
+ for _, w := range r.Row {
+ rows[ir] = append(rows[ir], w)
}
}
diff --git a/internal/ga_widget.go b/internal/ga_widget.go
index 70e3808..16ce219 100644
--- a/internal/ga_widget.go
+++ b/internal/ga_widget.go
@@ -31,16 +31,16 @@ func NewGaWidget(keyfile string, viewID string) (gaWidget, error) {
}, nil
}
-func (g gaWidget) createWidgets(widgetName string, widget Widget, tui *Tui) (err error) {
+func (g gaWidget) createWidgets(widget Widget, tui *Tui) (err error) {
g.tui = tui
- switch widgetName {
+ switch widget.Name {
case realtime:
err = g.gaRTActiveUser(widget)
case users:
err = g.gaWeekUsers(widget)
default:
- return errors.New("can't find the widget " + widgetName)
+ return errors.New("can't find the widget " + widget.Name)
}
return
diff --git a/internal/plateform/termui.go b/internal/plateform/termui.go
index 2d35388..4d5ccc3 100644
--- a/internal/plateform/termui.go
+++ b/internal/plateform/termui.go
@@ -85,6 +85,9 @@ func (t *termUI) AddRow() error {
}
t.body.AddRows(termui.NewRow(t.row...))
+ t.body.Align()
+ termui.Render(t.body)
+
// clean the internal row
t.row = []*termui.Row{}
@@ -107,7 +110,5 @@ func (t termUI) validateRowSize() error {
}
func (t *termUI) Render() {
- t.body.Align()
- termui.Render(t.body)
termui.Loop()
}
diff --git a/internal/project.go b/internal/project.go
index 85e1030..5853db3 100644
--- a/internal/project.go
+++ b/internal/project.go
@@ -2,23 +2,23 @@ package internal
import (
"errors"
- "fmt"
"strings"
)
type Widget struct {
+ Name string
Size string
}
type project struct {
name string
- widgets [][]map[string]Widget
+ widgets [][]Widget
gaWidget gaWidget
}
func NewProject(
name string,
- widgets [][]map[string]Widget,
+ widgets [][]Widget,
gaWidget gaWidget,
) project {
return project{
@@ -30,17 +30,14 @@ func NewProject(
func (p project) Render(tui *Tui) (err error) {
for i := 0; i < len(p.widgets); i++ {
- for _, ws := range p.widgets[i] {
+ for _, w := range p.widgets[i] {
// parse widgets for one row
- for wn, w := range ws {
- serviceID := strings.Split(wn, ".")[0]
- switch serviceID {
- case "ga":
- fmt.Println(wn)
- err = p.gaWidget.createWidgets(wn, w, tui)
- default:
- return errors.New("could not find the service - please verify your configuration file")
- }
+ serviceID := strings.Split(w.Name, ".")[0]
+ switch serviceID {
+ case "ga":
+ err = p.gaWidget.createWidgets(w, tui)
+ default:
+ return errors.New("could not find the service - please verify your configuration file")
}
}
tui.AddRow()