summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJimmy Praet <jimmy.praet@telenet.be>2021-01-03 18:29:12 +0100
committerGitHub <noreply@github.com>2021-01-03 18:29:12 +0100
commit9cc5a89b8c8654e3e40686323572e69300807629 (patch)
treea946a850a693d5038a1f5d9ffd33e53f8e7877e0
parent44ff1d6a1e20694b678ba53b0f1e03e9c7c5b8a6 (diff)
downloadgitea-9cc5a89b8c8654e3e40686323572e69300807629.tar.gz
gitea-9cc5a89b8c8654e3e40686323572e69300807629.zip
Issue and pull request filters on organization dashboard #14052 (#14072)
-rw-r--r--routers/user/home.go53
-rw-r--r--templates/user/dashboard/issues.tmpl26
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>