2019-05-29 17:46:37 -05:00
package main
2019-06-01 03:19:51 -05:00
import "log"
import "runtime"
2019-05-29 17:46:37 -05:00
import "git.wit.com/wit/gui"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
2019-06-01 19:53:30 -05:00
import pb "git.wit.com/wit/witProtobuf"
2019-06-01 04:12:46 -05:00
func showSplashBox ( gw * gui . GuiWindow ) * gui . GuiBox {
log . Println ( "ShowSplashBox() START" )
text := getNEWTEXT ( )
2019-06-02 00:24:26 -05:00
box := gui . ShowTextBox ( gw , text , splashClick )
2019-06-01 04:12:46 -05:00
if runtime . GOOS == "linux" {
gui . NewLabel ( box , "OS: Linux" )
} else if runtime . GOOS == "windows" {
gui . NewLabel ( box , "OS: Windows" )
} else {
gui . NewLabel ( box , "OS: " + runtime . GOOS )
}
gui . NewLabel ( box , "Version: " + VERSION )
if ( config . Debug ) {
gui . NewLabel ( box , "git rev-list: " + GITCOMMIT )
gui . NewLabel ( box , "go build version: " + GOVERSION )
gui . NewLabel ( box , "build date: " + BUILDTIME )
}
2019-06-01 23:15:36 -05:00
okButton := gui . CreateButton ( box , nil , nil , "OK" , "AREA" , splashClick )
2019-06-01 04:12:46 -05:00
gui . AddButtonToBox ( box , okButton )
log . Println ( "ShowSplashBox() END box =" , box )
return box
2019-05-29 17:46:37 -05:00
}
func getNEWTEXT ( ) * ui . AttributedString {
var aText * ui . AttributedString
aText = ui . NewAttributedString ( "" )
gui . AreaAppendText ( aText , "Welcome to the Cloud Control Panel\n" , ui . TextSize ( 16 ) , ui . TextColor { 0.0 , 0.0 , 0.8 , .8 } )
gui . AreaAppendText ( aText , "(alpha)\n\n" , ui . TextSize ( 10 ) )
gui . AreaAppendText ( aText , "This control panel was designed to be an interface to your 'private' cloud. " , ui . TextWeightBold )
gui . AreaAppendText ( aText , "The concept of a private cloud means that you can use a providers system, or, seemlessly, use your own hardware in your own datacenter. " , ui . TextWeightBold )
aText . AppendUnattributed ( "\n" )
aText . AppendUnattributed ( "\n" )
gui . AreaAppendText ( aText , "This control panel requires:\n" )
aText . AppendUnattributed ( "\n" )
gui . AreaAppendText ( aText , "IPv6\n" )
gui . AreaAppendText ( aText , "Your hostname in DNS\n" )
aText . AppendUnattributed ( "\n\n\n\n\n" )
gui . AreaAppendText ( aText , "<click or press any key>\n" , ui . TextSize ( 10 ) )
return aText
}
2019-06-01 03:19:51 -05:00
2019-06-02 08:21:12 -05:00
func splashClick ( b * gui . GuiButton ) {
gw := b . Box . Window
// if there is already an account, skip straight to the main screen
for key , _ := range config . Accounts {
log . Println ( "gui.State = splash BUT THERE IS AN ACCOUNT Account = " , config . Accounts [ key ] )
makeCloudInfoBox ( gw )
return
}
// if there is not an account, then go to 'make account'
gw . MakeWindow = addSubdomainQuestionBox
2019-06-02 13:02:03 -05:00
gw = gui . ShowTab ( gw , "Box22" , "New Account?" )
2019-06-02 08:21:12 -05:00
}
2019-06-01 04:12:46 -05:00
func addSubdomainQuestionBox ( gw * gui . GuiWindow ) * gui . GuiBox {
log . Println ( "addSubdomainQuestionBox() START" )
2019-06-02 13:02:03 -05:00
box := gui . AddGenericBox ( gw , "addSubdomainQuestion" )
2019-06-01 03:19:51 -05:00
2019-06-01 04:12:46 -05:00
gui . NewLabel ( box , "Enter your Subdomain or" )
2019-06-01 03:19:51 -05:00
2019-06-01 04:12:46 -05:00
button := gui . CreateButton ( box , nil , nil , "Generate" , "SUBDOMAIN" , generateSubdomain )
gui . AddButtonToBox ( box , button )
2019-06-01 03:19:51 -05:00
2019-06-01 04:12:46 -05:00
gui . AddEntry ( box , "SUBDOMAIN" )
2019-06-01 03:19:51 -05:00
2019-06-01 04:12:46 -05:00
gui . HorizontalBreak ( box )
2019-06-01 03:19:51 -05:00
2019-06-01 19:53:30 -05:00
button2 := gui . CreateButton ( box , nil , nil , "Create Subdomain Account" , "ADD" , addSubdomainButton )
2019-06-01 04:12:46 -05:00
gui . AddButtonToBox ( box , button2 )
log . Println ( "addSubdomainQuestionBox() END box =" , box )
2019-06-01 03:19:51 -05:00
return box
}
2019-06-01 04:12:46 -05:00
2019-06-01 19:53:30 -05:00
// 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" )
}
2019-06-01 04:12:46 -05:00
func generateSubdomain ( b * gui . GuiButton ) {
log . Println ( "generateSubdomain START" )
if ( b == nil ) {
log . Println ( "generateSubdomain ERROR b == nil" )
return
}
// subdomain.SetText("cust00013.wit.dev")
txt := gui . SetText ( b . Box , "SUBDOMAIN" , "cust001.testing.com.customers.wprod.wit.com" )
log . Println ( "generateSubdomain subdomain = " , txt )
log . Println ( "generateSubdomain END" )
}