From b89b02eee5ae47f84c1339ce6baf8d1fdb17d757 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sat, 6 Jul 2019 21:20:21 +0200 Subject: [PATCH] Added h key binding --- pkg/commands/docker.go | 1 + pkg/gui/containers_panel.go | 17 ++++++++++++++++- pkg/gui/keybindings.go | 7 +++++++ pkg/i18n/english.go | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pkg/commands/docker.go b/pkg/commands/docker.go index 6408bb53..6b1c49f2 100644 --- a/pkg/commands/docker.go +++ b/pkg/commands/docker.go @@ -29,6 +29,7 @@ type DockerCommand struct { Config *config.AppConfig Client *client.Client InDockerComposeProject bool + ShowExited bool ErrorChan chan error ContainerMutex sync.Mutex ServiceMutex sync.Mutex diff --git a/pkg/gui/containers_panel.go b/pkg/gui/containers_panel.go index 22ec1d99..06b8267c 100644 --- a/pkg/gui/containers_panel.go +++ b/pkg/gui/containers_panel.go @@ -277,7 +277,17 @@ func (gui *Gui) refreshContainersAndServices() error { gui.g.Update(func(g *gocui.Gui) error { containersView.Clear() isFocused := gui.g.CurrentView().Name() == "containers" - list, err := utils.RenderList(gui.DockerCommand.DisplayContainers, utils.IsFocused(isFocused)) + toRender := gui.DockerCommand.DisplayContainers + if !gui.DockerCommand.ShowExited { + toRender = []*commands.Container{} + for _, container := range gui.DockerCommand.DisplayContainers { + if container.Container.State != "exited" { + toRender = append(toRender, container) + } + } + } + + list, err := utils.RenderList(toRender, utils.IsFocused(isFocused)) if err != nil { return err } @@ -371,6 +381,11 @@ func (r *removeContainerOption) GetDisplayStrings(isFocused bool) []string { return []string{r.description, color.New(color.FgRed).Sprint(r.command)} } +func (gui *Gui) handleHideStoppedContainers(g *gocui.Gui, v *gocui.View) error { + gui.DockerCommand.ShowExited = !gui.DockerCommand.ShowExited + return nil +} + func (gui *Gui) handleContainersRemoveMenu(g *gocui.Gui, v *gocui.View) error { container, err := gui.getSelectedContainer() if err != nil { diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index c1fe9196..539908f0 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -211,6 +211,13 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { Handler: gui.handleContainersRemoveMenu, Description: gui.Tr.Remove, }, + { + ViewName: "containers", + Key: 'h', + Modifier: gocui.ModNone, + Handler: gui.handleHideStoppedContainers, + Description: gui.Tr.HideStopped, + }, { ViewName: "containers", Key: 's', diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index d8e660fc..07d59599 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -31,6 +31,7 @@ type TranslationSet struct { Cancel string CustomCommandTitle string Remove string + HideStopped string ForceRemove string RemoveWithVolumes string MustForceToRemoveContainer string