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", "": // return // case "": // 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", "": // return // } // } //}