mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 09:04:58 +00:00
7bcbdd0707
It makes Admin's life easier to filter users by various status. * introduce window.config.PageData to pass template data to javascript module and small refactor move legacy window.ActivityTopAuthors to window.config.PageData.ActivityTopAuthors make HTML structure more IDE-friendly in footer.tmpl and head.tmpl remove incorrect <style class="list-search-style"></style> in head.tmpl use log.Error instead of log.Critical in admin user search * use LEFT JOIN instead of SubQuery when admin filters users by 2fa. revert non-en locale. * use OptionalBool instead of status map * refactor SearchUserOptions.toConds to SearchUserOptions.toSearchQueryBase * add unit test for user search * only allow admin to use filters to search users
145 lines
5.8 KiB
Handlebars
145 lines
5.8 KiB
Handlebars
<!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>
|
|
<!-- /* eslint-disable */ -->
|
|
window.config = {
|
|
AppVer: '{{AppVer}}',
|
|
AppSubUrl: '{{AppSubUrl}}',
|
|
AssetUrlPrefix: '{{AssetUrlPrefix}}',
|
|
CustomEmojis: {{CustomEmojis}},
|
|
UseServiceWorker: {{UseServiceWorker}},
|
|
csrf: '{{.CsrfToken}}',
|
|
PageData: {{ .PageData }},
|
|
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>
|
|
{{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}}
|
|
|
|
{{if false}}
|
|
{{/* to make html structure "likely" complete to prevent IDE warnings */}}
|
|
</div>
|
|
</body>
|
|
</html>
|
|
{{end}}
|