adding blocked status to tui

This commit is contained in:
viljarb
2026-03-12 13:18:15 +01:00
parent 5b0c69e671
commit 1f98308d9b
9 changed files with 80 additions and 18 deletions

View File

@@ -22,6 +22,7 @@ type Model struct {
header Header
todoList IssueList
inProgList IssueList
blockedList IssueList
doneList IssueList
issueDetail IssueDetail
helpBar components.HelpBar
@@ -30,7 +31,7 @@ type Model struct {
width int
height int
focusedColumn int // 0 = To Do, 1 = In Progress, 2 = Done
focusedColumn int // 0 = To Do, 1 = In Progress, 2 = Blocked, 3 = Done
focusOnDetail bool // true when detail pane is focused
editingTitle bool // true while we are editing a title
@@ -80,10 +81,12 @@ func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, qui
allIssues, _ := app.Issues.SearchIssues(context.Background(), "", models.IssueFilter{})
todoIssues := components.StatusOnly(allIssues, models.StatusOpen)
inProgIssues := components.StatusOnly(allIssues, models.StatusInProgress)
blockedIssues := components.StatusOnly(allIssues, models.StatusBlocked)
doneIssues := components.StatusOnly(allIssues, models.StatusClosed)
m.todoList = components.NewIssueListFromIssues(app, todoIssues, 0, 0)
m.inProgList = components.NewIssueListFromIssues(app, inProgIssues, 0, 0)
m.blockedList = components.NewIssueListFromIssues(app, blockedIssues, 0, 0)
m.doneList = components.NewIssueListFromIssues(app, doneIssues, 0, 0)
m.issueDetail = components.NewIssueDetail()
m.helpBar = components.NewHelpBar(components.ViewKanban)
@@ -98,6 +101,8 @@ func NewDashboard(app *app.App, feedbackChan chan models.ValidationFeedback, qui
m.issueDetail.SetIssue(selected.Issue)
} else if selected := m.inProgList.SelectedItem(); selected.ID != "" {
m.issueDetail.SetIssue(selected.Issue)
} else if selected := m.blockedList.SelectedItem(); selected.ID != "" {
m.issueDetail.SetIssue(selected.Issue)
} else if selected := m.doneList.SelectedItem(); selected.ID != "" {
m.issueDetail.SetIssue(selected.Issue)
}
@@ -196,6 +201,8 @@ func (m *Model) FocusedIssueList() *IssueList {
case 1:
return &m.inProgList
case 2:
return &m.blockedList
case 3:
return &m.doneList
default:
return &m.todoList
@@ -219,6 +226,8 @@ func statusForColumn(col int) models.Status {
case 1:
return models.StatusInProgress
case 2:
return models.StatusBlocked
case 3:
return models.StatusClosed
default:
return models.StatusOpen
@@ -235,7 +244,7 @@ func (m *Model) moveIssue(delta int) tea.Cmd {
}
newCol := m.focusedColumn + delta
if newCol < 0 || newCol > 2 {
if newCol < 0 || newCol > 3 {
return nil
}