mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-25 07:22:43 +01:00
This commit is contained in:
parent
44ff1d6a1e
commit
9cc5a89b8c
2 changed files with 43 additions and 36 deletions
|
@ -364,21 +364,17 @@ func Issues(ctx *context.Context) {
|
||||||
filterMode = models.FilterModeAll
|
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"
|
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")
|
page := ctx.QueryInt("page")
|
||||||
|
@ -453,11 +449,15 @@ func Issues(ctx *context.Context) {
|
||||||
case models.FilterModeAll:
|
case models.FilterModeAll:
|
||||||
opts.RepoIDs = userRepoIDs
|
opts.RepoIDs = userRepoIDs
|
||||||
case models.FilterModeAssign:
|
case models.FilterModeAssign:
|
||||||
opts.AssigneeID = ctxUser.ID
|
opts.AssigneeID = ctx.User.ID
|
||||||
case models.FilterModeCreate:
|
case models.FilterModeCreate:
|
||||||
opts.PosterID = ctxUser.ID
|
opts.PosterID = ctx.User.ID
|
||||||
case models.FilterModeMention:
|
case models.FilterModeMention:
|
||||||
opts.MentionedID = ctxUser.ID
|
opts.MentionedID = ctx.User.ID
|
||||||
|
}
|
||||||
|
|
||||||
|
if ctxUser.IsOrganization() {
|
||||||
|
opts.RepoIDs = userRepoIDs
|
||||||
}
|
}
|
||||||
|
|
||||||
var forceEmpty bool
|
var forceEmpty bool
|
||||||
|
@ -575,7 +575,7 @@ func Issues(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
userIssueStatsOpts := models.UserIssueStatsOptions{
|
userIssueStatsOpts := models.UserIssueStatsOptions{
|
||||||
UserID: ctxUser.ID,
|
UserID: ctx.User.ID,
|
||||||
UserRepoIDs: userRepoIDs,
|
UserRepoIDs: userRepoIDs,
|
||||||
FilterMode: filterMode,
|
FilterMode: filterMode,
|
||||||
IsPull: isPullList,
|
IsPull: isPullList,
|
||||||
|
@ -585,6 +585,9 @@ func Issues(ctx *context.Context) {
|
||||||
if len(repoIDs) > 0 {
|
if len(repoIDs) > 0 {
|
||||||
userIssueStatsOpts.UserRepoIDs = repoIDs
|
userIssueStatsOpts.UserRepoIDs = repoIDs
|
||||||
}
|
}
|
||||||
|
if ctxUser.IsOrganization() {
|
||||||
|
userIssueStatsOpts.RepoIDs = userRepoIDs
|
||||||
|
}
|
||||||
userIssueStats, err := models.GetUserIssueStats(userIssueStatsOpts)
|
userIssueStats, err := models.GetUserIssueStats(userIssueStatsOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetUserIssueStats User", err)
|
ctx.ServerError("GetUserIssueStats User", err)
|
||||||
|
@ -594,7 +597,7 @@ func Issues(ctx *context.Context) {
|
||||||
var shownIssueStats *models.IssueStats
|
var shownIssueStats *models.IssueStats
|
||||||
if !forceEmpty {
|
if !forceEmpty {
|
||||||
statsOpts := models.UserIssueStatsOptions{
|
statsOpts := models.UserIssueStatsOptions{
|
||||||
UserID: ctxUser.ID,
|
UserID: ctx.User.ID,
|
||||||
UserRepoIDs: userRepoIDs,
|
UserRepoIDs: userRepoIDs,
|
||||||
FilterMode: filterMode,
|
FilterMode: filterMode,
|
||||||
IsPull: isPullList,
|
IsPull: isPullList,
|
||||||
|
@ -604,6 +607,8 @@ func Issues(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
if len(repoIDs) > 0 {
|
if len(repoIDs) > 0 {
|
||||||
statsOpts.RepoIDs = repoIDs
|
statsOpts.RepoIDs = repoIDs
|
||||||
|
} else if ctxUser.IsOrganization() {
|
||||||
|
statsOpts.RepoIDs = userRepoIDs
|
||||||
}
|
}
|
||||||
shownIssueStats, err = models.GetUserIssueStats(statsOpts)
|
shownIssueStats, err = models.GetUserIssueStats(statsOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -616,15 +621,19 @@ func Issues(ctx *context.Context) {
|
||||||
|
|
||||||
var allIssueStats *models.IssueStats
|
var allIssueStats *models.IssueStats
|
||||||
if !forceEmpty {
|
if !forceEmpty {
|
||||||
allIssueStats, err = models.GetUserIssueStats(models.UserIssueStatsOptions{
|
allIssueStatsOpts := models.UserIssueStatsOptions{
|
||||||
UserID: ctxUser.ID,
|
UserID: ctx.User.ID,
|
||||||
UserRepoIDs: userRepoIDs,
|
UserRepoIDs: userRepoIDs,
|
||||||
FilterMode: filterMode,
|
FilterMode: filterMode,
|
||||||
IsPull: isPullList,
|
IsPull: isPullList,
|
||||||
IsClosed: isShowClosed,
|
IsClosed: isShowClosed,
|
||||||
IssueIDs: issueIDsFromSearch,
|
IssueIDs: issueIDsFromSearch,
|
||||||
LabelIDs: opts.LabelIDs,
|
LabelIDs: opts.LabelIDs,
|
||||||
})
|
}
|
||||||
|
if ctxUser.IsOrganization() {
|
||||||
|
allIssueStatsOpts.RepoIDs = userRepoIDs
|
||||||
|
}
|
||||||
|
allIssueStats, err = models.GetUserIssueStats(allIssueStatsOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("GetUserIssueStats All", err)
|
ctx.ServerError("GetUserIssueStats All", err)
|
||||||
return
|
return
|
||||||
|
|
|
@ -9,20 +9,18 @@
|
||||||
{{.i18n.Tr "home.issues.in_your_repos"}}
|
{{.i18n.Tr "home.issues.in_your_repos"}}
|
||||||
<strong class="ui right">{{CountFmt .IssueStats.YourRepositoriesCount}}</strong>
|
<strong class="ui right">{{CountFmt .IssueStats.YourRepositoriesCount}}</strong>
|
||||||
</a>
|
</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}}">
|
||||||
<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"}}
|
||||||
{{.i18n.Tr "repo.issues.filter_type.assigned_to_you"}}
|
<strong class="ui right">{{CountFmt .IssueStats.AssignCount}}</strong>
|
||||||
<strong class="ui right">{{CountFmt .IssueStats.AssignCount}}</strong>
|
</a>
|
||||||
</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}}">
|
||||||
<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"}}
|
||||||
{{.i18n.Tr "repo.issues.filter_type.created_by_you"}}
|
<strong class="ui right">{{CountFmt .IssueStats.CreateCount}}</strong>
|
||||||
<strong class="ui right">{{CountFmt .IssueStats.CreateCount}}</strong>
|
</a>
|
||||||
</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}}">
|
||||||
<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"}}
|
||||||
{{.i18n.Tr "repo.issues.filter_type.mentioning_you"}}
|
<strong class="ui right">{{CountFmt .IssueStats.MentionCount}}</strong>
|
||||||
<strong class="ui right">{{CountFmt .IssueStats.MentionCount}}</strong>
|
</a>
|
||||||
</a>
|
|
||||||
{{end}}
|
|
||||||
<div class="ui divider"></div>
|
<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}}">
|
<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>
|
<span class="text truncate">All</span>
|
||||||
|
|
Loading…
Reference in a new issue