feat(ui): set your_repositories as the default filter for org dashboards (#5593)
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/5593 Reviewed-by: Michael Kriese <michael.kriese@gmx.de> Reviewed-by: Otto <otto@codeberg.org> Reviewed-by: Shiny Nematoda <snematoda@noreply.codeberg.org>
This commit is contained in:
parent
67ca1bebc4
commit
19ca039486
2 changed files with 36 additions and 5 deletions
|
@ -380,9 +380,11 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
viewType string
|
viewType string
|
||||||
sortType = ctx.FormString("sort")
|
sortType = ctx.FormString("sort")
|
||||||
filterMode int
|
filterMode int
|
||||||
|
defaultFilterMode int
|
||||||
|
defaultViewType string
|
||||||
)
|
)
|
||||||
|
|
||||||
// Default to recently updated, unlike repository issues list
|
// Default to recently updated, unlike repository issues list
|
||||||
|
@ -403,6 +405,18 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
||||||
|
|
||||||
// TODO: distinguish during routing
|
// TODO: distinguish during routing
|
||||||
|
|
||||||
|
// Default to created_by on /pulls and /issues
|
||||||
|
// because it is most relevant to the user in the global context
|
||||||
|
if ctx.Org == nil || ctx.Org.Organization == nil {
|
||||||
|
defaultFilterMode = issues_model.FilterModeCreate
|
||||||
|
defaultViewType = "created_by"
|
||||||
|
} else {
|
||||||
|
// Default to your_repositories on /org/*/pulls and /org/*/issues
|
||||||
|
// because it is the most relevant to the user in the context of an org
|
||||||
|
defaultFilterMode = issues_model.FilterModeYourRepositories
|
||||||
|
defaultViewType = "your_repositories"
|
||||||
|
}
|
||||||
|
|
||||||
viewType = ctx.FormString("type")
|
viewType = ctx.FormString("type")
|
||||||
switch viewType {
|
switch viewType {
|
||||||
case "assigned":
|
case "assigned":
|
||||||
|
@ -418,8 +432,8 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
||||||
case "created_by":
|
case "created_by":
|
||||||
fallthrough
|
fallthrough
|
||||||
default:
|
default:
|
||||||
filterMode = issues_model.FilterModeCreate
|
filterMode = defaultFilterMode
|
||||||
viewType = "created_by"
|
viewType = defaultViewType
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
|
@ -1302,6 +1302,23 @@ func TestIssueUserDashboard(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestIssueOrgDashboard(t *testing.T) {
|
||||||
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
|
||||||
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
||||||
|
session := loginUser(t, user.Name)
|
||||||
|
|
||||||
|
// assert 'your_repositories' is the default filter for org dashboards
|
||||||
|
const sel = ".dashboard .ui.list-header.dropdown .ui.menu a.active.item[href^='?type=your_repositories']"
|
||||||
|
|
||||||
|
for _, path := range []string{"/org/org3/issues", "/org/org3/pulls"} {
|
||||||
|
req := NewRequest(t, "GET", path)
|
||||||
|
resp := session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
htmlDoc := NewHTMLParser(t, resp.Body)
|
||||||
|
htmlDoc.AssertElement(t, sel, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestIssueCount(t *testing.T) {
|
func TestIssueCount(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue