From 1c6552117038cb7c01e016dbf1ac062e1d9f9c73 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Sun, 1 Feb 2026 10:52:28 -1000 Subject: Improve timeline view with dynamic bounds, now line, and overlap handling - Add dynamic calendar clipping: show 1 hour before/after events instead of hardcoded 6am-10pm - Add "NOW" line indicator showing current time position - Improve time label readability with larger font and better contrast - Add overlap detection with column-based indentation for concurrent events - Apply calendar view to Tomorrow section (matching Today's layout) - Fix auto-refresh switching to tasks tab (default was 'tasks' instead of 'timeline') Co-Authored-By: Claude Opus 4.5 --- internal/handlers/handlers_test.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'internal/handlers/handlers_test.go') diff --git a/internal/handlers/handlers_test.go b/internal/handlers/handlers_test.go index 3367ef6..96cb911 100644 --- a/internal/handlers/handlers_test.go +++ b/internal/handlers/handlers_test.go @@ -64,11 +64,16 @@ func setupTestDB(t *testing.T) (*store.Store, func()) { func loadTestTemplates(t *testing.T) *template.Template { t.Helper() + // Template functions (must match handlers.go) + funcMap := template.FuncMap{ + "subtract": func(a, b int) int { return a - b }, + } + // Get path relative to project root - tmpl, err := template.ParseGlob(filepath.Join("web", "templates", "*.html")) + tmpl, err := template.New("").Funcs(funcMap).ParseGlob(filepath.Join("web", "templates", "*.html")) if err != nil { // Try from internal/handlers (2 levels up) - tmpl, err = template.ParseGlob(filepath.Join("..", "..", "web", "templates", "*.html")) + tmpl, err = template.New("").Funcs(funcMap).ParseGlob(filepath.Join("..", "..", "web", "templates", "*.html")) if err != nil { t.Logf("Warning: failed to parse templates: %v", err) return nil -- cgit v1.2.3