diff options
author | Jimmy Praet <jimmy.praet@telenet.be> | 2021-01-03 18:29:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-03 18:29:12 +0100 |
commit | 9cc5a89b8c8654e3e40686323572e69300807629 (patch) | |
tree | a946a850a693d5038a1f5d9ffd33e53f8e7877e0 | |
parent | 44ff1d6a1e20694b678ba53b0f1e03e9c7c5b8a6 (diff) | |
download | gitea-9cc5a89b8c8654e3e40686323572e69300807629.tar.gz gitea-9cc5a89b8c8654e3e40686323572e69300807629.zip |
Issue and pull request filters on organization dashboard #14052 (#14072)
-rw-r--r-- | routers/user/home.go | 53 | ||||
-rw-r--r-- | templates/user/dashboard/issues.tmpl | 26 |
2 files changed, 43 insertions, 36 deletions
diff --git a/routers/user/home.go b/routers/user/home.go index 351af1c0d9..952f5cdb3a 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -364,21 +364,17 @@ func Issues(ctx *context.Context) { filterMode = models.FilterModeAll ) - if ctxUser.IsOrganization() { + viewType = ctx.Query("type") + switch viewType { + case "assigned": + filterMode = models.FilterModeAssign + case "created_by": + filterMode = models.FilterModeCreate + case "mentioned": + filterMode = models.FilterModeMention + case "your_repositories": // filterMode already set to All + default: viewType = "your_repositories" - } else { - viewType = ctx.Query("type") - switch viewType { - case "assigned": - filterMode = models.FilterModeAssign - case "created_by": - filterMode = models.FilterModeCreate - case "mentioned": - filterMode = models.FilterModeMention - case "your_repositories": // filterMode already set to All - default: - viewType = "your_repositories" - } } page := ctx.QueryInt("page") @@ -453,11 +449,15 @@ func Issues(ctx *context.Context) { case models.FilterModeAll: opts.RepoIDs = userRepoIDs case models.FilterModeAssign: - opts.AssigneeID = ctxUser.ID + opts.AssigneeID = ctx.User.ID case models.FilterModeCreate: - opts.PosterID = ctxUser.ID + opts.PosterID = ctx.User.ID case models.FilterModeMention: - opts.MentionedID = ctxUser.ID + opts.MentionedID = ctx.User.ID + } + + if ctxUser.IsOrganization() { + opts.RepoIDs = userRepoIDs } var forceEmpty bool @@ -575,7 +575,7 @@ func Issues(ctx *context.Context) { } userIssueStatsOpts := models.UserIssueStatsOptions{ - UserID: ctxUser.ID, + UserID: ctx.User.ID, UserRepoIDs: userRepoIDs, FilterMode: filterMode, IsPull: isPullList, @@ -585,6 +585,9 @@ func Issues(ctx *context.Context) { if len(repoIDs) > 0 { userIssueStatsOpts.UserRepoIDs = repoIDs } + if ctxUser.IsOrganization() { + userIssueStatsOpts.RepoIDs = userRepoIDs + } userIssueStats, err := models.GetUserIssueStats(userIssueStatsOpts) if err != nil { ctx.ServerError("GetUserIssueStats User", err) @@ -594,7 +597,7 @@ func Issues(ctx *context.Context) { var shownIssueStats *models.IssueStats if !forceEmpty { statsOpts := models.UserIssueStatsOptions{ - UserID: ctxUser.ID, + UserID: ctx.User.ID, UserRepoIDs: userRepoIDs, FilterMode: filterMode, IsPull: isPullList, @@ -604,6 +607,8 @@ func Issues(ctx *context.Context) { } if len(repoIDs) > 0 { statsOpts.RepoIDs = repoIDs + } else if ctxUser.IsOrganization() { + statsOpts.RepoIDs = userRepoIDs } shownIssueStats, err = models.GetUserIssueStats(statsOpts) if err != nil { @@ -616,15 +621,19 @@ func Issues(ctx *context.Context) { var allIssueStats *models.IssueStats if !forceEmpty { - allIssueStats, err = models.GetUserIssueStats(models.UserIssueStatsOptions{ - UserID: ctxUser.ID, + allIssueStatsOpts := models.UserIssueStatsOptions{ + UserID: ctx.User.ID, UserRepoIDs: userRepoIDs, FilterMode: filterMode, IsPull: isPullList, IsClosed: isShowClosed, IssueIDs: issueIDsFromSearch, LabelIDs: opts.LabelIDs, - }) + } + if ctxUser.IsOrganization() { + allIssueStatsOpts.RepoIDs = userRepoIDs + } + allIssueStats, err = models.GetUserIssueStats(allIssueStatsOpts) if err != nil { ctx.ServerError("GetUserIssueStats All", err) return diff --git a/templates/user/dashboard/issues.tmpl b/templates/user/dashboard/issues.tmpl index b8625ec2c1..62428dce42 100644 --- a/templates/user/dashboard/issues.tmpl +++ b/templates/user/dashboard/issues.tmpl @@ -9,20 +9,18 @@ {{.i18n.Tr "home.issues.in_your_repos"}} <strong class="ui right">{{CountFmt .IssueStats.YourRepositoriesCount}}</strong> </a> - {{if not .ContextUser.IsOrganization}} - <a class="{{if eq .ViewType "assigned"}}ui basic blue button{{end}} item" href="{{.Link}}?type=assigned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> - {{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}} - <strong class="ui right">{{CountFmt .IssueStats.AssignCount}}</strong> - </a> - <a class="{{if eq .ViewType "created_by"}}ui basic blue button{{end}} item" href="{{.Link}}?type=created_by&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> - {{.i18n.Tr "repo.issues.filter_type.created_by_you"}} - <strong class="ui right">{{CountFmt .IssueStats.CreateCount}}</strong> - </a> - <a class="{{if eq .ViewType "mentioned"}}ui basic blue button{{end}} item" href="{{.Link}}?type=mentioned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> - {{.i18n.Tr "repo.issues.filter_type.mentioning_you"}} - <strong class="ui right">{{CountFmt .IssueStats.MentionCount}}</strong> - </a> - {{end}} + <a class="{{if eq .ViewType "assigned"}}ui basic blue button{{end}} item" href="{{.Link}}?type=assigned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> + {{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}} + <strong class="ui right">{{CountFmt .IssueStats.AssignCount}}</strong> + </a> + <a class="{{if eq .ViewType "created_by"}}ui basic blue button{{end}} item" href="{{.Link}}?type=created_by&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> + {{.i18n.Tr "repo.issues.filter_type.created_by_you"}} + <strong class="ui right">{{CountFmt .IssueStats.CreateCount}}</strong> + </a> + <a class="{{if eq .ViewType "mentioned"}}ui basic blue button{{end}} item" href="{{.Link}}?type=mentioned&repos=[{{range $.RepoIDs}}{{.}}%2C{{end}}]&sort={{$.SortType}}&state={{.State}}"> + {{.i18n.Tr "repo.issues.filter_type.mentioning_you"}} + <strong class="ui right">{{CountFmt .IssueStats.MentionCount}}</strong> + </a> <div class="ui divider"></div> <a class="{{if not $.RepoIDs}}ui basic blue button{{end}} repo name item" href="{{$.Link}}?type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&q={{$.Keyword}}"> <span class="text truncate">All</span> |