From a03d7673e7adf9a575c7272b2b528a74b230535e Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Thu, 13 Aug 2026 08:38:29 +0000 Subject: Fix blank task-detail modal for Google Tasks loadTaskDetailData/HandleUpdateTask only had cases for "trello" and "doot" sources, so opening a gtask from the Tasks or Timeline tab rendered an empty title/description. Reuses the existing findGoogleTask cache lookup for both. Renamed the API client's UpdateTaskNotes to UpdateTask(title, notes) so the web modal can save an edited title too, not just description; the widget's description-only edit popup now just round-trips the task's existing title unchanged. --- internal/api/google_tasks.go | 11 ++++++++--- internal/api/interfaces.go | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'internal/api') diff --git a/internal/api/google_tasks.go b/internal/api/google_tasks.go index 1f9aefb..644f124 100644 --- a/internal/api/google_tasks.go +++ b/internal/api/google_tasks.go @@ -174,14 +174,19 @@ func (c *GoogleTasksClient) CompleteTask(ctx context.Context, listID, taskID str return nil } -// UpdateTaskNotes updates a task's notes (description) -func (c *GoogleTasksClient) UpdateTaskNotes(ctx context.Context, listID, taskID, notes string) error { +// UpdateTask updates a task's title and notes (description). An empty +// title is omitted from the PATCH body by the underlying client library +// (omitempty), not sent as a blank -- so callers that don't support editing +// title (e.g. the widget's description-only edit popup) can pass the +// task's existing title back unchanged, or "" to leave it untouched. +func (c *GoogleTasksClient) UpdateTask(ctx context.Context, listID, taskID, title, notes string) error { task := &tasks.Task{ + Title: title, Notes: notes, } _, err := c.srv.Tasks.Patch(listID, taskID, task).Context(ctx).Do() if err != nil { - return fmt.Errorf("failed to update task notes: %v", err) + return fmt.Errorf("failed to update task: %v", err) } return nil } diff --git a/internal/api/interfaces.go b/internal/api/interfaces.go index 183f3f0..e764130 100644 --- a/internal/api/interfaces.go +++ b/internal/api/interfaces.go @@ -38,7 +38,7 @@ type GoogleTasksAPI interface { GetTasksByDateRange(ctx context.Context, start, end time.Time) ([]models.GoogleTask, error) CompleteTask(ctx context.Context, listID, taskID string) error UncompleteTask(ctx context.Context, listID, taskID string) error - UpdateTaskNotes(ctx context.Context, listID, taskID, notes string) error + UpdateTask(ctx context.Context, listID, taskID, title, notes string) error GetTaskLists(ctx context.Context) ([]models.TaskListInfo, error) SetTaskListID(id string) } -- cgit v1.2.3