kanban

Kanban client in Gio
Log | Files | Refs | README | LICENSE

commit 5fe8726117c0d605d46f9520138c66cc773923b0
parent 601b0cee6481f3c9e40889df12540206f96645b6
Author: Jack Mordaunt <jackmordaunt@gmail.com>
Date:   Sun,  8 Nov 2020 15:36:40 +0800

fix: skip empty stages

Diffstat:
Mcmd/kanban/main.go | 45+++++++++++++++++++++++++--------------------
1 file changed, 25 insertions(+), 20 deletions(-)

diff --git a/cmd/kanban/main.go b/cmd/kanban/main.go @@ -367,36 +367,41 @@ func (ui *UI) Refocus(d Direction) { fmt.Printf("error: querying stages: %v", err) return } - switch d { - case NextTicket: - ui.FocusedTicket.Index++ - if ui.FocusedTicket.Index > len(stages[ui.FocusedTicket.Stage].Tickets) { + for { + switch d { + case NextTicket: + ui.FocusedTicket.Index++ + if ui.FocusedTicket.Index > len(stages[ui.FocusedTicket.Stage].Tickets) { + ui.FocusedTicket.Index = 1 + ui.FocusedTicket.Stage++ + if ui.FocusedTicket.Stage > len(stages)-1 { + ui.FocusedTicket.Stage = 0 + } + } + case PreviousTicket: + ui.FocusedTicket.Index-- + if ui.FocusedTicket.Index < 1 { + ui.FocusedTicket.Stage-- + if ui.FocusedTicket.Stage < 0 { + ui.FocusedTicket.Stage = len(stages) - 1 + } + ui.FocusedTicket.Index = len(stages[ui.FocusedTicket.Stage].Tickets) + } + case PreviousStage: ui.FocusedTicket.Index = 1 ui.FocusedTicket.Stage++ if ui.FocusedTicket.Stage > len(stages)-1 { ui.FocusedTicket.Stage = 0 } - } - case PreviousTicket: - ui.FocusedTicket.Index-- - if ui.FocusedTicket.Index < 1 { + case NextStage: + ui.FocusedTicket.Index = 1 ui.FocusedTicket.Stage-- if ui.FocusedTicket.Stage < 0 { ui.FocusedTicket.Stage = len(stages) - 1 } - ui.FocusedTicket.Index = len(stages[ui.FocusedTicket.Stage].Tickets) - } - case PreviousStage: - ui.FocusedTicket.Index = 1 - ui.FocusedTicket.Stage++ - if ui.FocusedTicket.Stage > len(stages)-1 { - ui.FocusedTicket.Stage = 0 } - case NextStage: - ui.FocusedTicket.Index = 1 - ui.FocusedTicket.Stage-- - if ui.FocusedTicket.Stage < 0 { - ui.FocusedTicket.Stage = len(stages) - 1 + if len(stages[ui.FocusedTicket.Stage].Tickets) > 0 { + break } } ui.FocusedTicket.ID = stages[ui.FocusedTicket.Stage].Tickets[ui.FocusedTicket.Index-1].ID