From 3cbe7e629fb74d881087ffb0ac411e2d86f5a5b0 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 9 Feb 2022 16:27:23 -0700 Subject: [PATCH] search a go --- spike/review/reinvent/ezmded/server/server.go | 3 +- spike/review/reinvent/ezmded/ui/index.html | 68 +++++++++++++------ 2 files changed, 50 insertions(+), 21 deletions(-) diff --git a/spike/review/reinvent/ezmded/server/server.go b/spike/review/reinvent/ezmded/server/server.go index 9a79a8e..33e13ad 100644 --- a/spike/review/reinvent/ezmded/server/server.go +++ b/spike/review/reinvent/ezmded/server/server.go @@ -325,7 +325,6 @@ func (server *Server) apiV0FilesIDPutHandler(w http.ResponseWriter, r *http.Requ } func (server *Server) apiV0SearchHandler(w http.ResponseWriter, r *http.Request) error { - // TODO case insensitive query := r.URL.Query().Get("q") queries := strings.Split(query, " ") if len(queries) == 0 { @@ -337,7 +336,7 @@ func (server *Server) apiV0SearchHandler(w http.ResponseWriter, r *http.Request) for _, query := range queries { if len(query) > 0 { query = unsafepattern.ReplaceAllString(query, ".") - patterns = append(patterns, regexp.MustCompile(query)) + patterns = append(patterns, regexp.MustCompile("(?i)"+query)) } } if len(patterns) == 0 { diff --git a/spike/review/reinvent/ezmded/ui/index.html b/spike/review/reinvent/ezmded/ui/index.html index cdb0e76..fbcc563 100644 --- a/spike/review/reinvent/ezmded/ui/index.html +++ b/spike/review/reinvent/ezmded/ui/index.html @@ -37,9 +37,12 @@ drawTree() setInterval(drawTree, 100000) var queryF = getParameterByName("f") - console.log("init query f:", queryF) + var queryQ = getParameterByName("q") + console.log("init query f:", queryF, "q:", queryQ) if (queryF && queryF.length > 0) { drawFile(queryF) + } else if (queryQ && queryQ.length > 0) { + searchFilesFor(queryQ) } } function getParameterByName(name, url = window.location.href) { @@ -70,6 +73,27 @@ } }) } + + function searchFiles() { + const q = document.getElementById("searchbox").value + searchFilesFor(q) + } + + function searchFilesFor(q) { + http("GET", "/api/v0/search?q=" + q, (body, status) => { + var results = JSON.parse(body) + results.sort() + var innerHTML = "" + if (!results || results.length == 0) + innerHTML = "no results" + disableMDE() + window.location.hash = "#?q="+q + document.getElementById("searchResults").innerHTML = innerHTML + }) + } var saveFeedbackInterval = null function pushFile() { const title = document.getElementById("title").innerHTML ? document.getElementById("title").innerHTML : "" @@ -108,10 +132,12 @@ setMDE(pid + "/" + crypto.randomUUID().substr(0, 5), "", "") } function enableMDE() { + document.getElementById("searchResults").style.display = "none"; document.getElementById("article").style.display = ""; } function disableMDE() { document.getElementById("article").style.display = "none"; + document.getElementById("searchResults").style.display = ""; } function setMDE(id, title, body) { if (id[0] == "/") @@ -190,26 +216,30 @@
-
- - -
+
+ + +
- +
+ + +