summaryrefslogtreecommitdiff
path: root/internal/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handlers')
-rw-r--r--internal/handlers/tabs.go25
1 files changed, 22 insertions, 3 deletions
diff --git a/internal/handlers/tabs.go b/internal/handlers/tabs.go
index fa60a10..448dfbe 100644
--- a/internal/handlers/tabs.go
+++ b/internal/handlers/tabs.go
@@ -132,8 +132,19 @@ func (h *TabsHandler) HandlePlanning(w http.ResponseWriter, r *http.Request) {
// HandleNotes renders the Notes tab (Obsidian notes)
func (h *TabsHandler) HandleNotes(w http.ResponseWriter, r *http.Request) {
- // Fetch Obsidian notes
- notes, err := h.store.GetNotes(20)
+ // Check for search query parameter
+ query := r.URL.Query().Get("q")
+
+ var notes []models.Note
+ var err error
+
+ // If search query is present, search notes; otherwise, get all notes
+ if query != "" {
+ notes, err = h.store.SearchNotes(query)
+ } else {
+ notes, err = h.store.GetNotes(20)
+ }
+
if err != nil {
http.Error(w, "Failed to fetch notes", http.StatusInternalServerError)
log.Printf("Error fetching notes: %v", err)
@@ -146,7 +157,15 @@ func (h *TabsHandler) HandleNotes(w http.ResponseWriter, r *http.Request) {
Notes: notes,
}
- if err := h.templates.ExecuteTemplate(w, "notes-tab", data); err != nil {
+ // Check HX-Target header for partial update
+ hxTarget := r.Header.Get("HX-Target")
+ templateName := "notes-tab"
+ if hxTarget == "notes-results" {
+ // Render only the notes list for HTMX partial update
+ templateName = "obsidian-notes"
+ }
+
+ if err := h.templates.ExecuteTemplate(w, templateName, data); err != nil {
http.Error(w, "Failed to render template", http.StatusInternalServerError)
log.Printf("Error rendering notes tab: %v", err)
}