diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 09ac33cff4..cfd256855e 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -412,7 +412,6 @@ func Forks(ctx *context.Context) { } pager := context.NewPagination(int(total), pageSize, page, 5) - ctx.Data["ShowRepoOwnerAvatar"] = true ctx.Data["ShowRepoOwnerOnList"] = true ctx.Data["Page"] = pager ctx.Data["Repos"] = forks diff --git a/templates/org/team/repositories.tmpl b/templates/org/team/repositories.tmpl index 2f38071e89..721dd0b644 100644 --- a/templates/org/team/repositories.tmpl +++ b/templates/org/team/repositories.tmpl @@ -30,7 +30,7 @@ {{range $.TeamRepos}}
- {{template "repo/icon" .}} + {{template "repo/icon" (dict "Repo" . "Size" 24)}}
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index b61076ff46..0fe24564d3 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -4,7 +4,7 @@
- {{template "repo/icon" .}} + {{template "repo/icon" (dict "Repo" . "EnableRepoAvatar" "true" "Size" 24)}}
diff --git a/templates/repo/icon.tmpl b/templates/repo/icon.tmpl index 5ee7c08ade..0411bc84e4 100644 --- a/templates/repo/icon.tmpl +++ b/templates/repo/icon.tmpl @@ -1,12 +1,22 @@ -{{$avatarLink := (.RelAvatarLink ctx)}} -{{if $avatarLink}} - -{{else if $.IsMirror}} - {{svg "octicon-mirror" 24}} -{{else if $.IsFork}} - {{svg "octicon-repo-forked" 24}} -{{else if $.IsPrivate}} - {{svg "octicon-repo-locked" 24}} +{{/* Template Attributes: +* Repo: The repo +* EnableRepoAvatar: Enable repo avatars when non-nil +* Size: Icon size in pixels, default is 16 +* +* Note: Keep the icon logic in sync with web_src/js/utils/mappings.ts +*/}} +{{$size := or .Size 16}} +{{$avatarLink := (.Repo.RelAvatarLink ctx)}} +{{if and $avatarLink .EnableRepoAvatar}} + +{{else if .Repo.IsMirror}} + {{svg "octicon-mirror" $size}} +{{else if .Repo.IsPrivate}} + {{svg "octicon-repo-locked" $size}} +{{else if .Repo.IsTemplate}} + {{svg "octicon-repo-template" $size}} +{{else if .Repo.IsFork}} + {{svg "octicon-repo-forked" $size}} {{else}} - {{svg "octicon-repo" 24}} + {{svg "octicon-repo" $size}} {{end}} diff --git a/templates/shared/repo/list.tmpl b/templates/shared/repo/list.tmpl index ef7d7a540d..6bcd0a4d8d 100644 --- a/templates/shared/repo/list.tmpl +++ b/templates/shared/repo/list.tmpl @@ -2,11 +2,7 @@ {{range .Repos}}
- {{if $.ShowRepoOwnerAvatar}} - {{ctx.AvatarUtils.Avatar .Owner 24}} - {{else}} - {{template "repo/icon" .}} - {{end}} + {{template "repo/icon" (dict "Repo" . "Size" 24 "EnableRepoAvatar" "true")}}
diff --git a/templates/user/settings/repos.tmpl b/templates/user/settings/repos.tmpl index cd1c9d8e25..d119f79bd3 100644 --- a/templates/user/settings/repos.tmpl +++ b/templates/user/settings/repos.tmpl @@ -12,17 +12,7 @@
{{/* if not repo, then there are "adapt" buttons, so the padding shouldn't be that default large*/}}
{{if $repo}} - {{if $repo.IsPrivate}} - {{svg "octicon-repo-locked"}} - {{else if $repo.IsFork}} - {{svg "octicon-repo-forked"}} - {{else if $repo.IsMirror}} - {{svg "octicon-mirror"}} - {{else if $repo.IsTemplate}} - {{svg "octicon-repo-template"}} - {{else}} - {{svg "octicon-repo"}} - {{end}} + {{template "repo/icon" (dict "Repo" $repo "Size" 16)}} {{$repo.OwnerName}}/{{$repo.Name}} {{FileSize $repo.Size}} {{if $repo.IsFork}} @@ -85,17 +75,7 @@ {{range .Repos}}
- {{if .IsPrivate}} - {{svg "octicon-lock"}} - {{else if .IsFork}} - {{svg "octicon-repo-forked"}} - {{else if .IsMirror}} - {{svg "octicon-mirror"}} - {{else if .IsTemplate}} - {{svg "octicon-repo-template"}} - {{else}} - {{svg "octicon-repo"}} - {{end}} + {{template "repo/icon" (dict "Repo" . "Size" 16)}} {{.OwnerName}}/{{.Name}} {{FileSize .Size}} {{if .IsFork}} diff --git a/web_src/js/components/DashboardRepoList.vue b/web_src/js/components/DashboardRepoList.vue index 5d0d66e4b3..e4aa11dea9 100644 --- a/web_src/js/components/DashboardRepoList.vue +++ b/web_src/js/components/DashboardRepoList.vue @@ -3,6 +3,7 @@ import {nextTick, defineComponent} from 'vue'; import {SvgIcon} from '../svg.ts'; import {GET} from '../modules/fetch.ts'; import {fomanticQuery} from '../modules/fomantic/base.ts'; +import {getRepoIcon} from '../utils/mappings.ts'; const {appSubUrl, assetUrlPrefix, pageData} = window.config; @@ -283,19 +284,8 @@ export default defineComponent({ } }, - repoIcon(repo: any) { - if (repo.fork) { - return 'octicon-repo-forked'; - } else if (repo.mirror) { - return 'octicon-mirror'; - } else if (repo.template) { - return `octicon-repo-template`; - } else if (repo.private) { - return 'octicon-repo-locked'; - } else if (repo.internal) { - return 'octicon-repo'; - } - return 'octicon-repo'; + repoIcon(repo: Record) { + return getRepoIcon(repo); }, statusIcon(status: CommitStatus) { diff --git a/web_src/js/utils/mappings.ts b/web_src/js/utils/mappings.ts new file mode 100644 index 0000000000..d99fe9aa29 --- /dev/null +++ b/web_src/js/utils/mappings.ts @@ -0,0 +1,12 @@ +export function getRepoIcon(repo: Record) { + if (repo.mirror) { + return 'octicon-mirror'; + } else if (repo.fork) { + return 'octicon-repo-forked'; + } else if (repo.private) { + return 'octicon-repo-locked'; + } else if (repo.template) { + return `octicon-repo-template`; + } + return 'octicon-repo'; +}