add reverse sort order option, toggle

This commit is contained in:
Bradley Cicenas 2017-01-12 19:48:29 +00:00
parent 6856a7028b
commit 9a87c269aa
4 changed files with 20 additions and 3 deletions

View File

@ -18,6 +18,15 @@ func updateConfig(k, v string) {
configChan <- ConfigMsg{k, v} configChan <- ConfigMsg{k, v}
} }
// Toggle a boolean option
func (c Config) toggle(k string) {
if c[k] == "0" {
c[k] = "1"
} else {
c[k] = "0"
}
}
func NewDefaultConfig() Config { func NewDefaultConfig() Config {
docker := os.Getenv("DOCKER_HOST") docker := os.Getenv("DOCKER_HOST")
if docker == "" { if docker == "" {
@ -26,6 +35,7 @@ func NewDefaultConfig() Config {
config := Config{ config := Config{
"dockerHost": docker, "dockerHost": docker,
"sortField": "id", "sortField": "id",
"sortReverse": "0",
"enableHeader": "0", "enableHeader": "0",
} }
go func() { go func() {

View File

@ -145,11 +145,14 @@ func Display(g *Grid) bool {
menu = HelpMenu menu = HelpMenu
ui.StopLoop() ui.StopLoop()
}) })
ui.Handle("/sys/kbd/s", func(ui.Event) { ui.Handle("/sys/kbd/q", func(ui.Event) {
menu = SortMenu
ui.StopLoop() ui.StopLoop()
}) })
ui.Handle("/sys/kbd/q", func(ui.Event) { ui.Handle("/sys/kbd/r", func(ui.Event) {
GlobalConfig.toggle("sortReversed")
})
ui.Handle("/sys/kbd/s", func(ui.Event) {
menu = SortMenu
ui.StopLoop() ui.StopLoop()
}) })
ui.Handle("/timer/1s", func(e ui.Event) { ui.Handle("/timer/1s", func(e ui.Event) {

View File

@ -8,6 +8,7 @@ import (
var helpDialog = []string{ var helpDialog = []string{
"[h] - open this help dialog", "[h] - open this help dialog",
"[s] - select container sort field", "[s] - select container sort field",
"[r] - reverse container sort order",
"[q] - exit ctop", "[q] - exit ctop",
} }

View File

@ -30,6 +30,9 @@ func (a Containers) Len() int { return len(a) }
func (a Containers) Swap(i, j int) { a[i], a[j] = a[j], a[i] } func (a Containers) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a Containers) Less(i, j int) bool { func (a Containers) Less(i, j int) bool {
f := Sorters[GlobalConfig["sortField"]] f := Sorters[GlobalConfig["sortField"]]
if GlobalConfig["sortReversed"] == "1" {
return f(a[j], a[i])
}
return f(a[i], a[j]) return f(a[i], a[j])
} }