commit 5fe8726117c0d605d46f9520138c66cc773923b0 parent 601b0cee6481f3c9e40889df12540206f96645b6 Author: Jack Mordaunt <jackmordaunt@gmail.com> Date: Sun, 8 Nov 2020 15:36:40 +0800 fix: skip empty stages Diffstat:
| M | cmd/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