summaryrefslogtreecommitdiff
path: root/windowReposNew.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-05-31 14:38:55 -0500
committerJeff Carr <[email protected]>2025-05-31 14:38:55 -0500
commit9f367cb39b6f6275b0f88fc4fc038cdec33334fa (patch)
tree1d6ae341f67905ec304c11a2dc7d26a9bfd6ab1e /windowReposNew.go
parent2f8da5a8be17c161c107cff96adabe178c977500 (diff)
drop old code. rearrange buttons
Diffstat (limited to 'windowReposNew.go')
-rw-r--r--windowReposNew.go114
1 files changed, 114 insertions, 0 deletions
diff --git a/windowReposNew.go b/windowReposNew.go
new file mode 100644
index 0000000..0b7a969
--- /dev/null
+++ b/windowReposNew.go
@@ -0,0 +1,114 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+// An app to submit patches for the 30 GO GUI repos
+
+import (
+ "sync"
+
+ "go.wit.com/gui"
+ "go.wit.com/lib/gadgets"
+ "go.wit.com/lib/protobuf/gitpb"
+ "go.wit.com/log"
+)
+
+type stdReposTableWin struct {
+ sync.Mutex
+ win *gadgets.GenericWindow // the machines gui window
+ boxTB *gui.Node // the machines gui parent box widget
+ TB *gitpb.ReposTable // the gui table buffer
+ pb *gitpb.Repos // the current repos protobuf
+ update bool // if the window should be updated
+}
+
+func (w *stdReposTableWin) Toggle() {
+ if w == nil {
+ return
+ }
+ if w.win == nil {
+ return
+ }
+ w.win.Toggle()
+}
+
+func makeWindowForPB() *gadgets.GenericWindow {
+ win := gadgets.NewGenericWindow("Forge Repos Raw Protobuf View", "Filter Git Repositories")
+
+ return win
+}
+
+func makeReposWinNew() *gadgets.GenericWindow {
+ insertWin := makeWindowForPB()
+ insertWin.Win.Custom = func() {
+ log.Info("test delete window here")
+ }
+ grid := insertWin.Group.RawGrid()
+
+ var t *gitpb.ReposTable
+ grid.NewButton("dirty", func() {
+ if t != nil {
+ t.Delete()
+ t = nil
+ }
+ found := findDirty()
+
+ // display the protobuf
+ t = addWindowPB(insertWin, found)
+ f := func(repo *gitpb.Repo) {
+ log.Info("got to ReposTable.Custom() id =", repo.GetGoPath(), repo.GetCurrentVersion())
+ }
+ t.Custom(f)
+ log.Info("table has uuid", t.GetUuid())
+ })
+
+ grid.NewButton("writeable", func() {
+ if t != nil {
+ t.Delete()
+ t = nil
+ }
+ found := new(gitpb.Repos)
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
+ continue
+ }
+
+ found.AppendByGoPath(repo)
+
+ }
+
+ // make the window for the first time
+ t = addWindowPB(insertWin, found)
+ f := func(repo *gitpb.Repo) {
+ log.Info("got to ReposTable.Custom() id =", repo.GetGoPath(), repo.GetCurrentVersion())
+ }
+ t.Custom(f)
+ log.Info("table has uuid", t.GetUuid())
+ })
+
+ grid.NewButton("all", func() {
+ if t != nil {
+ t.Delete()
+ t = nil
+ }
+ found := new(gitpb.Repos)
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ found.AppendByGoPath(repo)
+
+ }
+ // display the protobuf
+ t = addWindowPB(insertWin, found)
+ f := func(repo *gitpb.Repo) {
+ log.Info("got to ReposTable.Custom() id =", repo.GetGoPath(), repo.GetCurrentVersion())
+ }
+ t.Custom(f)
+ log.Info("table has uuid", t.GetUuid())
+ })
+
+ return insertWin
+}