mirror of
https://github.com/jesseduffield/lazydocker.git
synced 2026-07-25 08:31:03 +00:00
Use sort containers by state by default
Implements #224 Use sort containers by state as default behavior Legacy sort by name behavior can be set using a user config setting. `sortContainersByName` is false by default.
This commit is contained in:
parent
a0386618f9
commit
14e6ff1c1f
6 changed files with 64 additions and 36 deletions
|
|
@ -243,6 +243,7 @@ func (c *DockerCommand) RefreshContainersAndServices() error {
|
||||||
c.Containers = containers
|
c.Containers = containers
|
||||||
c.Services = services
|
c.Services = services
|
||||||
c.DisplayContainers = c.filterOutExited(displayContainers)
|
c.DisplayContainers = c.filterOutExited(displayContainers)
|
||||||
|
c.DisplayContainers = c.sortedContainers(c.DisplayContainers)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -274,6 +275,22 @@ func (c *DockerCommand) filterOutExited(containers []*Container) []*Container {
|
||||||
return toReturn
|
return toReturn
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// sortedContainers returns containers sorted by state if c.SortContainersByState is true (follows 1- running, 2- exited, 3- created)
|
||||||
|
// and sorted by name if c.SortContainersByState is false
|
||||||
|
func (c *DockerCommand) sortedContainers(containers []*Container) []*Container {
|
||||||
|
if !c.Config.UserConfig.Gui.SortContainersByName {
|
||||||
|
sort.Slice(containers, func(i, j int) bool {
|
||||||
|
states := map[string]int{
|
||||||
|
"running": 1,
|
||||||
|
"exited": 2,
|
||||||
|
"created": 3,
|
||||||
|
}
|
||||||
|
return states[containers[i].Container.State] < states[containers[j].Container.State]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return containers
|
||||||
|
}
|
||||||
|
|
||||||
// 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
|
// 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 {
|
func (c *DockerCommand) obtainStandaloneContainers(containers []*Container, services []*Service) []*Container {
|
||||||
standaloneContainers := []*Container{}
|
standaloneContainers := []*Container{}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !windows
|
||||||
// +build !windows
|
// +build !windows
|
||||||
|
|
||||||
package commands
|
package commands
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,11 @@ type GuiConfig struct {
|
||||||
|
|
||||||
// WrapMainPanel determines whether we use word wrap on the main panel
|
// WrapMainPanel determines whether we use word wrap on the main panel
|
||||||
WrapMainPanel bool `yaml:"wrapMainPanel,omitempty"`
|
WrapMainPanel bool `yaml:"wrapMainPanel,omitempty"`
|
||||||
|
|
||||||
|
// SortContainersByName determines if containers should be sorted by name.
|
||||||
|
// By default, containers are now sorted by status. This setting allows users to
|
||||||
|
// use legacy behaviour instead.
|
||||||
|
SortContainersByName bool `yaml:"sortContainersByName, omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CommandTemplatesConfig determines what commands actually get called when we
|
// CommandTemplatesConfig determines what commands actually get called when we
|
||||||
|
|
@ -325,6 +330,7 @@ func GetDefaultConfig() UserConfig {
|
||||||
ShowAllContainers: false,
|
ShowAllContainers: false,
|
||||||
ReturnImmediately: false,
|
ReturnImmediately: false,
|
||||||
WrapMainPanel: false,
|
WrapMainPanel: false,
|
||||||
|
SortContainersByName: false,
|
||||||
},
|
},
|
||||||
Reporting: "undetermined",
|
Reporting: "undetermined",
|
||||||
ConfirmOnQuit: false,
|
ConfirmOnQuit: false,
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
//go:build !windows && !linux
|
||||||
// +build !windows,!linux
|
// +build !windows,!linux
|
||||||
|
|
||||||
package config
|
package config
|
||||||
|
|
|
||||||
|
|
@ -618,3 +618,4 @@ func (gui *Gui) openContainerInBrowser(container *commands.Container) error {
|
||||||
link := fmt.Sprintf("http://%s:%d/", ip, port.PublicPort)
|
link := fmt.Sprintf("http://%s:%d/", ip, port.PublicPort)
|
||||||
return gui.OSCommand.OpenLink(link)
|
return gui.OSCommand.OpenLink(link)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ type TranslationSet struct {
|
||||||
RunCustomCommand string
|
RunCustomCommand string
|
||||||
ViewBulkCommands string
|
ViewBulkCommands string
|
||||||
OpenInBrowser string
|
OpenInBrowser string
|
||||||
|
SortContainersByState string
|
||||||
|
|
||||||
LogsTitle string
|
LogsTitle string
|
||||||
ConfigTitle string
|
ConfigTitle string
|
||||||
|
|
@ -118,42 +119,43 @@ func englishSet() TranslationSet {
|
||||||
Donate: "Donate",
|
Donate: "Donate",
|
||||||
Confirm: "Confirm",
|
Confirm: "Confirm",
|
||||||
|
|
||||||
Return: "return",
|
Return: "return",
|
||||||
FocusMain: "focus main panel",
|
FocusMain: "focus main panel",
|
||||||
Navigate: "navigate",
|
Navigate: "navigate",
|
||||||
Execute: "execute",
|
Execute: "execute",
|
||||||
Close: "close",
|
Close: "close",
|
||||||
Menu: "menu",
|
Menu: "menu",
|
||||||
Scroll: "scroll",
|
Scroll: "scroll",
|
||||||
OpenConfig: "open lazydocker config",
|
OpenConfig: "open lazydocker config",
|
||||||
EditConfig: "edit lazydocker config",
|
EditConfig: "edit lazydocker config",
|
||||||
Cancel: "cancel",
|
Cancel: "cancel",
|
||||||
Remove: "remove",
|
Remove: "remove",
|
||||||
HideStopped: "Hide/Show stopped containers",
|
HideStopped: "Hide/Show stopped containers",
|
||||||
ForceRemove: "force remove",
|
ForceRemove: "force remove",
|
||||||
RemoveWithVolumes: "remove with volumes",
|
RemoveWithVolumes: "remove with volumes",
|
||||||
RemoveService: "remove containers",
|
RemoveService: "remove containers",
|
||||||
Stop: "stop",
|
Stop: "stop",
|
||||||
Restart: "restart",
|
Restart: "restart",
|
||||||
Rebuild: "rebuild",
|
Rebuild: "rebuild",
|
||||||
Recreate: "recreate",
|
Recreate: "recreate",
|
||||||
PreviousContext: "previous tab",
|
PreviousContext: "previous tab",
|
||||||
NextContext: "next tab",
|
NextContext: "next tab",
|
||||||
Attach: "attach",
|
Attach: "attach",
|
||||||
ViewLogs: "view logs",
|
ViewLogs: "view logs",
|
||||||
RemoveImage: "remove image",
|
RemoveImage: "remove image",
|
||||||
RemoveVolume: "remove volume",
|
RemoveVolume: "remove volume",
|
||||||
RemoveWithoutPrune: "remove without deleting untagged parents",
|
RemoveWithoutPrune: "remove without deleting untagged parents",
|
||||||
PruneContainers: "prune exited containers",
|
PruneContainers: "prune exited containers",
|
||||||
PruneVolumes: "prune unused volumes",
|
PruneVolumes: "prune unused volumes",
|
||||||
PruneImages: "prune unused images",
|
PruneImages: "prune unused images",
|
||||||
StopAllContainers: "stop all containers",
|
StopAllContainers: "stop all containers",
|
||||||
RemoveAllContainers: "remove all containers (forced)",
|
RemoveAllContainers: "remove all containers (forced)",
|
||||||
ViewRestartOptions: "view restart options",
|
ViewRestartOptions: "view restart options",
|
||||||
ExecShell: "exec shell",
|
ExecShell: "exec shell",
|
||||||
RunCustomCommand: "run predefined custom command",
|
RunCustomCommand: "run predefined custom command",
|
||||||
ViewBulkCommands: "view bulk commands",
|
ViewBulkCommands: "view bulk commands",
|
||||||
OpenInBrowser: "open in browser (first port is http)",
|
OpenInBrowser: "open in browser (first port is http)",
|
||||||
|
SortContainersByState: "sort containers by state",
|
||||||
|
|
||||||
AnonymousReportingTitle: "Help make lazydocker better",
|
AnonymousReportingTitle: "Help make lazydocker better",
|
||||||
AnonymousReportingPrompt: "Would you like to enable anonymous reporting data to help improve lazydocker?",
|
AnonymousReportingPrompt: "Would you like to enable anonymous reporting data to help improve lazydocker?",
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue