summaryrefslogtreecommitdiff
path: root/internal/ui
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-06-28 14:31:52 +0300
committerPaul Buetow <paul@buetow.org>2025-06-28 14:31:52 +0300
commitf40a13dce33f8ab5bb47f320accb5649c4debc81 (patch)
tree02fcd548af8ae6f00da1c33ae1bd5e1f587252b8 /internal/ui
parent91b4dd563092c4dc08cdc2d2f1714912cd3eaf14 (diff)
refactor: rearrange table columns to place Project between Recur and Tags
Move the Project column from its position after Age to between Recur and Tags columns for better logical grouping. This places project information alongside other task metadata fields. Updated all related code including: - Column definitions in newTable and applyColumns - Row data ordering in taskToRow and taskToRowSearch - Column indices in expandedCellView and handleEnterOrEdit - Search matching indices for correct column highlighting 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'internal/ui')
-rw-r--r--internal/ui/keyhandlers.go28
-rw-r--r--internal/ui/table.go20
2 files changed, 24 insertions, 24 deletions
diff --git a/internal/ui/keyhandlers.go b/internal/ui/keyhandlers.go
index 71a0ddc..e806dbf 100644
--- a/internal/ui/keyhandlers.go
+++ b/internal/ui/keyhandlers.go
@@ -597,19 +597,7 @@ func (m *Model) handleEnterOrEdit() (tea.Model, tea.Cmd) {
m.updateTableHeight()
return m, nil
- case 3: // Project
- m.clearEditingModes()
- m.projID = id
- m.projEditing = true
- task := m.getTaskAtCursor()
- if task != nil {
- m.projInput.SetValue(task.Project)
- }
- m.projInput.Focus()
- m.updateTableHeight()
- return m, nil
-
- case 4: // Due date
+ case 3: // Due date
m.dueID = id
task := m.getTaskAtCursor()
if task != nil && task.Due != "" {
@@ -626,7 +614,7 @@ func (m *Model) handleEnterOrEdit() (tea.Model, tea.Cmd) {
m.updateTableHeight()
return m, nil
- case 5: // Recurrence
+ case 4: // Recurrence
m.clearEditingModes()
m.recurID = id
m.recurEditing = true
@@ -638,6 +626,18 @@ func (m *Model) handleEnterOrEdit() (tea.Model, tea.Cmd) {
m.updateTableHeight()
return m, nil
+ case 5: // Project
+ m.clearEditingModes()
+ m.projID = id
+ m.projEditing = true
+ task := m.getTaskAtCursor()
+ if task != nil {
+ m.projInput.SetValue(task.Project)
+ }
+ m.projInput.Focus()
+ m.updateTableHeight()
+ return m, nil
+
case 6: // Tags
m.clearEditingModes()
m.tagsID = id
diff --git a/internal/ui/table.go b/internal/ui/table.go
index 8366b57..a3157af 100644
--- a/internal/ui/table.go
+++ b/internal/ui/table.go
@@ -304,9 +304,9 @@ func (m *Model) newTable(rows []atable.Row) (atable.Model, atable.Styles) {
{Title: "Pri", Width: m.priWidth},
{Title: "ID", Width: m.idWidth},
{Title: "Age", Width: m.ageWidth},
- {Title: "Project", Width: m.projWidth},
{Title: "Due", Width: m.dueWidth},
{Title: "Recur", Width: m.recurWidth},
+ {Title: "Project", Width: m.projWidth},
{Title: "Tags", Width: m.tagsWidth},
{Title: "Annotations", Width: m.annWidth},
{Title: "Description", Width: m.descWidth},
@@ -356,7 +356,7 @@ func (m *Model) reload() error {
rows = append(rows, m.taskToRowSearch(tsk, m.searchRegex, m.tblStyles, -1))
if m.searchRegex != nil {
if m.searchRegex.MatchString(tsk.Project) {
- m.searchMatches = append(m.searchMatches, cellMatch{row: i, col: 3})
+ m.searchMatches = append(m.searchMatches, cellMatch{row: i, col: 5})
}
tags := strings.Join(tsk.Tags, " ")
if m.searchRegex.MatchString(tags) {
@@ -900,9 +900,9 @@ func (m Model) taskToRow(t task.Task) atable.Row {
m.formatPriority(t.Priority, m.priWidth),
style.Render(strconv.Itoa(t.ID)),
style.Render(age),
- style.Render(t.Project),
m.formatDue(t.Due, m.dueWidth),
style.Render(recur),
+ style.Render(t.Project),
style.Render(tags),
style.Render(annStr),
style.Render(t.Description),
@@ -1055,9 +1055,9 @@ func (m Model) taskToRowSearch(t task.Task, re *regexp.Regexp, styles atable.Sty
priStr := m.formatPriority(t.Priority, m.priWidth)
idStr := getStyle(1).Render(strconv.Itoa(t.ID))
ageStr := getStyle(2).Render(age)
- projStr := m.highlightCell(getStyle(3), re, t.Project)
dueStr := m.formatDue(t.Due, m.dueWidth)
- recurStr := m.highlightCell(getStyle(5), re, recur)
+ recurStr := m.highlightCell(getStyle(4), re, recur)
+ projStr := m.highlightCell(getStyle(5), re, t.Project)
tagStr := m.highlightCell(getStyle(6), re, tags)
annRaw := strings.Join(anns, "; ")
annCount := ""
@@ -1072,9 +1072,9 @@ func (m Model) taskToRowSearch(t task.Task, re *regexp.Regexp, styles atable.Sty
priStr,
idStr,
ageStr,
- projStr,
dueStr,
recurStr,
+ projStr,
tagStr,
annStr,
descStr,
@@ -1101,11 +1101,11 @@ func (m Model) expandedCellView() string {
val = fmt.Sprintf("%dd", days)
}
case 3:
- val = t.Project
- case 4:
val = ansi.Strip(m.formatDue(t.Due, m.dueWidth))
- case 5:
+ case 4:
val = t.Recur
+ case 5:
+ val = t.Project
case 6:
val = strings.Join(t.Tags, " ")
case 7:
@@ -1269,9 +1269,9 @@ func (m *Model) applyColumns() {
{Title: "Pri", Width: m.priWidth},
{Title: "ID", Width: m.idWidth},
{Title: "Age", Width: m.ageWidth},
- {Title: "Project", Width: m.projWidth},
{Title: "Due", Width: m.dueWidth},
{Title: "Recur", Width: m.recurWidth},
+ {Title: "Project", Width: m.projWidth},
{Title: "Tags", Width: m.tagsWidth},
{Title: "Annotations", Width: m.annWidth},
{Title: "Description", Width: m.descWidth},