2014-04-11 04:20:58 +10:00
|
|
|
<!DOCTYPE html>
|
2022-02-08 14:02:30 +11:00
|
|
|
<html lang="{{.i18n.Lang}}" class="theme-{{.SignedUser.Theme}}">
|
2021-10-15 13:35:26 +11:00
|
|
|
<head>
|
2017-01-26 02:15:25 +11:00
|
|
|
<meta charset="utf-8">
|
2017-12-31 11:47:52 +11:00
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
2021-10-21 18:37:43 +11:00
|
|
|
<title>{{if .Title}}{{.Title | RenderEmojiPlain}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}}</title>
|
2020-12-24 06:09:54 +11:00
|
|
|
<link rel="manifest" href="data:{{.ManifestData}}"/>
|
2017-01-26 02:15:25 +11:00
|
|
|
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
|
2020-12-03 23:53:21 +11:00
|
|
|
<meta name="default-theme" content="{{DefaultTheme}}" />
|
2017-04-01 12:03:01 +11:00
|
|
|
<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}}">
|
2015-07-21 13:19:56 +10:00
|
|
|
<meta name="referrer" content="no-referrer" />
|
2017-01-26 02:15:25 +11:00
|
|
|
{{if .GoGetImport}}
|
|
|
|
<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">
|
|
|
|
<meta name="go-source" content="{{.GoGetImport}} _ {{.GoDocDirectory}} {{.GoDocFile}}">
|
2022-03-14 03:40:47 +11:00
|
|
|
{{end}}
|
|
|
|
{{if .FeedURL}}
|
|
|
|
<link rel="alternate" type="application/atom+xml" title="" href="{{.FeedURL}}.atom">
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="" href="{{.FeedURL}}.rss">
|
2017-01-26 02:15:25 +11:00
|
|
|
{{end}}
|
2017-08-24 00:58:05 +10:00
|
|
|
<script>
|
2021-10-13 05:11:35 +11:00
|
|
|
<!-- /* eslint-disable */ -->
|
2020-01-29 08:57:20 +11:00
|
|
|
window.config = {
|
2021-10-21 18:37:43 +11:00
|
|
|
appVer: '{{AppVer}}',
|
|
|
|
appSubUrl: '{{AppSubUrl}}',
|
|
|
|
assetUrlPrefix: '{{AssetUrlPrefix}}',
|
|
|
|
runModeIsProd: {{.RunModeIsProd}},
|
|
|
|
customEmojis: {{CustomEmojis}},
|
|
|
|
useServiceWorker: {{UseServiceWorker}},
|
|
|
|
csrfToken: '{{.CsrfToken}}',
|
|
|
|
pageData: {{.PageData}},
|
|
|
|
requireTribute: {{.RequireTribute}},
|
|
|
|
notificationSettings: {{NotificationSettings}}, {{/*a map provided by NewFuncMap in helper.go*/}}
|
|
|
|
enableTimeTracking: {{EnableTimetracking}},
|
2020-12-22 02:39:28 +11:00
|
|
|
{{if .RequireTribute}}
|
2020-08-06 09:18:21 +10:00
|
|
|
tributeValues: Array.from(new Map([
|
|
|
|
{{ range .Participants }}
|
|
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
Avatar refactor, move avatar code from `models` to `models.avatars`, remove duplicated code (#17123)
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.
2021-10-06 10:25:46 +11:00
|
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
|
2020-08-06 09:18:21 +10:00
|
|
|
{{ end }}
|
2020-04-29 04:05:39 +10:00
|
|
|
{{ range .Assignees }}
|
2020-08-06 09:18:21 +10:00
|
|
|
['{{.Name}}', {key: '{{.Name}} {{.FullName}}', value: '{{.Name}}',
|
Avatar refactor, move avatar code from `models` to `models.avatars`, remove duplicated code (#17123)
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.
2021-10-06 10:25:46 +11:00
|
|
|
name: '{{.Name}}', fullname: '{{.FullName}}', avatar: '{{.AvatarLink}}'}],
|
2020-04-29 04:05:39 +10:00
|
|
|
{{ end }}
|
2020-12-22 02:39:28 +11:00
|
|
|
{{ range .MentionableTeams }}
|
2021-04-11 13:46:37 +10:00
|
|
|
['{{$.MentionableTeamsOrg}}/{{.Name}}', {key: '{{$.MentionableTeamsOrg}}/{{.Name}}', value: '{{$.MentionableTeamsOrg}}/{{.Name}}',
|
2020-12-23 08:28:03 +11:00
|
|
|
name: '{{$.MentionableTeamsOrg}}/{{.Name}}', avatar: '{{$.MentionableTeamsOrgAvatar}}'}],
|
2020-12-22 02:39:28 +11:00
|
|
|
{{ end }}
|
2020-08-06 09:18:21 +10:00
|
|
|
]).values()),
|
2020-04-29 04:05:39 +10:00
|
|
|
{{end}}
|
2021-10-21 18:37:43 +11:00
|
|
|
mermaidMaxSourceCharacters: {{MermaidMaxSourceCharacters}},
|
2022-01-10 20:32:37 +11:00
|
|
|
{{/* this global i18n object should only contain general texts. for specialized texts, it should be provided inside the related modules by: (1) API response (2) HTML data-attribute (3) PageData */}}
|
2021-11-16 19:16:05 +11:00
|
|
|
i18n: {
|
|
|
|
copy_success: '{{.i18n.Tr "copy_success"}}',
|
|
|
|
copy_error: '{{.i18n.Tr "copy_error"}}',
|
2021-12-29 00:28:27 +11:00
|
|
|
error_occurred: '{{.i18n.Tr "error.occurred"}}',
|
|
|
|
network_error: '{{.i18n.Tr "error.network_error"}}',
|
|
|
|
},
|
2020-01-29 08:57:20 +11:00
|
|
|
};
|
2021-12-01 18:50:01 +11:00
|
|
|
{{/* in case some pages don't render the pageData, we make sure it is an object to prevent null access */}}
|
|
|
|
window.config.pageData = window.config.pageData || {};
|
2020-01-29 08:57:20 +11:00
|
|
|
</script>
|
2021-05-09 00:27:25 +10:00
|
|
|
<link rel="icon" href="{{AssetUrlPrefix}}/img/logo.svg" type="image/svg+xml">
|
|
|
|
<link rel="alternate icon" href="{{AssetUrlPrefix}}/img/favicon.png" type="image/png">
|
|
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/index.css?v={{MD5 AppVer}}">
|
2017-09-19 09:03:01 +10:00
|
|
|
<noscript>
|
|
|
|
<style>
|
|
|
|
.dropdown:hover > .menu { display: block; }
|
|
|
|
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
|
|
|
</style>
|
|
|
|
</noscript>
|
2017-02-11 23:57:33 +11:00
|
|
|
{{if .PageIsUserProfile}}
|
2022-03-26 05:15:13 +11:00
|
|
|
<meta property="og:title" content="{{.Owner.DisplayName}}" />
|
2017-02-11 23:57:33 +11:00
|
|
|
<meta property="og:type" content="profile" />
|
|
|
|
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
|
|
|
|
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
|
2019-10-24 04:54:13 +11:00
|
|
|
{{if .Owner.Description}}
|
|
|
|
<meta property="og:description" content="{{.Owner.Description}}">
|
|
|
|
{{end}}
|
2017-02-11 23:57:33 +11:00
|
|
|
{{else if .Repository}}
|
2019-10-24 04:54:13 +11:00
|
|
|
{{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}}
|
2017-02-11 23:57:33 +11:00
|
|
|
<meta property="og:type" content="object" />
|
2020-08-25 05:46:56 +10:00
|
|
|
{{if .Repository.AvatarLink}}
|
|
|
|
<meta property="og:image" content="{{.Repository.AvatarLink}}" />
|
|
|
|
{{else}}
|
|
|
|
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
|
|
|
|
{{end}}
|
2017-02-11 23:57:33 +11:00
|
|
|
{{else}}
|
|
|
|
<meta property="og:title" content="{{AppName}}">
|
|
|
|
<meta property="og:type" content="website" />
|
2021-05-09 00:27:25 +10:00
|
|
|
<meta property="og:image" content="{{AssetUrlPrefix}}/img/logo.png" />
|
2017-02-11 23:57:33 +11:00
|
|
|
<meta property="og:url" content="{{AppUrl}}" />
|
2017-04-01 12:03:01 +11:00
|
|
|
<meta property="og:description" content="{{MetaDescription}}">
|
2017-02-11 23:57:33 +11:00
|
|
|
{{end}}
|
2019-10-24 04:54:13 +11:00
|
|
|
<meta property="og:site_name" content="{{AppName}}" />
|
2019-01-10 04:22:57 +11:00
|
|
|
{{if .IsSigned }}
|
|
|
|
{{ if ne .SignedUser.Theme "gitea" }}
|
2021-11-17 05:18:25 +11:00
|
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{.SignedUser.Theme | PathEscape}}.css?v={{MD5 AppVer}}">
|
2019-01-10 04:22:57 +11:00
|
|
|
{{end}}
|
|
|
|
{{else if ne DefaultTheme "gitea"}}
|
2021-11-17 05:18:25 +11:00
|
|
|
<link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{DefaultTheme | PathEscape}}.css?v={{MD5 AppVer}}">
|
2018-07-06 07:25:04 +10:00
|
|
|
{{end}}
|
2017-12-03 11:26:06 +11:00
|
|
|
{{template "custom/header" .}}
|
2015-03-08 07:12:13 +11:00
|
|
|
</head>
|
|
|
|
<body>
|
2018-01-02 21:32:41 +11:00
|
|
|
{{template "custom/body_outer_pre" .}}
|
|
|
|
|
2015-03-08 07:12:13 +11:00
|
|
|
<div class="full height">
|
2017-09-19 09:03:01 +10:00
|
|
|
<noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
|
2015-08-11 00:38:21 +10:00
|
|
|
|
2018-01-02 21:32:41 +11:00
|
|
|
{{template "custom/body_inner_pre" .}}
|
|
|
|
|
2015-07-08 03:09:03 +10:00
|
|
|
{{if not .PageIsInstall}}
|
2017-12-31 11:47:52 +11:00
|
|
|
<div class="ui top secondary stackable main menu following bar light">
|
2018-09-07 12:59:06 +10:00
|
|
|
{{template "base/head_navbar" .}}
|
2015-12-08 09:30:52 +11:00
|
|
|
</div><!-- end bar -->
|
2015-07-08 03:09:03 +10:00
|
|
|
{{end}}
|
2021-10-13 05:11:35 +11:00
|
|
|
|
|
|
|
{{if false}}
|
|
|
|
{{/* to make html structure "likely" complete to prevent IDE warnings */}}
|
2015-12-08 09:30:52 +11:00
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>
|
2021-10-13 05:11:35 +11:00
|
|
|
{{end}}
|