mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-16 16:08:04 +00:00
Fix followers and following tabs in profile (#10202)
This commit is contained in:
parent
e273817154
commit
fe00886bef
6 changed files with 41 additions and 87 deletions
|
@ -490,12 +490,7 @@ func RegisterRoutes(m *macaron.Macaron) {
|
|||
// ***** END: Admin *****
|
||||
|
||||
m.Group("", func() {
|
||||
m.Group("/:username", func() {
|
||||
m.Get("", user.Profile)
|
||||
m.Get("/followers", user.Followers)
|
||||
m.Get("/following", user.Following)
|
||||
})
|
||||
|
||||
m.Get("/:username", user.Profile)
|
||||
m.Get("/attachments/:uuid", repo.GetAttachment)
|
||||
}, ignSignIn)
|
||||
|
||||
|
|
|
@ -11,16 +11,10 @@ import (
|
|||
"strings"
|
||||
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/base"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/util"
|
||||
"code.gitea.io/gitea/routers/org"
|
||||
"code.gitea.io/gitea/routers/repo"
|
||||
)
|
||||
|
||||
const (
|
||||
tplFollowers base.TplName = "user/meta/followers"
|
||||
)
|
||||
|
||||
// GetUserByName get user by name
|
||||
|
@ -159,6 +153,30 @@ func Profile(ctx *context.Context) {
|
|||
keyword := strings.Trim(ctx.Query("q"), " ")
|
||||
ctx.Data["Keyword"] = keyword
|
||||
switch tab {
|
||||
case "followers":
|
||||
items, err := ctxUser.GetFollowers(models.ListOptions{
|
||||
PageSize: setting.UI.User.RepoPagingNum,
|
||||
Page: page,
|
||||
})
|
||||
if err != nil {
|
||||
ctx.ServerError("GetFollowers", err)
|
||||
return
|
||||
}
|
||||
ctx.Data["Cards"] = items
|
||||
|
||||
total = ctxUser.NumFollowers
|
||||
case "following":
|
||||
items, err := ctxUser.GetFollowing(models.ListOptions{
|
||||
PageSize: setting.UI.User.RepoPagingNum,
|
||||
Page: page,
|
||||
})
|
||||
if err != nil {
|
||||
ctx.ServerError("GetFollowing", err)
|
||||
return
|
||||
}
|
||||
ctx.Data["Cards"] = items
|
||||
|
||||
total = ctxUser.NumFollowing
|
||||
case "activity":
|
||||
retrieveFeeds(ctx, models.GetFeedsOptions{RequestedUser: ctxUser,
|
||||
Actor: ctx.User,
|
||||
|
@ -226,32 +244,6 @@ func Profile(ctx *context.Context) {
|
|||
ctx.HTML(200, tplProfile)
|
||||
}
|
||||
|
||||
// Followers render user's followers page
|
||||
func Followers(ctx *context.Context) {
|
||||
u := GetUserByParams(ctx)
|
||||
if ctx.Written() {
|
||||
return
|
||||
}
|
||||
ctx.Data["Title"] = u.DisplayName()
|
||||
ctx.Data["CardsTitle"] = ctx.Tr("user.followers")
|
||||
ctx.Data["PageIsFollowers"] = true
|
||||
ctx.Data["Owner"] = u
|
||||
repo.RenderUserCards(ctx, u.NumFollowers, u.GetFollowers, tplFollowers)
|
||||
}
|
||||
|
||||
// Following render user's followering page
|
||||
func Following(ctx *context.Context) {
|
||||
u := GetUserByParams(ctx)
|
||||
if ctx.Written() {
|
||||
return
|
||||
}
|
||||
ctx.Data["Title"] = u.DisplayName()
|
||||
ctx.Data["CardsTitle"] = ctx.Tr("user.following")
|
||||
ctx.Data["PageIsFollowing"] = true
|
||||
ctx.Data["Owner"] = u
|
||||
repo.RenderUserCards(ctx, u.NumFollowing, u.GetFollowing, tplFollowers)
|
||||
}
|
||||
|
||||
// Action response for follow/unfollow user request
|
||||
func Action(ctx *context.Context) {
|
||||
u := GetUserByParams(ctx)
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<div class="ui container user-cards">
|
||||
{{if .CardsTitle}}
|
||||
<h2 class="ui dividing header">
|
||||
{{.CardsTitle}}
|
||||
</h2>
|
||||
{{end}}
|
||||
<ul class="list">
|
||||
{{range .Cards}}
|
||||
<li class="item ui segment">
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
{{template "base/head" .}}
|
||||
<div class="user followers">
|
||||
{{template "user/meta/header" .}}
|
||||
{{template "repo/user_cards" .}}
|
||||
</div>
|
||||
{{template "base/footer" .}}
|
|
@ -1,24 +0,0 @@
|
|||
{{with .Owner}}
|
||||
<div class="ui container">
|
||||
<img class="ui avatar image" src="{{.RelAvatarLink}}">
|
||||
<span class="header name">
|
||||
<a href="{{.HomeLink}}">{{.Name}}</a>
|
||||
{{with .FullName}}({{.}}){{end}}
|
||||
</span>
|
||||
|
||||
<div class="ui right">
|
||||
{{if or $.PageIsFollowers $.PageIsFollowing}}
|
||||
{{if and $.IsSigned (ne $.SignedUserName .Name)}}
|
||||
<div class="follow">
|
||||
{{if $.SignedUser.IsFollowing .ID}}
|
||||
<a class="ui small basic red button" href="{{.HomeLink}}/action/unfollow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{$.i18n.Tr "user.unfollow"}}</a>
|
||||
{{else}}
|
||||
<a class="ui small basic green button" href="{{.HomeLink}}/action/follow?redirect_to={{$.Link}}"><i class="octicon octicon-person"></i> {{$.i18n.Tr "user.follow"}}</a>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="ui divider"></div>
|
|
@ -49,24 +49,6 @@
|
|||
{{end}}
|
||||
{{end}}
|
||||
<li><i class="octicon octicon-clock"></i> {{.i18n.Tr "user.join_on"}} {{.Owner.CreatedUnix.FormatShort}}</li>
|
||||
<li>
|
||||
<i class="octicon octicon-person"></i>
|
||||
<a href="{{.Owner.HomeLink}}/followers">
|
||||
{{.Owner.NumFollowers}} {{.i18n.Tr "user.followers"}}
|
||||
</a>
|
||||
-
|
||||
<a href="{{.Owner.HomeLink}}/following">
|
||||
{{.Owner.NumFollowing}} {{.i18n.Tr "user.following"}}
|
||||
</a>
|
||||
</li>
|
||||
{{/*
|
||||
<li>
|
||||
<i class="octicon octicon-star"></i>
|
||||
<a href="{{.Owner.HomeLink}}/stars">
|
||||
{{.Owner.NumStars}} {{.i18n.Tr "user.starred"}}
|
||||
</a>
|
||||
</li>
|
||||
*/}}
|
||||
{{if and .Orgs .HasOrgsVisible}}
|
||||
<li>
|
||||
<ul class="user-orgs">
|
||||
|
@ -95,7 +77,7 @@
|
|||
</div>
|
||||
<div class="ui eleven wide column">
|
||||
<div class="ui secondary stackable pointing menu">
|
||||
<a class='{{if and (ne .TabName "activity") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}">
|
||||
<a class='{{if and (ne .TabName "activity") (ne .TabName "following") (ne .TabName "followers") (ne .TabName "stars")}}active{{end}} item' href="{{.Owner.HomeLink}}">
|
||||
<i class="octicon octicon-repo"></i> {{.i18n.Tr "user.repositories"}}
|
||||
</a>
|
||||
<a class='{{if eq .TabName "activity"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=activity">
|
||||
|
@ -103,6 +85,15 @@
|
|||
</a>
|
||||
<a class='{{if eq .TabName "stars"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=stars">
|
||||
<i class="octicon octicon-star"></i> {{.i18n.Tr "user.starred"}}
|
||||
<div class="ui label">{{.Owner.NumStars}}</div>
|
||||
</a>
|
||||
<a class='{{if eq .TabName "following"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=following">
|
||||
<i class="octicon octicon-person"></i> {{.i18n.Tr "user.following"}}
|
||||
<div class="ui label">{{.Owner.NumFollowing}}</div>
|
||||
</a>
|
||||
<a class='{{if eq .TabName "followers"}}active{{end}} item' href="{{.Owner.HomeLink}}?tab=followers">
|
||||
<i class="octicon octicon-person"></i> {{.i18n.Tr "user.followers"}}
|
||||
<div class="ui label">{{.Owner.NumFollowers}}</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
@ -126,6 +117,10 @@
|
|||
{{template "explore/repo_list" .}}
|
||||
{{template "base/paginate" .}}
|
||||
</div>
|
||||
{{else if eq .TabName "following"}}
|
||||
{{template "repo/user_cards" .}}
|
||||
{{else if eq .TabName "followers"}}
|
||||
{{template "repo/user_cards" .}}
|
||||
{{else}}
|
||||
{{template "explore/repo_search" .}}
|
||||
{{template "explore/repo_list" .}}
|
||||
|
|
Loading…
Reference in a new issue