[WIP] Task editing
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
// TODO: update table every second (to show correct relative time)
|
||||
package pages
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"tasksquire/common"
|
||||
"tasksquire/taskwarrior"
|
||||
|
||||
@ -161,7 +163,7 @@ func (p *ReportPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
cmds = append(cmds, cmd)
|
||||
|
||||
if p.tasks != nil && len(p.tasks) > 0 {
|
||||
p.selectedTask = (*taskwarrior.Task)(p.tasks[p.taskTable.Cursor()])
|
||||
p.selectedTask = p.tasks[p.taskTable.Cursor()]
|
||||
} else {
|
||||
p.selectedTask = nil
|
||||
}
|
||||
@ -185,6 +187,7 @@ func (p *ReportPage) populateTaskTable(tasks taskwarrior.Tasks) {
|
||||
columnSizes := make([]int, nCols)
|
||||
fullRows := make([]table.Row, len(tasks))
|
||||
rows := make([]table.Row, len(tasks))
|
||||
descIndex := -1
|
||||
|
||||
for i, task := range tasks {
|
||||
if p.selectedTask != nil && task.Uuid == p.selectedTask.Uuid {
|
||||
@ -193,6 +196,9 @@ func (p *ReportPage) populateTaskTable(tasks taskwarrior.Tasks) {
|
||||
|
||||
row := table.Row{}
|
||||
for i, col := range p.activeReport.Columns {
|
||||
if strings.Contains(col, "description") {
|
||||
descIndex = i
|
||||
}
|
||||
field := task.GetString(col)
|
||||
columnSizes[i] = max(columnSizes[i], len(field))
|
||||
row = append(row, field)
|
||||
@ -211,12 +217,24 @@ func (p *ReportPage) populateTaskTable(tasks taskwarrior.Tasks) {
|
||||
rows[i] = row
|
||||
}
|
||||
|
||||
combinedSize := 0
|
||||
for i, label := range p.activeReport.Labels {
|
||||
if columnSizes[i] == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
columns = append(columns, table.Column{Title: label, Width: max(columnSizes[i], len(label))})
|
||||
width := max(columnSizes[i], len(label))
|
||||
columns = append(columns, table.Column{Title: label, Width: width})
|
||||
|
||||
if i == descIndex {
|
||||
descIndex = len(columns) - 1
|
||||
continue
|
||||
}
|
||||
combinedSize += width
|
||||
}
|
||||
|
||||
if descIndex >= 0 {
|
||||
columns[descIndex].Width = p.taskTable.Width() - combinedSize - 14
|
||||
}
|
||||
|
||||
if selected == 0 {
|
||||
|
||||
Reference in New Issue
Block a user