From 0e7cb2388df5c169c14b27ea47ae3dca59743cfc Mon Sep 17 00:00:00 2001 From: Dan Anglin Date: Tue, 25 Apr 2023 04:57:24 +0100 Subject: [PATCH] refactor: add cards to card column inside newColumn() --- internal/ui/column.go | 66 +++++++++++++++++++++---------------------- internal/ui/ui.go | 2 ++ 2 files changed, 35 insertions(+), 33 deletions(-) diff --git a/internal/ui/column.go b/internal/ui/column.go index e9e6577..fd5d433 100644 --- a/internal/ui/column.go +++ b/internal/ui/column.go @@ -15,17 +15,17 @@ type column struct { cards *tview.List } -func (u *UI) newColumn(statusID int, statusName string) column { - cards := tview.NewList() +func (u *UI) newColumn(status board.Status) (column, error) { + cardList := tview.NewList() - cards.SetBorder(true) - cards.ShowSecondaryText(false) - cards.SetTitle(" " + statusName + " ") - cards.SetHighlightFullLine(true) - cards.SetSelectedFocusOnly(true) - cards.SetWrapAround(false) + cardList.SetBorder(true) + cardList.ShowSecondaryText(false) + cardList.SetTitle(" " + status.Name + " ") + cardList.SetHighlightFullLine(true) + cardList.SetSelectedFocusOnly(true) + cardList.SetWrapAround(false) - cards.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { + cardList.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { switch event.Rune() { case 'q': u.pages.ShowPage(quitPageName) @@ -38,29 +38,42 @@ func (u *UI) newColumn(statusID int, statusName string) column { case 'l': u.shiftColumnFocus(shiftRight) case 'j': - cur := cards.GetCurrentItem() - if cur == cards.GetItemCount()-1 { + cur := cardList.GetCurrentItem() + if cur == cardList.GetItemCount()-1 { cur = 0 } else { cur++ } - cards.SetCurrentItem(cur) + cardList.SetCurrentItem(cur) case 'k': - cur := cards.GetCurrentItem() + cur := cardList.GetCurrentItem() cur-- - cards.SetCurrentItem(cur) + cardList.SetCurrentItem(cur) } return event }) - c := column{ - statusID: statusID, - statusName: statusName, - cards: cards, + if len(status.CardIds) > 0 { + cards, err := u.board.CardList(status.CardIds) + if err != nil { + return column{}, fmt.Errorf("unable to get the card list. %w", err) + } + + for _, c := range cards { + cardList.AddItem(fmt.Sprintf("[%d] %s", c.Id(), c.Title), "", 0, nil) + } } - return c + u.flex.AddItem(cardList, 0, 1, false) + + c := column{ + statusID: status.ID, + statusName: status.Name, + cards: cardList, + } + + return c, nil } func (u *UI) setColumnFocus() { @@ -92,20 +105,7 @@ func (u *UI) updateColumns(statusList []board.Status) error { columns := make([]column, len(statusList)) for i := range statusList { - columns[i] = u.newColumn(statusList[i].ID, statusList[i].Name) - - if len(statusList[i].CardIds) > 0 { - cards, err := u.board.CardList(statusList[i].CardIds) - if err != nil { - return fmt.Errorf("unable to get the card list. %w", err) - } - - for _, c := range cards { - columns[i].cards.AddItem(fmt.Sprintf("[%d] %s", c.Id(), c.Title), "", 0, nil) - } - } - - u.flex.AddItem(columns[i].cards, 0, 1, false) + columns[i], _ = u.newColumn(statusList[i]) } u.columns = columns diff --git a/internal/ui/ui.go b/internal/ui/ui.go index d30f015..229f197 100644 --- a/internal/ui/ui.go +++ b/internal/ui/ui.go @@ -149,6 +149,8 @@ func (u *UI) refresh() error { u.setColumnFocus() + // TODO: update move status page here + return nil }