[WIP] Add task editing
This commit is contained in:
@ -93,7 +93,8 @@ func (p ReportPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
case BackMsg:
|
||||
p.subpageActive = false
|
||||
case TaskMsg:
|
||||
p.populateTaskTable(msg)
|
||||
p.tasks = taskwarrior.Tasks(msg)
|
||||
p.populateTaskTable(p.tasks)
|
||||
case UpdateReportMsg:
|
||||
p.activeReport = msg
|
||||
cmds = append(cmds, p.getTasks())
|
||||
@ -106,6 +107,8 @@ func (p ReportPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
cmds = append(cmds, p.getTasks())
|
||||
case AddedTaskMsg:
|
||||
cmds = append(cmds, p.getTasks())
|
||||
case EditedTaskMsg:
|
||||
cmds = append(cmds, p.getTasks())
|
||||
case tea.KeyMsg:
|
||||
switch {
|
||||
case key.Matches(msg, p.common.Keymap.Quit):
|
||||
@ -128,6 +131,12 @@ func (p ReportPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
|
||||
p.subpageActive = true
|
||||
p.common.PageStack.Push(p)
|
||||
return p.subpage, nil
|
||||
case key.Matches(msg, p.common.Keymap.Edit):
|
||||
p.subpage = NewTaskEditorPage(p.common, *p.selectedTask)
|
||||
p.subpage.Init()
|
||||
p.subpageActive = true
|
||||
p.common.PageStack.Push(p)
|
||||
return p.subpage, nil
|
||||
case key.Matches(msg, p.common.Keymap.SetProject):
|
||||
p.subpage = NewProjectPickerPage(p.common, p.activeProject)
|
||||
p.subpage.Init()
|
||||
@ -152,7 +161,7 @@ func (p ReportPage) View() string {
|
||||
return p.common.Styles.Main.Render(p.taskTable.View()) + "\n"
|
||||
}
|
||||
|
||||
func (p *ReportPage) populateTaskTable(tasks []*taskwarrior.Task) {
|
||||
func (p *ReportPage) populateTaskTable(tasks taskwarrior.Tasks) {
|
||||
nCols := len(p.activeReport.Columns)
|
||||
columns := make([]table.Column, 0)
|
||||
columnSizes := make([]int, nCols)
|
||||
@ -162,7 +171,7 @@ func (p *ReportPage) populateTaskTable(tasks []*taskwarrior.Task) {
|
||||
for i, task := range tasks {
|
||||
row := table.Row{}
|
||||
for i, col := range p.activeReport.Columns {
|
||||
field := task.Get(col)
|
||||
field := task.GetString(col)
|
||||
columnSizes[i] = max(columnSizes[i], len(field))
|
||||
row = append(row, field)
|
||||
}
|
||||
@ -204,8 +213,8 @@ func (p *ReportPage) getTasks() tea.Cmd {
|
||||
if p.activeProject != "" {
|
||||
filters = append(filters, "project:"+p.activeProject)
|
||||
}
|
||||
p.tasks = p.common.TW.GetTasks(p.activeReport, filters...)
|
||||
return TaskMsg(p.tasks)
|
||||
tasks := p.common.TW.GetTasks(p.activeReport, filters...)
|
||||
return TaskMsg(tasks)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user