[FEAT] expose fuzzy search for issues/repo (#4160)
Ports fuzzy search for `/issues` and `/pulls` from gitea. Adds fuzzy search for `/user/repo/issues` and `/user/repo/pulls`. --- ## Notes ### Port: [`gitea#be5be0ac81`](be5be0ac81
) - CONFLICT (content): Merge conflict in routers/web/user/home.go Conflict resolved by 1. keeping both `PageIsOrgIssues` and the newly introduced `IsFuzzy` 2. using `pager.AddParam(ctx, "fuzzy", "IsFuzzy")` rather than `pager.AddParamString("fuzzy", fmt.Sprintf("%v", isFuzzy))` - CONFLICT (content): Merge conflict in templates/user/dashboard/issues.tmpl Conflict resolved by keeping the changes from #4096, and picking the `&fuzzy=${{.IsFuzzy}}` inclusion to all urls and `{{if .PageIsPulls}}...` ### Port: [`gitea#fede3cbada`](fede3cbada
) - CONFLICT (content): Merge conflict in templates/user/dashboard/issues.tmpl Conflict resolved by keeping previous changes and picking the replacement of `{{if .PageIsPulls}}...` with `{{template "shared/search/combo_fuzzy"...` which contains the replacement of `explorer.go` to `explorer.go_to` ### Fixup commit replaces `Iif` with `if` which was introduced in gitea#fede3cbada ### Feature commit adds in support for /user/repo/(issues|pulls) + test Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Kerwin Bryant <kerwin612@qq.com> Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4160 Reviewed-by: twenty-panda <twenty-panda@noreply.codeberg.org> Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org> Co-authored-by: Shiny Nematoda <snematoda.751k2@aleeas.com> Co-committed-by: Shiny Nematoda <snematoda.751k2@aleeas.com>
This commit is contained in:
parent
bd23b8c75f
commit
b5d96e7db7
9 changed files with 79 additions and 34 deletions
|
@ -107,6 +107,7 @@ func TestViewIssuesKeyword(t *testing.T) {
|
|||
})
|
||||
issues.UpdateIssueIndexer(context.Background(), issue.ID)
|
||||
time.Sleep(time.Second * 1)
|
||||
|
||||
const keyword = "first"
|
||||
req := NewRequestf(t, "GET", "%s/issues?q=%s", repo.Link(), keyword)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
|
@ -120,6 +121,27 @@ func TestViewIssuesKeyword(t *testing.T) {
|
|||
assert.False(t, issue.IsPull)
|
||||
assertMatch(t, issue, keyword)
|
||||
})
|
||||
|
||||
// keyword: 'firstt'
|
||||
// should not match when fuzzy searching is disabled
|
||||
req = NewRequestf(t, "GET", "%s/issues?q=%st&fuzzy=false", repo.Link(), keyword)
|
||||
resp = MakeRequest(t, req, http.StatusOK)
|
||||
htmlDoc = NewHTMLParser(t, resp.Body)
|
||||
issuesSelection = getIssuesSelection(t, htmlDoc)
|
||||
assert.EqualValues(t, 0, issuesSelection.Length())
|
||||
|
||||
// should match as 'first' when fuzzy seaeching is enabled
|
||||
req = NewRequestf(t, "GET", "%s/issues?q=%st&fuzzy=true", repo.Link(), keyword)
|
||||
resp = MakeRequest(t, req, http.StatusOK)
|
||||
htmlDoc = NewHTMLParser(t, resp.Body)
|
||||
issuesSelection = getIssuesSelection(t, htmlDoc)
|
||||
assert.EqualValues(t, 1, issuesSelection.Length())
|
||||
issuesSelection.Each(func(_ int, selection *goquery.Selection) {
|
||||
issue := getIssue(t, repo.ID, selection)
|
||||
assert.False(t, issue.IsClosed)
|
||||
assert.False(t, issue.IsPull)
|
||||
assertMatch(t, issue, keyword)
|
||||
})
|
||||
}
|
||||
|
||||
func TestNoLoginViewIssue(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue