shiny-pancake/internal/gui/gui.go
2020-11-08 19:37:07 -06:00

132 lines
2.9 KiB
Go

package gui
import (
ui "github.com/gizak/termui/v3"
"github.com/gizak/termui/v3/widgets"
"github.com/sirupsen/logrus"
"log"
"shiny-pancake/internal/database"
"shiny-pancake/internal/model"
"shiny-pancake/logger"
)
func loadModels(grid *ui.Grid, s *model.Screen){
_ = grid
// try to force two rows when possible.
// max 3 columns
for _, i := range s.Queries {
l := logger.Log{"info", logrus.Fields{"query" : i}, " query for session"}
logger.Lgr(&l)
switch s.Queries {
case s.Queries
}
}
}
func Gui(db *database.Database) {
if err := ui.Init(); err != nil {
log.Fatalf("failed to initialize termui: %v", err)
}
defer ui.Close()
tabpane := widgets.NewTabPane("sessions", "disk", "")
tabpane.SetRect(0, 1, 100, 4)
tabpane.Border = false
var session *model.Screen
session = Session()
grid := ui.NewGrid()
loadModels(grid, session)
//termWidth, termHeight := ui.TerminalDimensions()
//grid.SetRect(0, 0, termWidth, termHeight)
//
//grid.Set(
// ui.NewRow(1.0/2,
// ui.NewCol(1.0/2, tabpane),
//
// ),
//)
//
//ui.Render(grid)
//tickerCount := 1
//uiEvents := ui.PollEvents()
//ticker := time.NewTicker(time.Second).C
//for {
// select {
// case e := <-uiEvents:
// switch e.ID {
// case "q", "<C-c>":
// return
// case "<Resize>":
// payload := e.Payload.(ui.Resize)
// grid.SetRect(0, 0, payload.Width, payload.Height)
// ui.Clear()
// ui.Render(grid)
// }
// case <-ticker:
// if tickerCount == 100 {
// return
// }
// ui.Render(grid)
// tickerCount++
// }
//}
}
//func placeholder(){
// _ = db
// if err := ui.Init(); err != nil {
// log.Fatalf("failed to initialize termui: %v", err)
// }
// defer ui.Close()
// sessions, err := db.UserSessions()
// if err != nil {
// log.Fatal(err)
// }
// table1 := widgets.NewTable()
// table1.Rows = [][]string{
// []string{"user", "count sessions"},
// }
// table1.TextAlignment = ui.AlignLeft
//
// for _, s := range sessions {
// var sd []string
// sd = append(sd, s.Username)
// sd = append(sd, strconv.Itoa(s.Count))
// table1.Rows = append(table1.Rows, sd)
// }
//
// table1.TextStyle = ui.NewStyle(ui.ColorWhite)
// table1.SetRect(0, 0, 60, 10)
// table1.Title = "user sessions"
// connsUsed, err := db.ConnUse()
// if err != nil {
// log.Fatal()
// }
// g3 := widgets.NewGauge()
// g3.Title = "connections used"
// g3.SetRect(0, 11, 50, 14)
// percent := float64(connsUsed.I)/float64(connsUsed.I1)
// l := logger.Log{"info", logrus.Fields{"countOpenConn": strconv.Itoa(connsUsed.I), "countMaxConn": strconv.Itoa(connsUsed.I1) }, "count of conns"}
// logger.Lgr(&l)
// g3.Percent = int(percent)
// g3.BarColor = ui.ColorGreen
// g3.LabelStyle = ui.NewStyle(ui.ColorYellow)
// g3.Label = fmt.Sprintf("%d of %d total", g3.Percent, connsUsed.I1)
//
// ui.Render(table1)
// ui.Render(g3)
//
//
// uiEvents := ui.PollEvents()
// for {
// e := <-uiEvents
// switch e.ID {
// case "q", "<C-c>":
// return
// }
// }
//}