forked from mirror/gitea
f0ba87fda8
Why this refactor The goal is to move most files from `models` package to `models.xxx` package. Many models depend on avatar model, so just move this first. And the existing logic is not clear, there are too many function like `AvatarLink`, `RelAvatarLink`, `SizedRelAvatarLink`, `SizedAvatarLink`, `MakeFinalAvatarURL`, `HashedAvatarLink`, etc. This refactor make everything clear: * user.AvatarLink() * user.AvatarLinkWithSize(size) * avatars.GenerateEmailAvatarFastLink(email, size) * avatars.GenerateEmailAvatarFinalLink(email, size) And many duplicated code are deleted in route handler, the handler and the model share the same avatar logic now.
142 lines
5.7 KiB
Go HTML Template
142 lines
5.7 KiB
Go HTML Template
<!DOCTYPE html>
|
|
<html lang="{{.Lang}}" class="theme-{{.SignedUser.Theme}}">
|
|
<head data-suburl="{{AppSubUrl}}">
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>{{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}} </title>
|
|
<link rel="manifest" href="data:{{.ManifestData}}"/>
|
|
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
|
|
<meta name="default-theme" content="{{DefaultTheme}}" />
|
|
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}{{MetaAuthor}}{{end}}" />
|
|
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}{{MetaDescription}}{{end}}" />
|
|
<meta name="keywords" content="{{MetaKeywords}}">
|
|
<meta name="referrer" content="no-referrer" />
|
|
<meta name="_csrf" content="{{.CsrfToken}}" />
|
|
{{if .IsSigned}}
|
|
<meta name="_uid" content="{{.SignedUser.ID}}" />
|
|
{{end}}
|
|
{{if .ContextUser}}
|
|
<meta name="_context_uid" content="{{.ContextUser.ID}}" />
|
|
{{end}}
|
|
{{if .SearchLimit}}
|
|
<meta name="_search_limit" content="{{.SearchLimit}}" />
|
|
{{end}}
|
|
{{if .GoGetImport}}
|
|
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
|
|
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
|
|
{{end}}
|
|
<script>
|
|
window.config = {
|
|
AppVer: '{{AppVer}}',
|
|
AppSubUrl: '{{AppSubUrl}}',
|
|
AssetUrlPrefix: '{{AssetUrlPrefix}}',
|
|
CustomEmojis: {{CustomEmojis}},
|
|
UseServiceWorker: {{UseServiceWorker}},
|
|
csrf: '{{.CsrfToken}}',
|
|
HighlightJS: {{if .RequireHighlightJS}}true{{else}}false{{end}},
|
|
SimpleMDE: {{if .RequireSimpleMDE}}true{{else}}false{{end}},
|
|
Tribute: {{if .RequireTribute}}true{{else}}false{{end}},
|
|
NotificationSettings: {
|
|
MinTimeout: {{NotificationSettings.MinTimeout}},
|
|
TimeoutStep: {{NotificationSettings.TimeoutStep}},
|
|
MaxTimeout: {{NotificationSettings.MaxTimeout}},
|
|
EventSourceUpdateTime: {{NotificationSettings.EventSourceUpdateTime}},
|
|
},
|
|
EnableTimetracking: {{if EnableTimetracking}}true{{else}}false{{end}},
|
|
PageIsProjects: {{if .PageIsProjects }}true{{else}}false{{end}},
|
|
{{if .RequireTribute}}
|
|
tributeValues: Array.from(new Map([
|
|
{{ range .Participants }}
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
|
|
{{ end }}
|
|
{{ range .Assignees }}
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
|
|
{{ end }}
|
|
{{ range .MentionableTeams }}
|
|
['{{$.MentionableTeamsOrg}}/{{.Name}}', {key: '{{$.MentionableTeamsOrg}}/{{.Name}}', value: '{{$.MentionableTeamsOrg}}/{{.Name}}',
|
|
name: '{{$.MentionableTeamsOrg}}/{{.Name}}', avatar: '{{$.MentionableTeamsOrgAvatar}}'}],
|
|
{{ end }}
|
|
]).values()),
|
|
{{end}}
|
|
MermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
|
|
};
|
|
</script>
|
|
<link rel="icon" href="{{AssetUrlPrefix}}/img/logo.svg" type="image/svg+xml">
|
|
<link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
|
|
{{if .RequireSimpleMDE}}
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/easymde.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/index.css?v={{MD5 AppVer}}">
|
|
<noscript>
|
|
<style>
|
|
.dropdown:hover > .menu { display: block; }
|
|
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
|
</style>
|
|
</noscript>
|
|
<style class="list-search-style"></style>
|
|
{{if .PageIsUserProfile}}
|
|
<meta property="og:title" content="{{.Owner.Name}}" />
|
|
<meta property="og:type" content="profile" />
|
|
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
|
|
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
|
|
{{if .Owner.Description}}
|
|
<meta property="og:description" content="{{.Owner.Description}}">
|
|
{{end}}
|
|
{{else if .Repository}}
|
|
{{if .Issue}}
|
|
<meta property="og:title" content="{{.Issue.Title}}" />
|
|
<meta property="og:url" content="{{.Issue.HTMLURL}}" />
|
|
{{if .Issue.Content}}
|
|
<meta property="og:description" content="{{.Issue.Content}}" />
|
|
{{end}}
|
|
{{else}}
|
|
<meta property="og:title" content="{{.Repository.Name}}" />
|
|
<meta property="og:url" content="{{.Repository.HTMLURL}}" />
|
|
{{if .Repository.Description}}
|
|
<meta property="og:description" content="{{.Repository.Description}}" />
|
|
{{end}}
|
|
{{end}}
|
|
<meta property="og:type" content="object" />
|
|
{{if .Repository.AvatarLink}}
|
|
<meta property="og:image" content="{{.Repository.AvatarLink}}" />
|
|
{{else}}
|
|
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
|
|
{{end}}
|
|
{{else}}
|
|
<meta property="og:title" content="{{AppName}}">
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:image" content="{{AssetUrlPrefix}}/img/logo.png" />
|
|
<meta property="og:url" content="{{AppUrl}}" />
|
|
<meta property="og:description" content="{{MetaDescription}}">
|
|
{{end}}
|
|
<meta property="og:site_name" content="{{AppName}}" />
|
|
{{if .IsSigned }}
|
|
{{ if ne .SignedUser.Theme "gitea" }}
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{.SignedUser.Theme}}.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
{{else if ne DefaultTheme "gitea"}}
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{DefaultTheme}}.css?v={{MD5 AppVer}}">
|
|
{{end}}
|
|
{{template "custom/header" .}}
|
|
</head>
|
|
<body>
|
|
{{template "custom/body_outer_pre" .}}
|
|
|
|
<div class="full height">
|
|
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
|
|
|
|
{{template "custom/body_inner_pre" .}}
|
|
|
|
{{if not .PageIsInstall}}
|
|
<div class="ui top secondary stackable main menu following bar light">
|
|
{{template "base/head_navbar" .}}
|
|
</div><!-- end bar -->
|
|
{{end}}
|
|
{{/*
|
|
</div>
|
|
</body>
|
|
</html>
|
|
*/}}
|