feat: set fuzzy as default for issue search (#5270)

Closes #5225

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5270
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: 0ko <0ko@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:
Shiny Nematoda 2024-09-10 15:57:58 +00:00 committed by 0ko
parent 630595a7f3
commit 6178a46fe2
3 changed files with 15 additions and 13 deletions

View file

@ -203,7 +203,7 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
keyword = "" keyword = ""
} }
isFuzzy := ctx.FormBool("fuzzy") isFuzzy := ctx.FormOptionalBool("fuzzy").ValueOrDefault(true)
var mileIDs []int64 var mileIDs []int64
if milestoneID > 0 || milestoneID == db.NoConditionID { // -1 to get those issues which have no any milestone assigned if milestoneID > 0 || milestoneID == db.NoConditionID { // -1 to get those issues which have no any milestone assigned

View file

@ -448,7 +448,7 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
User: ctx.Doer, User: ctx.Doer,
} }
isFuzzy := ctx.FormBool("fuzzy") isFuzzy := ctx.FormOptionalBool("fuzzy").ValueOrDefault(true)
// Search all repositories which // Search all repositories which
// //

View file

@ -146,17 +146,19 @@ func TestViewIssuesKeyword(t *testing.T) {
assert.EqualValues(t, 0, issuesSelection.Length()) assert.EqualValues(t, 0, issuesSelection.Length())
// should match as 'first' when fuzzy seaeching is enabled // should match as 'first' when fuzzy seaeching is enabled
req = NewRequestf(t, "GET", "%s/issues?q=%st&fuzzy=true", repo.Link(), keyword) for _, fmt := range []string{"%s/issues?q=%st&fuzzy=true", "%s/issues?q=%st"} {
resp = MakeRequest(t, req, http.StatusOK) req = NewRequestf(t, "GET", fmt, repo.Link(), keyword)
htmlDoc = NewHTMLParser(t, resp.Body) resp = MakeRequest(t, req, http.StatusOK)
issuesSelection = getIssuesSelection(t, htmlDoc) htmlDoc = NewHTMLParser(t, resp.Body)
assert.EqualValues(t, 1, issuesSelection.Length()) issuesSelection = getIssuesSelection(t, htmlDoc)
issuesSelection.Each(func(_ int, selection *goquery.Selection) { assert.EqualValues(t, 1, issuesSelection.Length())
issue := getIssue(t, repo.ID, selection) issuesSelection.Each(func(_ int, selection *goquery.Selection) {
assert.False(t, issue.IsClosed) issue := getIssue(t, repo.ID, selection)
assert.False(t, issue.IsPull) assert.False(t, issue.IsClosed)
assertMatch(t, issue, keyword) assert.False(t, issue.IsPull)
}) assertMatch(t, issue, keyword)
})
}
} }
func TestViewIssuesSearchOptions(t *testing.T) { func TestViewIssuesSearchOptions(t *testing.T) {