// 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() }