feat: delete cards #6

Closed
dananglin wants to merge 35 commits from delete-cards into main
2 changed files with 35 additions and 33 deletions
Showing only changes of commit 0e7cb2388d - Show all commits

View file

@ -15,17 +15,17 @@ type column struct {
cards *tview.List cards *tview.List
} }
func (u *UI) newColumn(statusID int, statusName string) column { func (u *UI) newColumn(status board.Status) (column, error) {
cards := tview.NewList() cardList := tview.NewList()
cards.SetBorder(true) cardList.SetBorder(true)
cards.ShowSecondaryText(false) cardList.ShowSecondaryText(false)
cards.SetTitle(" " + statusName + " ") cardList.SetTitle(" " + status.Name + " ")
cards.SetHighlightFullLine(true) cardList.SetHighlightFullLine(true)
cards.SetSelectedFocusOnly(true) cardList.SetSelectedFocusOnly(true)
cards.SetWrapAround(false) cardList.SetWrapAround(false)
cards.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { cardList.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
switch event.Rune() { switch event.Rune() {
case 'q': case 'q':
u.pages.ShowPage(quitPageName) u.pages.ShowPage(quitPageName)
@ -38,29 +38,42 @@ func (u *UI) newColumn(statusID int, statusName string) column {
case 'l': case 'l':
u.shiftColumnFocus(shiftRight) u.shiftColumnFocus(shiftRight)
case 'j': case 'j':
cur := cards.GetCurrentItem() cur := cardList.GetCurrentItem()
if cur == cards.GetItemCount()-1 { if cur == cardList.GetItemCount()-1 {
cur = 0 cur = 0
} else { } else {
cur++ cur++
} }
cards.SetCurrentItem(cur) cardList.SetCurrentItem(cur)
case 'k': case 'k':
cur := cards.GetCurrentItem() cur := cardList.GetCurrentItem()
cur-- cur--
cards.SetCurrentItem(cur) cardList.SetCurrentItem(cur)
} }
return event return event
}) })
c := column{ if len(status.CardIds) > 0 {
statusID: statusID, cards, err := u.board.CardList(status.CardIds)
statusName: statusName, if err != nil {
cards: cards, 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() { func (u *UI) setColumnFocus() {
@ -92,20 +105,7 @@ func (u *UI) updateColumns(statusList []board.Status) error {
columns := make([]column, len(statusList)) columns := make([]column, len(statusList))
for i := range statusList { for i := range statusList {
columns[i] = u.newColumn(statusList[i].ID, statusList[i].Name) columns[i], _ = u.newColumn(statusList[i])
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)
} }
u.columns = columns u.columns = columns

View file

@ -149,6 +149,8 @@ func (u *UI) refresh() error {
u.setColumnFocus() u.setColumnFocus()
// TODO: update move status page here
return nil return nil
} }