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
|
@ -383,6 +383,8 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
|||
viewType string
|
||||
sortType = ctx.FormString("sort")
|
||||
filterMode int
|
||||
defaultFilterMode int
|
||||
defaultViewType string
|
||||
)
|
||||
|
||||
// Default to recently updated, unlike repository issues list
|
||||
|
@ -403,6 +405,18 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
|||
|
||||
// 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")
|
||||
switch viewType {
|
||||
case "assigned":
|
||||
|
@ -418,8 +432,8 @@ func buildIssueOverview(ctx *context.Context, unitType unit.Type) {
|
|||
case "created_by":
|
||||
fallthrough
|
||||
default:
|
||||
filterMode = issues_model.FilterModeCreate
|
||||
viewType = "created_by"
|
||||
filterMode = defaultFilterMode
|
||||
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) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
|
|
Loading…
Reference in a new issue