From 91ea3b22018ea54cfe497b41d9013b21b250a8ef Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 7 Jan 2024 10:37:19 -0600 Subject: [PATCH] error window v0.1 Signed-off-by: Jeff Carr --- errorBox.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++------- fix.go | 18 ++++++++++++------ 2 files changed, 59 insertions(+), 13 deletions(-) diff --git a/errorBox.go b/errorBox.go index 7bbc560..0353393 100644 --- a/errorBox.go +++ b/errorBox.go @@ -20,25 +20,65 @@ type errorBox struct { l *gui.Node b *gui.Node + fixes map[string]*anError + something *gadgets.OneLiner } +type anError struct { + kind string // what kind of error is it? + ip string + status string + + kindLabel *gui.Node + ipLabel *gui.Node + statusLabel *gui.Node + button *gui.Node +} + func NewErrorBox(p *gui.Node, name string, ip string) *errorBox { var eb *errorBox eb = new(errorBox) eb.parent = p - eb.group = p.NewGroup("eg") - eb.grid = eb.group.NewGrid("labels", 2, 1) + eb.group = p.NewGroup(name) + eb.grid = eb.group.NewGrid("stuff", 4, 1) - eb.l = p.NewLabel("click to fix") - eb.b = p.NewButton(name, func() { - log.Log(WARN, "should try to fix here") - }) - eb.something = gadgets.NewOneLiner(eb.grid, ip) + eb.grid.NewLabel("Type") + eb.grid.NewLabel("IP") + eb.grid.NewLabel("Status") + eb.grid.NewLabel("") + eb.fixes = make(map[string]*anError) return eb } + +func (eb *errorBox) add(kind string, ip string) bool { + tmp := kind + " " + ip + if eb.fixes[tmp] != nil { + log.Log(WARN, "Error is already here", kind, ip) + return false + } + + anErr := new(anError) + anErr.kind = kind + + anErr.kindLabel = eb.grid.NewLabel(kind) + anErr.ipLabel = eb.grid.NewLabel(ip) + anErr.statusLabel = eb.grid.NewLabel("") + anErr.button = eb.grid.NewButton(kind, func() { + log.Log(WARN, "got", kind, "here. IP =", ip) + eb.fix(kind, ip) + }) + eb.fixes[tmp] = anErr + return false +} + +func (eb *errorBox) fix(name string, ip string) bool { + log.Log(WARN, "should try to fix", name, "here. IP =", ip) + return false +} + func (eb *errorBox) update() bool { return false } diff --git a/fix.go b/fix.go index 6c699b4..599a6d8 100644 --- a/fix.go +++ b/fix.go @@ -16,6 +16,7 @@ func fix() bool { me.fixWindow.SetParent(me.myGui) me.fixWindow.Title("fix window") me.fixWindow.SetDraw(drawFixWindow) + me.fixWindow.Vertical() me.fixWindow.Make() me.fixWindow.Draw() me.fixWindow.Hide() @@ -81,6 +82,8 @@ func fixIPv6dns() bool { // remove old DNS entries first for aaaa, _ := range dnsAAAA { if osAAAA[aaaa] == "os" { + log.Log(INFO, "DNS AAAA is in OS", aaaa) + } else { broken = true log.Log(INFO, "DNS AAAA is not in OS", aaaa) addToFixWindow("DELETE", aaaa) @@ -91,8 +94,6 @@ func fixIPv6dns() bool { log.Log(INFO, "Delete AAAA", aaaa, "Failed") } */ - } else { - log.Log(INFO, "DNS AAAA is in OS", aaaa) } } @@ -142,15 +143,20 @@ func exists(m map[string]bool, s string) bool { return false } +var myErrorBox *errorBox + func addToFixWindow(t string, ip string) { - log.Log(WARN, "addToFixWindow() START") + log.Log(INFO, "addToFixWindow() START") if me.fixWindow == nil { log.Log(WARN, "addToFixWindow() fixWindow == nil. Can't add the error", t, ip) return } - box := me.fixWindow.Box() - NewErrorBox(box, t, ip) - log.Log(WARN, "addToFixWindow() END") + if myErrorBox == nil { + box := me.fixWindow.Box() + myErrorBox = NewErrorBox(box, t, ip) + } + myErrorBox.add(t, ip) + log.Log(INFO, "addToFixWindow() END") } func drawFixWindow(sw *smartwindow.SmartWindow) {