132 lines
2.9 KiB
Go
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
|
|
// }
|
|
// }
|
|
//}
|