refresh images upon receiving an event

This commit is contained in:
Jesse Duffield 2022-05-10 23:14:46 +10:00
parent 56b3196ef9
commit 75ed6b12e5
6 changed files with 24 additions and 40 deletions

View file

@ -461,16 +461,13 @@ func (gui *Gui) handleContainersRemoveMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createConfirmationPanel(gui.g, v, gui.Tr.Confirm, gui.Tr.MustForceToRemoveContainer, func(g *gocui.Gui, v *gocui.View) error { return gui.createConfirmationPanel(gui.g, v, gui.Tr.Confirm, gui.Tr.MustForceToRemoveContainer, func(g *gocui.Gui, v *gocui.View) error {
return gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error { return gui.WithWaitingStatus(gui.Tr.RemovingStatus, func() error {
configOptions.Force = true configOptions.Force = true
if err := container.Remove(configOptions); err != nil { return container.Remove(configOptions)
return err
}
return gui.refreshContainersAndServices()
}) })
}, nil) }, nil)
} }
return gui.createErrorPanel(gui.g, err.Error()) return gui.createErrorPanel(gui.g, err.Error())
} }
return gui.refreshContainersAndServices() return nil
}) })
} }
@ -489,7 +486,7 @@ func (gui *Gui) handleContainerStop(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error()) return gui.createErrorPanel(gui.g, err.Error())
} }
return gui.refreshContainersAndServices() return nil
}) })
}, nil) }, nil)
} }
@ -505,7 +502,7 @@ func (gui *Gui) handleContainerRestart(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error()) return gui.createErrorPanel(gui.g, err.Error())
} }
return gui.refreshContainersAndServices() return nil
}) })
} }

View file

@ -183,16 +183,6 @@ func max(a, b int) int {
return b return b
} }
func (gui *Gui) loadNewDirectory() error {
gui.waitForIntro.Done()
if err := gui.refreshSidePanels(gui.g); err != nil {
return err
}
return nil
}
func (gui *Gui) renderGlobalOptions() error { func (gui *Gui) renderGlobalOptions() error {
return gui.renderOptionsMap(map[string]string{ return gui.renderOptionsMap(map[string]string{
"PgUp/PgDn": gui.Tr.Scroll, "PgUp/PgDn": gui.Tr.Scroll,
@ -293,13 +283,22 @@ func (gui *Gui) rerenderContainersAndServices() error {
} }
func (gui *Gui) refresh() { func (gui *Gui) refresh() {
gui.refreshProject() go gui.refreshProject()
if err := gui.refreshContainersAndServices(); err != nil { go func() {
gui.Log.Error(err) if err := gui.refreshContainersAndServices(); err != nil {
} gui.Log.Error(err)
if err := gui.refreshVolumes(); err != nil { }
gui.Log.Error(err) }()
} go func() {
if err := gui.refreshVolumes(); err != nil {
gui.Log.Error(err)
}
}()
go func() {
if err := gui.refreshImages(); err != nil {
gui.Log.Error(err)
}
}()
} }
func (gui *Gui) listenForEvents(finish chan struct{}, refresh func()) { func (gui *Gui) listenForEvents(finish chan struct{}, refresh func()) {

View file

@ -240,7 +240,7 @@ func (gui *Gui) handleImagesRemoveMenu(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, cerr.Error()) return gui.createErrorPanel(gui.g, cerr.Error())
} }
return gui.refreshImages() return nil
} }
return gui.createMenu("", options, len(options), handleMenuPress) return gui.createMenu("", options, len(options), handleMenuPress)

View file

@ -256,10 +256,7 @@ func (gui *Gui) layout(g *gocui.Gui) error {
return err return err
} }
// doing this here because it'll only happen once gui.waitForIntro.Done()
if err := gui.loadNewDirectory(); err != nil {
return err
}
} }
if gui.g.CurrentView() == nil { if gui.g.CurrentView() == nil {

View file

@ -231,7 +231,7 @@ func (gui *Gui) handleServiceStop(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error()) return gui.createErrorPanel(gui.g, err.Error())
} }
return gui.refreshContainersAndServices() return nil
}) })
}, nil) }, nil)
} }
@ -247,7 +247,7 @@ func (gui *Gui) handleServiceRestart(g *gocui.Gui, v *gocui.View) error {
return gui.createErrorPanel(gui.g, err.Error()) return gui.createErrorPanel(gui.g, err.Error())
} }
return gui.refreshContainersAndServices() return nil
}) })
} }

View file

@ -10,15 +10,6 @@ import (
"github.com/spkg/bom" "github.com/spkg/bom"
) )
func (gui *Gui) refreshSidePanels(g *gocui.Gui) error {
// not refreshing containers and services here given that we do it every few milliseconds anyway
if err := gui.refreshImages(); err != nil {
return err
}
return nil
}
func (gui *Gui) nextView(g *gocui.Gui, v *gocui.View) error { func (gui *Gui) nextView(g *gocui.Gui, v *gocui.View) error {
var focusedViewName string var focusedViewName string
if v == nil || v.Name() == gui.CyclableViews[len(gui.CyclableViews)-1] { if v == nil || v.Name() == gui.CyclableViews[len(gui.CyclableViews)-1] {