split out more of the functions

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-06-01 17:53:30 -07:00
parent 418b520835
commit 76dbbf952e
5 changed files with 156 additions and 75 deletions

1
VERSION Normal file
View File

@ -0,0 +1 @@
v0.4

49
accountPage.go Normal file
View File

@ -0,0 +1,49 @@
package main
import "log"
import "git.wit.com/wit/gui"
func makeCloudInfoBox(gw *gui.GuiWindow) {
log.Println("makeCloudInfoBox() START gw =", gw)
box := gui.AddMainTab(gw)
gw = box.Window
log.Println("makeCloudInfoBox() START GW IS NOW: gw =", gw)
log.Println("makeCloudInfoBox() box =", box)
gui.NewLabel(box, "Hostname:")
gui.HardHorizontalBreak(box)
tmp := gui.Data.Hostname + " (" + gui.Data.IPv6 + ")"
gui.MakeEntryHbox(box, "hostname:", tmp, true, "Hostname")
for key, a := range config.Accounts {
log.Println("account = ", key, a)
log.Println("Accounts[key] = ", config.Accounts[key])
log.Println("account.Nick = ", config.Accounts[key].Nick)
log.Println("account.Username = ", config.Accounts[key].Username)
log.Println("account.Token = ", config.Accounts[key].Token)
gui.NewLabel(box, config.Accounts[key].Domain)
gui.NewLabel(box, config.Accounts[key].Email)
name := "Login " + config.Accounts[key].Nick
login := gui.CreateButton(box, config.Accounts[key], nil, name, "LOGIN", login)
gui.AddButtonToBox(box, login)
name = "Show " + config.Accounts[key].Nick
show := gui.CreateButton(box, config.Accounts[key], nil, name, "SHOW", nil)
gui.AddButtonToBox(box, show)
}
add := gui.CreateButton(box, nil, nil, "Add Account", "ADD TAB", addSubdomainButton)
gui.AddButtonToBox(box, add)
quit := gui.CreateButton(box, nil, nil, "Quit", "QUIT", nil)
gui.AddButtonToBox(box, quit)
gui.ShowMainTabShowBox(gw, box)
log.Println("makeCloudInfoBox() END")
}

72
login.go Normal file
View File

@ -0,0 +1,72 @@
package main
import "log"
import "fmt"
import "time"
import "git.wit.com/wit/gui"
import pb "git.wit.com/wit/witProtobuf"
// import "github.com/davecgh/go-spew/spew"
func login(b *gui.GuiButton) {
log.Println("login() START")
gui.Data.State = "SEND LOGIN"
// TODO: move this into a seperate goroutine
event := pb.MakeLoginEvent()
event.Account = b.Account
prepareAndSend(event)
count := 0
for {
log.Println("\tSleep() in buttonClick() gui.Data.State =", gui.Data.State)
time.Sleep(200 * time.Millisecond)
if (gui.Data.State == "NEW PROTOBUF") {
if (currentMessage == nil) {
gui.ErrorWindow(b.GW,
"There was a socket error",
"More detailed information can be shown here.")
gui.Data.State = "done"
} else {
log.Println("LOGIN currentMessage =", currentMessage)
if (currentMessage.Type == pb.Event_OK) {
msg := "On account " + b.Account.Nick + "\n"
log.Println("\tLOGIN WAS OK!", msg)
log.Println("\tLOGIN WAS OK! old button.Account was =", b.Account)
log.Println("\tLOGIN WAS OK! currentMessage.Account =", currentMessage.Account)
if (b.Account.Id == currentMessage.Account.Id) {
if (b.Account.Token != currentMessage.Account.Token) {
log.Println("\tLOGIN SENT NEW TOKEN")
b.Account.Token = currentMessage.Account.Token
log.Println("\tLOGIN WAS OK! old button.Account is now =", b.Account)
}
}
log.Println("\tLOGIN WAS OK!")
gui.MessageWindow(b.GW, "Login OK", msg)
} else if (currentMessage.Type == pb.Event_FAIL) {
log.Println("\tLOGIN FAILED")
log.Println("\tLOGIN FAILED")
log.Println("\tLOGIN FAILED")
msg := "On account " + b.Account.Nick + "\n"
msg += "pb.Comment = " + currentMessage.Comment + "\n"
msg += "pb.Id = " + fmt.Sprintf("%d", currentMessage.Id) + "\n"
msg += "pb.Email = " + b.Account.Email + "\n"
msg += "pb.Username = " + b.Account.Username + "\n"
gui.ErrorWindow(b.GW, "Login Failed", msg)
}
currentMessage = nil
gui.Data.State = "done"
}
return
}
// TODO: fix this with an actual timeout
count += 1
if (count > 10) {
log.Println("\tERROR: waited too long for a resposne")
currentMessage = nil
gui.Data.State = "done"
return
}
}
}

79
main.go
View File

@ -277,28 +277,8 @@ func mainMouseClick(b *gui.GuiButton) {
runtime.Stack(buf, true) runtime.Stack(buf, true)
log.Printf("%s", buf) log.Printf("%s", buf)
log.Println("\tFINISHED FULL STACK DUMP") log.Println("\tFINISHED FULL STACK DUMP")
} else if (b.Action == "ADD") {
log.Println("\tSHOULD ADD ACCOUNT HERE")
subdomain := gui.GetText(b.Box, "SUBDOMAIN")
if (subdomain == "") {
gui.ErrorWindow(gw, "Blank Name", "You must have a valid subdomain")
return
}
log.Println("\tsubdomain =", subdomain)
acc := new(pb.Account)
acc.Nick = subdomain
acc.Domain = subdomain
acc.Username = "jcarr@wit.com"
acc.Email = "jcarr@wit.com"
acc.Password = "badpass"
acc.URL = "http://stackapi-api1.stackapi.customers.dev.wit.com:4000/"
config.Accounts = append(config.Accounts, acc)
// gui.ShowMainTab(gw)
makeCloudInfoBox(gw)
gui.Data.State = "done"
} else if (b.Action == "LOGIN") { } else if (b.Action == "LOGIN") {
/*
log.Println("\tTRIGGER LOGIN ACCOUNT") log.Println("\tTRIGGER LOGIN ACCOUNT")
gui.Data.State = "SEND LOGIN" gui.Data.State = "SEND LOGIN"
@ -358,6 +338,7 @@ func mainMouseClick(b *gui.GuiButton) {
return return
} }
} }
*/
} else if (b.Action == "SHOW VM") { } else if (b.Action == "SHOW VM") {
// gui.Data.CurrentVM = b.VM // gui.Data.CurrentVM = b.VM
if (gui.Data.Debug) { if (gui.Data.Debug) {
@ -455,10 +436,9 @@ func watchGUI() {
if (count > 10) { if (count > 10) {
log.Println("Sleep() in watchGUI() gui.Data.State =", gui.Data.State) log.Println("Sleep() in watchGUI() gui.Data.State =", gui.Data.State)
for i, window := range gui.Data.Windows { for i, window := range gui.Data.Windows {
log.Println("watchGUI() gui.Data.Windows i =", i) log.Println("watchGUI() gui.Data.Windows i =", i, "Action =", window.Action)
log.Println("\twatchGUI() gui.Data.Windows.Action =", window.Action) for name, _ := range window.BoxMap {
for name, box := range window.BoxMap { log.Println("\twatchGUI() name =", name)
log.Println("\twatchGUI() name, box =", name, box)
} }
} }
count = 0 count = 0
@ -483,52 +463,3 @@ func watchGUI() {
} }
} }
} }
func makeCloudInfoBox(gw *gui.GuiWindow) {
log.Println("makeCloudInfoBox() START gw =", gw)
box := gui.AddMainTab(gw)
gw = box.Window
log.Println("makeCloudInfoBox() START GW IS NOW: gw =", gw)
log.Println("makeCloudInfoBox() box =", box)
gui.NewLabel(box, "Hostname:")
gui.HardHorizontalBreak(box)
// gui.VerticalBreak(box)
tmp := gui.Data.Hostname + " (" + gui.Data.IPv6 + ")"
gui.MakeEntryHbox(box, "hostname:", tmp, true, "Hostname")
for key, a := range config.Accounts {
log.Println("account = ", key, a)
log.Println("Accounts[key] = ", config.Accounts[key])
log.Println("account.Nick = ", config.Accounts[key].Nick)
log.Println("account.Username = ", config.Accounts[key].Username)
log.Println("account.Token = ", config.Accounts[key].Token)
gui.NewLabel(box, config.Accounts[key].Domain)
gui.NewLabel(box, config.Accounts[key].Email)
name := "Login " + config.Accounts[key].Nick
login := gui.CreateButton(box, config.Accounts[key], nil, name, "LOGIN", nil)
gui.AddButtonToBox(box, login)
name = "Show " + config.Accounts[key].Nick
show := gui.CreateButton(box, config.Accounts[key], nil, name, "SHOW", nil)
gui.AddButtonToBox(box, show)
}
// gui.HardHorizontalBreak(box)
// gui.VerticalBreak(box)
add := gui.CreateButton(box, nil, nil, "Add Account", "ADD TAB", nil)
gui.AddButtonToBox(box, add)
quit := gui.CreateButton(box, nil, nil, "Quit", "QUIT", nil)
gui.AddButtonToBox(box, quit)
gui.ShowMainTabShowBox(gw, box)
log.Println("makeCloudInfoBox() END")
}

View File

@ -8,6 +8,8 @@ import "git.wit.com/wit/gui"
import "github.com/andlabs/ui" import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest" import _ "github.com/andlabs/ui/winmanifest"
import pb "git.wit.com/wit/witProtobuf"
func showSplashBox(gw *gui.GuiWindow) *gui.GuiBox { func showSplashBox(gw *gui.GuiWindow) *gui.GuiBox {
log.Println("ShowSplashBox() START") log.Println("ShowSplashBox() START")
text := getNEWTEXT() text := getNEWTEXT()
@ -72,13 +74,39 @@ func addSubdomainQuestionBox(gw *gui.GuiWindow) *gui.GuiBox {
gui.HorizontalBreak(box) gui.HorizontalBreak(box)
button2 := gui.CreateButton(box, nil, nil, "Create Subdomain Account", "ADD", nil) button2 := gui.CreateButton(box, nil, nil, "Create Subdomain Account", "ADD", addSubdomainButton)
gui.AddButtonToBox(box, button2) gui.AddButtonToBox(box, button2)
log.Println("addSubdomainQuestionBox() END box =", box) log.Println("addSubdomainQuestionBox() END box =", box)
return box return box
} }
// curl -vv -X POST -H "X-Wit-Auth: $TOKEN" 'http://stackapi-api1.stackapi.customers.wit.com:4000/vms/toby?count=1&cpu=2&ram=512&disk=25'
func addSubdomainButton(b *gui.GuiButton) {
log.Println("addSubdomainButton() START")
subdomain := gui.GetText(b.Box, "SUBDOMAIN")
if (subdomain == "") {
gui.ErrorWindow(b.GW, "Blank Name", "You must have a valid subdomain")
return
}
log.Println("\tsubdomain =", subdomain)
acc := new(pb.Account)
acc.Nick = subdomain
acc.Domain = subdomain
acc.Username = "jcarr@wit.com"
acc.Email = "jcarr@wit.com"
acc.Password = "badpass"
acc.URL = "http://stackapi-api1.stackapi.customers.dev.wit.com:4000/"
config.Accounts = append(config.Accounts, acc)
makeCloudInfoBox(b.GW)
gui.Data.State = "done"
log.Println("addSubdomainButton() END")
}
func generateSubdomain(b *gui.GuiButton) { func generateSubdomain(b *gui.GuiButton) {
log.Println("generateSubdomain START") log.Println("generateSubdomain START")
if (b == nil) { if (b == nil) {