cloudflare/loadZoneWindow.go

92 lines
1.8 KiB
Go

// This is a simple example
package cloudflare
import (
"strconv"
"go.wit.com/gui"
"go.wit.com/lib/gadgets"
"go.wit.com/log"
)
func LoadZoneWindow(n *gui.Node, c *ConfigT) {
hostname := c.Domain
zoneID := c.ZoneID
log.Log(INFO, "adding DNS record", hostname)
newW := gadgets.NewBasicWindow(n, hostname)
newg := newW.Box().NewGroup("more zoneID = " + zoneID)
// make a grid 6 things wide
grid := newg.NewGrid("gridnuts", 6, 1)
// grid.NewButton("Type", func () {
// log.Log(INFO, "sort by Type")
// })
grid.NewLabel("RR type")
grid.NewLabel("hostname")
grid.NewLabel("Proxy")
grid.NewLabel("TTL")
grid.NewLabel("Value")
grid.NewLabel("Save")
records := GetZonefile(c)
for _, record := range records.Result {
var rr RRT // dns zonefile resource record
// copy all the JSON values into the row record.
rr.ID = record.ID
rr.Type = record.Type
rr.Name = record.Name
rr.Content = record.Content
rr.Proxied = record.Proxied
rr.Proxiable = record.Proxiable
rr.ZoneID = zoneID
// rr.Ttl = record.TTL
rr.Domain = hostname
rr.ZoneID = zoneID
rr.Auth = c.Auth
rr.Email = c.Email
grid.NewLabel(record.Type)
grid.NewLabel(record.Name)
proxy := grid.NewLabel("proxy")
if record.Proxied {
proxy.SetText("On")
} else {
proxy.SetText("Off")
}
var ttl string
if record.TTL == 1 {
ttl = "Auto"
} else {
ttl = strconv.Itoa(record.TTL)
}
grid.NewLabel(ttl)
val := grid.NewLabel("Value")
val.SetText(record.Content)
load := grid.NewButton("Load", nil)
load.Custom = func() {
name := "save stuff to cloudflare for " + rr.ID
log.Log(INFO, name)
/*
rr.Domain = domainWidget.S
rr.ZoneID = zoneWidget.S
rr.Auth = authWidget.S
rr.Email = emailWidget.S
*/
SetRow(&rr)
}
}
grid.Pad()
}