Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Make the issue search results a real popover

bb541fdee195938c86d683fd4fde294b52081cd1 · Keenan Nemetz · 10d ago · parent 451332d1

Make the issue search results a real popover

The results sat on the page ground with no edge, so the list read as loose text under the search box. They now open as an overlaid panel with a raised background, border and shadow, and an empty field removes the panel instead of leaving a blank one.

server/issues_changes_test.go +7−1

@@ -363,7 +363,8 @@ func TestChangeLinksIssuesFromTheIssuesSection(t *testing.T) {
363 363 resp, results := f.htmxGet(t, "/r/"+f.repo+"/requests/"+id+"/issues/search?q="+url.QueryEscape(query), cookie)
364 364 if resp.StatusCode != http.StatusOK || !strings.Contains(results, "Second linked issue") ||
365 365 !strings.Contains(results, `value="`+second+`"`) || !strings.Contains(results, `value="add"`) ||
366 !strings.Contains(results, `hx-target="#request-issues"`) {
366 !strings.Contains(results, `hx-target="#request-issues"`) ||
367 !strings.Contains(results, `request-issue-popover`) {
367 368 t.Fatalf("search %q is not the expected result (%d):\n%s", query, resp.StatusCode, results)
368 369 }
369 370 }
@@ -374,6 +375,11 @@ func TestChangeLinksIssuesFromTheIssuesSection(t *testing.T) {
374 375 !strings.Contains(results, "No issues match") {
375 376 t.Fatalf("a linked issue is still in the search results (%d):\n%s", resp.StatusCode, results)
376 377 }
378 // Clearing the field removes the popover rather than leaving a blank panel.
379 resp, results = f.htmxGet(t, "/r/"+f.repo+"/requests/"+id+"/issues/search?q=", cookie)
380 if resp.StatusCode != http.StatusOK || strings.TrimSpace(results) != "" {
381 t.Fatalf("an empty search left a panel (%d):\n%s", resp.StatusCode, results)
382 }
377 383
378 384 // Clicking a result posts its id, and the section comes back with both links.
379 385 resp, body = f.htmxPost(t, "/r/"+f.repo+"/requests/"+id+"/issues", cookie, url.Values{