summaryrefslogtreecommitdiff
path: root/internal/handlers/timeline_logic.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-01-31 21:23:56 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-01-31 21:23:56 -1000
commitf9127d5272042f4980ece8b39a47613f95eeaf8e (patch)
treee111cc6f85b0cd23dd7e705b0390d1154fbc13ee /internal/handlers/timeline_logic.go
parentcbb0b53de1d06918c142171fd084f14f03798bc1 (diff)
Fix timeline calendar view and shopping UI bugs (#56, #65-73)
- #56: Add overflow-hidden to card/panel classes to prevent content overflow - #65: Fix Google Tasks not showing by including tasks without due dates - #66: Add no-cache headers to prevent stale template responses - #67: Increase dropdown z-index to 100 for proper layering - #69: Implement calendar-style Today section with hourly grid (6am-10pm), duration-based event heights, and compact overdue/all-day section - #70: Only reset shopping-mode form on successful submission - #71: Remove checkboxes from shopping tab (only show in shopping mode) - #72: Add inline add-item input at end of each store section - #73: Add Grouped/Flat view toggle for shopping list Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'internal/handlers/timeline_logic.go')
-rw-r--r--internal/handlers/timeline_logic.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/internal/handlers/timeline_logic.go b/internal/handlers/timeline_logic.go
index 5ea44b5..7a85393 100644
--- a/internal/handlers/timeline_logic.go
+++ b/internal/handlers/timeline_logic.go
@@ -2,6 +2,7 @@ package handlers
import (
"context"
+ "log"
"sort"
"strings"
"time"
@@ -130,7 +131,9 @@ func BuildTimeline(ctx context.Context, s *store.Store, calendarClient api.Googl
// 4. Fetch Events
if calendarClient != nil {
events, err := calendarClient.GetEventsByDateRange(ctx, start, end)
- if err == nil {
+ if err != nil {
+ log.Printf("Warning: failed to fetch calendar events: %v", err)
+ } else {
for _, event := range events {
endTime := event.End
item := models.TimelineItem{
@@ -142,7 +145,7 @@ func BuildTimeline(ctx context.Context, s *store.Store, calendarClient api.Googl
Description: event.Description,
URL: event.HTMLLink,
OriginalItem: event,
- IsCompleted: false, // Events don't have completion status
+ IsCompleted: false,
Source: "calendar",
}
item.ComputeDaySection(now)
@@ -154,9 +157,13 @@ func BuildTimeline(ctx context.Context, s *store.Store, calendarClient api.Googl
// 5. Fetch Google Tasks
if tasksClient != nil {
gTasks, err := tasksClient.GetTasksByDateRange(ctx, start, end)
- if err == nil {
+ if err != nil {
+ log.Printf("Warning: failed to fetch Google Tasks: %v", err)
+ } else {
+ log.Printf("Google Tasks: fetched %d tasks in date range", len(gTasks))
for _, gTask := range gTasks {
- taskTime := start // Default to start of range if no due date
+ // Tasks without due date are placed in today section
+ taskTime := now
if gTask.DueDate != nil {
taskTime = *gTask.DueDate
}
@@ -176,6 +183,8 @@ func BuildTimeline(ctx context.Context, s *store.Store, calendarClient api.Googl
items = append(items, item)
}
}
+ } else {
+ log.Printf("Google Tasks client not configured")
}
// Sort items by Time