forked from forgejo/forgejo
Repo avatar fixes (#13891)
- Split up avatar rendering helpers for performance - Fix showing repo SVG icon when no avatar is set - Make repo SVG and avatar same size at 32px - Fix fork line by adding vertical flexbox on repo title Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
9b22ada0a7
commit
e7938c9c44
7 changed files with 112 additions and 104 deletions
|
@ -341,6 +341,7 @@ func NewFuncMap() []template.FuncMap {
|
|||
"svg": SVG,
|
||||
"avatar": Avatar,
|
||||
"avatarByEmail": AvatarByEmail,
|
||||
"repoAvatar": RepoAvatar,
|
||||
"SortArrow": func(normSort, revSort, urlSort string, isDefault bool) template.HTML {
|
||||
// if needed
|
||||
if len(normSort) == 0 || len(urlSort) == 0 {
|
||||
|
@ -545,23 +546,25 @@ func SVG(icon string, others ...interface{}) template.HTML {
|
|||
return template.HTML("")
|
||||
}
|
||||
|
||||
// Avatar renders user and repo avatars. args: user/repo, size (int), class (string)
|
||||
func Avatar(item interface{}, others ...interface{}) template.HTML {
|
||||
// Avatar renders user avatars. args: user, size (int), class (string)
|
||||
func Avatar(user *models.User, others ...interface{}) template.HTML {
|
||||
size, class := parseOthers(28, "ui avatar image", others...)
|
||||
if user, ok := item.(*models.User); ok {
|
||||
src := user.RealSizedAvatarLink(size * 2) // request double size for finer rendering
|
||||
if src != "" {
|
||||
return avatarHTML(src, size, class, user.DisplayName())
|
||||
}
|
||||
}
|
||||
|
||||
if repo, ok := item.(*models.Repository); ok {
|
||||
src := repo.RelAvatarLink()
|
||||
if src != "" {
|
||||
return avatarHTML(src, size, class, repo.FullName())
|
||||
}
|
||||
src := user.RealSizedAvatarLink(size * 2) // request double size for finer rendering
|
||||
if src != "" {
|
||||
return avatarHTML(src, size, class, user.DisplayName())
|
||||
}
|
||||
return template.HTML("")
|
||||
}
|
||||
|
||||
// RepoAvatar renders repo avatars. args: repo, size(int), class (string)
|
||||
func RepoAvatar(repo *models.Repository, others ...interface{}) template.HTML {
|
||||
size, class := parseOthers(28, "ui avatar image", others...)
|
||||
|
||||
src := repo.RelAvatarLink()
|
||||
if src != "" {
|
||||
return avatarHTML(src, size, class, repo.FullName())
|
||||
}
|
||||
return template.HTML("")
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue