From b89b02eee5ae47f84c1339ce6baf8d1fdb17d757 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sat, 6 Jul 2019 21:20:21 +0200 Subject: [PATCH 1/6] 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 From 30a79faa49fdf26cbec46d3c106e138760d20c57 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sun, 7 Jul 2019 14:19:35 +0200 Subject: [PATCH 2/6] Moved the filtering out of containers to the docker.go file --- pkg/commands/docker.go | 23 ++++++++++++++++++----- pkg/gui/containers_panel.go | 11 +---------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/pkg/commands/docker.go b/pkg/commands/docker.go index 6b1c49f2..02fabfe8 100644 --- a/pkg/commands/docker.go +++ b/pkg/commands/docker.go @@ -74,6 +74,7 @@ func NewDockerCommand(log *logrus.Entry, osCommand *OSCommand, tr *i18n.Translat Config: config, Client: cli, ErrorChan: errorChan, + ShowExited: true, InDockerComposeProject: true, } @@ -214,10 +215,8 @@ func (c *DockerCommand) RefreshContainersAndServices() error { c.assignContainersToServices(containers, services) - var displayContainers []*Container - if c.Config.UserConfig.Gui.ShowAllContainers { - displayContainers = containers - } else { + var displayContainers = containers + if !c.Config.UserConfig.Gui.ShowAllContainers { displayContainers = c.obtainStandaloneContainers(containers, services) } @@ -236,7 +235,7 @@ func (c *DockerCommand) RefreshContainersAndServices() error { c.Containers = containers c.Services = services - c.DisplayContainers = displayContainers + c.DisplayContainers = c.filterOutExited(displayContainers) return nil } @@ -254,6 +253,20 @@ L: } } +// filterOutExited filters out the exited containers if c.ShowExited is false +func (c *DockerCommand) filterOutExited(containers []*Container) []*Container { + if c.ShowExited { + return containers + } + toReturn := []*Container{} + for _, container := range containers { + if container.Container.State != "exited" { + toReturn = append(toReturn, container) + } + } + return toReturn +} + // obtainStandaloneContainers returns standalone containers. Standalone containers are containers which are either one-off containers, or whose service is not part of this docker-compose context func (c *DockerCommand) obtainStandaloneContainers(containers []*Container, services []*Service) []*Container { standaloneContainers := []*Container{} diff --git a/pkg/gui/containers_panel.go b/pkg/gui/containers_panel.go index 06b8267c..d1c61f5e 100644 --- a/pkg/gui/containers_panel.go +++ b/pkg/gui/containers_panel.go @@ -277,17 +277,8 @@ func (gui *Gui) refreshContainersAndServices() error { gui.g.Update(func(g *gocui.Gui) error { containersView.Clear() isFocused := gui.g.CurrentView().Name() == "containers" - 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)) + list, err := utils.RenderList(gui.DockerCommand.DisplayContainers, utils.IsFocused(isFocused)) if err != nil { return err } From 401c6a39eddca9dee67da3aad010705ca1691992 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sun, 7 Jul 2019 14:30:18 +0200 Subject: [PATCH 3/6] Updated the keybindings --- docs/keybindings/Keybindings_en.md | 3 +- docs/keybindings/Keybindings_nl.md | 21 ++++---- docs/keybindings/Keybindings_pl.md | 87 +++++++++++++++--------------- pkg/i18n/dutch.go | 3 +- pkg/i18n/english.go | 1 + 5 files changed, 60 insertions(+), 55 deletions(-) diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md index 50d7a427..f4a2f40c 100644 --- a/docs/keybindings/Keybindings_en.md +++ b/docs/keybindings/Keybindings_en.md @@ -1,6 +1,6 @@ # Lazydocker menu -## Status +## Project
   e: edit lazydocker config
@@ -17,6 +17,7 @@
   [: previous tab
   ]: next tab
   d: remove
+  h: Hide/Show stopped container
   s: stop
   r: restart
   a: attach
diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md
index 8de2dfd5..94bcc517 100644
--- a/docs/keybindings/Keybindings_nl.md
+++ b/docs/keybindings/Keybindings_nl.md
@@ -1,10 +1,10 @@
 # Lazydocker menu
 
-## Status
+## Project
 
 
-  e: verander lazydocker configuratie
-  o: open lazydocker configuratie
+  e: verander de lazydocker configuratie
+  o: open de lazydocker configuratie
   [: vorige tab
   ]: volgende tab
   m: bekijk logs
@@ -17,22 +17,23 @@
   [: vorige tab
   ]: volgende tab
   d: verwijder
+  h: Verberg gestopte containers
   s: stop
   r: herstart
-  a: vastmaken
-  D: verwijder verlaten containers
+  a: verbinden
+  D: vernietig bestaande containers
   m: bekijk logs
   c: draai een vooraf bedacht aangepaste opdracht
   enter: focus hooft panneel
 
-## Services +## Diensten
   d: verwijder containers
   s: stop
   r: herstart
-  a: vermaken
+  a: verbinden
   m: bekijk logs
   [: vorige tab
   ]: volgende tab
@@ -47,7 +48,7 @@
   [: vorige tab
   ]: volgende tab
   d: verwijder image
-  D: verwijder nietgebruikte images
+  D: vernietig ongebruikte images
   enter: focus hooft panneel
 
@@ -57,11 +58,11 @@ [: vorige tab ]: volgende tab d: verwijder volume - D: verwijder nietgebruikte images + D: vernietig ongebruikte volumes enter: focus hooft panneel
-## Main +## Hooft
   esc: terug
diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md
index 50d7a427..2dfc7f56 100644
--- a/docs/keybindings/Keybindings_pl.md
+++ b/docs/keybindings/Keybindings_pl.md
@@ -1,68 +1,69 @@
 # Lazydocker menu
 
-## Status
+## Projekt
 
 
-  e: edit lazydocker config
-  o: open lazydocker config
-  [: previous tab
-  ]: next tab
-  m: view logs
-  enter: focus main panel
+  e: edytuj konfigurację
+  o: otwórz konfigurację
+  [: poprzednia zakładka
+  ]: następna zakładka
+  m: pokaż logi
+  enter: skup na głównym panelu
 
-## Containers +## Kontenery
-  [: previous tab
-  ]: next tab
-  d: remove
-  s: stop
-  r: restart
-  a: attach
-  D: prune exited containers
-  m: view logs
-  c: run predefined custom command
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń
+  h: Hide/Show stopped container
+  s: zatrzymaj
+  r: restartuj
+  a: przyczep
+  D: wyczyść kontenery
+  m: pokaż logi
+  c: wykonaj predefiniowaną własną komende
+  enter: skup na głównym panelu
 
-## Services +## Serwisy
-  d: remove containers
-  s: stop
-  r: restart
-  a: attach
-  m: view logs
-  [: previous tab
-  ]: next tab
-  R: view restart options
-  c: run predefined custom command
-  enter: focus main panel
+  d: usuń kontenery
+  s: zatrzymaj
+  r: restartuj
+  a: przyczep
+  m: pokaż logi
+  [: poprzednia zakładka
+  ]: następna zakładka
+  R: pokaż opcje restartu
+  c: wykonaj predefiniowaną własną komende
+  enter: skup na głównym panelu
 
-## Images +## Obrazy
-  [: previous tab
-  ]: next tab
-  d: remove image
-  D: prune unused images
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń obraz
+  D: wyczyść nieużywane obrazy
+  enter: skup na głównym panelu
 
-## Volumes +## Wolumeny
-  [: previous tab
-  ]: next tab
-  d: remove volume
-  D: prune unused volumes
-  enter: focus main panel
+  [: poprzednia zakładka
+  ]: następna zakładka
+  d: usuń wolumen
+  D: wyczyść nieużywane wolumeny
+  enter: skup na głównym panelu
 
-## Main +## Główne
-  esc: return
+  esc: powrót
 
diff --git a/pkg/i18n/dutch.go b/pkg/i18n/dutch.go index 1f858d9d..cb89a6ca 100644 --- a/pkg/i18n/dutch.go +++ b/pkg/i18n/dutch.go @@ -31,6 +31,7 @@ func dutchSet() TranslationSet { EditConfig: "verander de lazydocker configuratie", Cancel: "annuleren", Remove: "verwijder", + HideStopped: "Verberg gestopte containers", ForceRemove: "geforceerd verwijderen", RemoveWithVolumes: "verwijder met volumes", RemoveService: "verwijder containers", @@ -48,7 +49,7 @@ func dutchSet() TranslationSet { PruneContainers: "vernietig bestaande containers", PruneVolumes: "vernietig ongebruikte volumes", PruneImages: "vernietig ongebruikte images", - ViewRestartOptions: "beijk herstart opties", + ViewRestartOptions: "bekijk herstart opties", RunCustomCommand: "draai een vooraf bedacht aangepaste opdracht", AnonymousReportingTitle: "Help mee met lazydocker beter maken", diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index 07d59599..cc30620e 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -116,6 +116,7 @@ func englishSet() TranslationSet { EditConfig: "edit lazydocker config", Cancel: "cancel", Remove: "remove", + HideStopped: "Hide/Show stopped container", ForceRemove: "force remove", RemoveWithVolumes: "remove with volumes", RemoveService: "remove containers", From 9bbd513a720f1eb3072f621b5665e931bb774d63 Mon Sep 17 00:00:00 2001 From: Mark Kopenga Date: Sun, 7 Jul 2019 14:33:23 +0200 Subject: [PATCH 4/6] Update pkg/i18n/english.go Co-Authored-By: Jesse Duffield --- pkg/i18n/english.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index bff63857..54384549 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -114,7 +114,7 @@ func englishSet() TranslationSet { EditConfig: "edit lazydocker config", Cancel: "cancel", Remove: "remove", - HideStopped: "Hide/Show stopped container", + HideStopped: "Hide/Show stopped containers", ForceRemove: "force remove", RemoveWithVolumes: "remove with volumes", RemoveService: "remove containers", From ec5bd8cd383fa579a3fd5f36bbf06091a33f6e36 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sun, 7 Jul 2019 14:34:06 +0200 Subject: [PATCH 5/6] Updated keybindings file --- docs/keybindings/Keybindings_de.md | 1 + docs/keybindings/Keybindings_en.md | 2 +- docs/keybindings/Keybindings_nl.md | 2 +- docs/keybindings/Keybindings_pl.md | 2 +- docs/keybindings/Keybindings_tr.md | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/keybindings/Keybindings_de.md b/docs/keybindings/Keybindings_de.md index 62b92011..01c49722 100644 --- a/docs/keybindings/Keybindings_de.md +++ b/docs/keybindings/Keybindings_de.md @@ -17,6 +17,7 @@ [: vorheriges Tab ]: nächstes Tab d: entfernen + h: Hide/Show stopped containers s: anhalten r: neustarten a: anbinden diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md index f4a2f40c..b88cec4c 100644 --- a/docs/keybindings/Keybindings_en.md +++ b/docs/keybindings/Keybindings_en.md @@ -17,7 +17,7 @@ [: previous tab ]: next tab d: remove - h: Hide/Show stopped container + h: Hide/Show stopped containers s: stop r: restart a: attach diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md index 800c9933..94bcc517 100644 --- a/docs/keybindings/Keybindings_nl.md +++ b/docs/keybindings/Keybindings_nl.md @@ -37,7 +37,7 @@ m: bekijk logs [: vorige tab ]: volgende tab - R: beijk herstart opties + R: bekijk herstart opties c: draai een vooraf bedacht aangepaste opdracht enter: focus hooft panneel
diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md index 2dfc7f56..34b31c50 100644 --- a/docs/keybindings/Keybindings_pl.md +++ b/docs/keybindings/Keybindings_pl.md @@ -17,7 +17,7 @@ [: poprzednia zakładka ]: następna zakładka d: usuń - h: Hide/Show stopped container + h: Hide/Show stopped containers s: zatrzymaj r: restartuj a: przyczep diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md index dc8bb571..b6610ac4 100644 --- a/docs/keybindings/Keybindings_tr.md +++ b/docs/keybindings/Keybindings_tr.md @@ -17,6 +17,7 @@ [: önceki sekme ]: sonraki sekme d: kaldır + h: Hide/Show stopped containers s: durdur r: yeniden başlat a: bağlan/iliştir From 209456fdcd8f8f3a0ab5f1ca7189e4a89349ff34 Mon Sep 17 00:00:00 2001 From: mjarkk Date: Sun, 7 Jul 2019 14:44:59 +0200 Subject: [PATCH 6/6] Changed the keybinding to e --- docs/keybindings/Keybindings_de.md | 2 +- docs/keybindings/Keybindings_en.md | 2 +- docs/keybindings/Keybindings_nl.md | 2 +- docs/keybindings/Keybindings_pl.md | 2 +- docs/keybindings/Keybindings_tr.md | 2 +- pkg/gui/keybindings.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/keybindings/Keybindings_de.md b/docs/keybindings/Keybindings_de.md index 01c49722..9f08b97b 100644 --- a/docs/keybindings/Keybindings_de.md +++ b/docs/keybindings/Keybindings_de.md @@ -17,7 +17,7 @@ [: vorheriges Tab ]: nächstes Tab d: entfernen - h: Hide/Show stopped containers + e: Hide/Show stopped containers s: anhalten r: neustarten a: anbinden diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md index b88cec4c..3cedb64b 100644 --- a/docs/keybindings/Keybindings_en.md +++ b/docs/keybindings/Keybindings_en.md @@ -17,7 +17,7 @@ [: previous tab ]: next tab d: remove - h: Hide/Show stopped containers + e: Hide/Show stopped containers s: stop r: restart a: attach diff --git a/docs/keybindings/Keybindings_nl.md b/docs/keybindings/Keybindings_nl.md index 94bcc517..2cc97077 100644 --- a/docs/keybindings/Keybindings_nl.md +++ b/docs/keybindings/Keybindings_nl.md @@ -17,7 +17,7 @@ [: vorige tab ]: volgende tab d: verwijder - h: Verberg gestopte containers + e: Verberg gestopte containers s: stop r: herstart a: verbinden diff --git a/docs/keybindings/Keybindings_pl.md b/docs/keybindings/Keybindings_pl.md index 34b31c50..82e4cab2 100644 --- a/docs/keybindings/Keybindings_pl.md +++ b/docs/keybindings/Keybindings_pl.md @@ -17,7 +17,7 @@ [: poprzednia zakładka ]: następna zakładka d: usuń - h: Hide/Show stopped containers + e: Hide/Show stopped containers s: zatrzymaj r: restartuj a: przyczep diff --git a/docs/keybindings/Keybindings_tr.md b/docs/keybindings/Keybindings_tr.md index b6610ac4..30f69b5c 100644 --- a/docs/keybindings/Keybindings_tr.md +++ b/docs/keybindings/Keybindings_tr.md @@ -17,7 +17,7 @@ [: önceki sekme ]: sonraki sekme d: kaldır - h: Hide/Show stopped containers + e: Hide/Show stopped containers s: durdur r: yeniden başlat a: bağlan/iliştir diff --git a/pkg/gui/keybindings.go b/pkg/gui/keybindings.go index 539908f0..ccedcaa1 100644 --- a/pkg/gui/keybindings.go +++ b/pkg/gui/keybindings.go @@ -213,7 +213,7 @@ func (gui *Gui) GetInitialKeybindings() []*Binding { }, { ViewName: "containers", - Key: 'h', + Key: 'e', Modifier: gocui.ModNone, Handler: gui.handleHideStoppedContainers, Description: gui.Tr.HideStopped,