aboutsummaryrefslogtreecommitdiff
path: root/templates/base
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2022-03-02 23:05:12 -0500
committerThedro Neely <thedroneely@gmail.com>2022-03-03 00:35:50 -0500
commit78f2574be9c2ed3249c228d1f2160b7188ef57ef (patch)
tree3393942bad6ead50c1726392c53e1093af0e3124 /templates/base
parent10f027de65222224a095bb08b153b8cde619736e (diff)
downloadgitea-templates-78f2574be9c2ed3249c228d1f2160b7188ef57ef.tar.gz
gitea-templates-78f2574be9c2ed3249c228d1f2160b7188ef57ef.tar.bz2
gitea-templates-78f2574be9c2ed3249c228d1f2160b7188ef57ef.zip
templates: Reset and sync to version 1.16.2
Diffstat (limited to 'templates/base')
-rw-r--r--templates/base/footer.tmpl36
-rw-r--r--templates/base/head.tmpl157
-rw-r--r--templates/base/head_navbar.tmpl131
3 files changed, 60 insertions, 264 deletions
diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl
deleted file mode 100644
index 65bf2f0..0000000
--- a/templates/base/footer.tmpl
+++ /dev/null
@@ -1,36 +0,0 @@
-{{/*
-<html>
-<body>
- <div>
-*/}}
-
- {{template "custom/body_inner_post" .}}
-
- </div>
-
- {{template "custom/body_outer_post" .}}
-
- {{template "base/footer_content" .}}
-
- <script src="{{StaticUrlPrefix}}/vendor/plugins/jquery/jquery.min.js?v=3.4.1"></script>
- <script src="{{StaticUrlPrefix}}/vendor/plugins/jquery-migrate/jquery-migrate.min.js?v=3.0.1"></script>
- <script src="{{StaticUrlPrefix}}/vendor/plugins/jquery.areyousure/jquery.are-you-sure.js"></script>
-
-<!-- Third-party libraries -->
- <script src="{{StaticUrlPrefix}}/vendor/plugins/emojify/emojify.custom.js"></script>
- <script src="{{StaticUrlPrefix}}/vendor/plugins/clipboard/clipboard.min.js"></script>
- <script src="{{StaticUrlPrefix}}/vendor/plugins/vue/vue.min.js"></script>
-
- <!-- JavaScript -->
- <script src="{{StaticUrlPrefix}}/vendor/plugins/fomantic/semantic.min.js?v={{MD5 AppVer}}"></script>
- <script src="{{StaticUrlPrefix}}/js/index.js?v={{MD5 AppVer}}"></script>
-{{if .EnableHeatmap}}
- <script src="{{StaticUrlPrefix}}/vendor/plugins/moment/moment.min.js" charset="utf-8"></script>
- <script src="{{StaticUrlPrefix}}/vendor/plugins/vue-calendar-heatmap/vue-calendar-heatmap.browser.js" charset="utf-8"></script>
- <script type="text/javascript">
- window.initHeatmap('user-heatmap', '{{.HeatmapUser}}');
- </script>
-{{end}}
-{{template "custom/footer" .}}
-</body>
-</html>
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index df4ce00..32e206a 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -1,115 +1,71 @@
<!DOCTYPE html>
-<html lang="{{.Language}}">
-<head data-suburl="{{AppSubUrl}}">
+<html lang="{{.i18n.Lang}}" class="theme-{{.SignedUser.Theme}}">
+<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <title>{{if .Title}}{{.Title}} - {{end}} {{if .Repository.Name}}{{.Repository.Name}} - {{end}}{{AppName}}</title>
- <link rel="manifest" href="{{AppSubUrl}}/manifest.json" crossorigin="use-credentials">
- {{if UseServiceWorker}}
- <script>
- if ('serviceWorker' in navigator) {
- navigator.serviceWorker.register('{{AppSubUrl}}/serviceworker.js').then(function(registration) {
- // Registration was successful
- console.info('ServiceWorker registration successful with scope: ', registration.scope);
- }, function(err) {
- // registration failed :(
- console.info('ServiceWorker registration failed: ', err);
- });
- }
- </script>
- {{else}}
- <script>
- if ('serviceWorker' in navigator) {
- navigator.serviceWorker.getRegistrations().then(function(registrations) {
- registrations.forEach(function(registration) {
- registration.unregister();
- console.info('ServiceWorker unregistered');
- });
- });
- }
- </script>
- {{end}}
+ <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}}" />
- <meta name="_suburl" content="{{AppSubUrl}}" />
- {{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>
- {{SafeJS `/*
- @licstart The following is the entire license notice for the
- JavaScript code in this page.
-
- Copyright (c) 2016 The Gitea Authors
- Copyright (c) 2015 The Gogs Authors
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- ---
- Licensing information for additional javascript libraries can be found at:
- {{StaticUrlPrefix}}/vendor/librejs.html
-
- @licend The above is the entire license notice
- for the JavaScript code in this page.
- */`}}
- </script>
<script>
+ <!-- /* eslint-disable */ -->
window.config = {
- StaticUrlPrefix: '{{StaticUrlPrefix}}'
- }
+ 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}},
+ {{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}},
+ {{/* 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 */}}
+ i18n: {
+ copy_success: '{{.i18n.Tr "copy_success"}}',
+ copy_error: '{{.i18n.Tr "copy_error"}}',
+ error_occurred: '{{.i18n.Tr "error.occurred"}}',
+ network_error: '{{.i18n.Tr "error.network_error"}}',
+ },
+ };
+ {{/* 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 || {};
</script>
- <link rel="shortcut icon" href="{{StaticUrlPrefix}}/img/favicon.png" />
- <link rel="mask-icon" href="{{StaticUrlPrefix}}/img/gitea-safari.svg" color="#609926">
- <link rel="preload" href="{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css" as="style" onload="this.rel='stylesheet'">
- <noscript><link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/font-awesome/css/font-awesome.min.css"></noscript>
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/assets/octicons/octicons.min.css">
-
- <!-- Stylesheet -->
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/fomantic/semantic.min.css?v={{MD5 AppVer}}">
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/css/index.css?v={{MD5 AppVer}}">
+ <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}}">
<noscript>
<style>
.dropdown:hover > .menu { display: block; }
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
</style>
</noscript>
-
-{{if .EnableHeatmap}}
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/vendor/plugins/vue-calendar-heatmap/vue-calendar-heatmap.css">
-{{end}}
- <style class="list-search-style"></style>
-
{{if .PageIsUserProfile}}
<meta property="og:title" content="{{.Owner.Name}}" />
<meta property="og:type" content="profile" />
@@ -133,21 +89,25 @@
{{end}}
{{end}}
<meta property="og:type" content="object" />
- <meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
+ {{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="{{StaticUrlPrefix}}/img/gitea-lg.png" />
+ <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="{{StaticUrlPrefix}}/css/theme-{{.SignedUser.Theme}}.css?v={{MD5 AppVer}}">
+ <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{.SignedUser.Theme | PathEscape}}.css?v={{MD5 AppVer}}">
{{end}}
{{else if ne DefaultTheme "gitea"}}
- <link rel="stylesheet" href="{{StaticUrlPrefix}}/css/theme-{{DefaultTheme}}.css?v={{MD5 AppVer}}">
+ <link rel="stylesheet" href="{{AssetUrlPrefix}}/css/theme-{{DefaultTheme | PathEscape}}.css?v={{MD5 AppVer}}">
{{end}}
{{template "custom/header" .}}
</head>
@@ -155,6 +115,7 @@
{{template "custom/body_outer_pre" .}}
<div class="full height">
+ <noscript>{{.i18n.Tr "enable_javascript"}}</noscript>
{{template "custom/body_inner_pre" .}}
@@ -163,8 +124,10 @@
{{template "base/head_navbar" .}}
</div><!-- end bar -->
{{end}}
-{{/*
+
+{{if false}}
+ {{/* to make html structure "likely" complete to prevent IDE warnings */}}
</div>
</body>
</html>
-*/}}
+{{end}}
diff --git a/templates/base/head_navbar.tmpl b/templates/base/head_navbar.tmpl
deleted file mode 100644
index c985963..0000000
--- a/templates/base/head_navbar.tmpl
+++ /dev/null
@@ -1,131 +0,0 @@
-<div class="ui container" id="navbar">
- <div class="item brand" style="justify-content: space-between;">
- <a href="{{AppSubUrl}}/">
- <img class="ui mini image" src="{{StaticUrlPrefix}}/img/gitea-sm.png">
- </a>
- <div class="ui basic icon button mobile-only" id="navbar-expand-toggle">
- <i class="sidebar icon"></i>
- </div>
- </div>
-
- {{if .IsSigned}}
- <a class="item {{if .PageIsDashboard}}active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "dashboard"}}</a>
- <a class="item {{if .PageIsIssues}}active{{end}}" href="{{AppSubUrl}}/issues">{{.i18n.Tr "issues"}}</a>
- <a class="item {{if .PageIsPulls}}active{{end}}" href="{{AppSubUrl}}/pulls">{{.i18n.Tr "pull_requests"}}</a>
- {{if .ShowMilestonesDashboardPage}}<a class="item {{if .PageIsMilestonesDashboard}}active{{end}}" href="{{AppSubUrl}}/milestones">{{.i18n.Tr "milestones"}}</a>{{end}}
- <a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "explore"}}</a>
- {{else if .IsLandingPageHome}}
- <a class="item {{if .PageIsHome}}active{{end}}" href="{{AppSubUrl}}/">{{.i18n.Tr "home"}}</a>
- <a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "explore"}}</a>
- {{else if .IsLandingPageExplore}}
- <a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/repos">{{.i18n.Tr "home"}}</a>
- {{else if .IsLandingPageOrganizations}}
- <a class="item {{if .PageIsExplore}}active{{end}}" href="{{AppSubUrl}}/explore/organizations">{{.i18n.Tr "home"}}</a>
- {{end}}
-
- {{template "custom/extra_links" .}}
-
- {{/*
- <div class="item">
- <div class="ui icon input">
- <input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
- <i class="search icon"></i>
- </div>
- </div>
- */}}
-
- {{if .IsSigned}}
- <div class="right stackable menu">
- <a href="{{AppSubUrl}}/notifications" class="item poping up" data-content='{{.i18n.Tr "notifications"}}' data-variation="tiny inverted">
- <span class="text">
- <i class="fitted octicon octicon-bell"></i>
- <span class="sr-mobile-only">{{.i18n.Tr "notifications"}}</span>
-
- {{if .NotificationUnreadCount}}
- <span class="ui red label">
- {{.NotificationUnreadCount}}
- </span>
- {{end}}
- </span>
- </a>
-
- <div class="ui dropdown jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
- <span class="text">
- <i class="fitted octicon octicon-plus"></i>
- <span class="sr-mobile-only">{{.i18n.Tr "create_new"}}</span>
- <i class="fitted octicon octicon-triangle-down not-mobile"></i>
- </span>
- <div class="menu">
- <a class="item" href="{{AppSubUrl}}/repo/create">
- <i class="octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}}
- </a>
- <a class="item" href="{{AppSubUrl}}/repo/migrate">
- <i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
- </a>
- {{if .SignedUser.CanCreateOrganization}}
- <a class="item" href="{{AppSubUrl}}/org/create">
- <i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
- </a>
- {{end}}
- </div><!-- end content create new menu -->
- </div><!-- end dropdown menu create new -->
-
- <div class="ui dropdown jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
- <span class="text">
- <img class="ui tiny avatar image" src="{{.SignedUser.RelAvatarLink}}">
- <span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
- <span>{{.SignedUser.Name}}</span>
- <i class="fitted octicon octicon-triangle-down not-mobile" tabindex="-1"></i>
- </span>
- <div class="menu user-menu" tabindex="-1">
- <div class="ui header">
- {{.i18n.Tr "signed_in_as"}} <strong>{{.SignedUser.Name}}</strong>
- </div>
-
- <div class="divider"></div>
- <a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}">
- <i class="octicon octicon-person"></i>
- {{.i18n.Tr "your_profile"}}<!-- Your profile -->
- </a>
- <a class="item" href="{{AppSubUrl}}/{{.SignedUser.Name}}?tab=stars">
- <i class="octicon octicon-star"></i>
- {{.i18n.Tr "your_starred"}}
- </a>
- <a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubUrl}}/user/settings">
- <i class="octicon octicon-settings"></i>
- {{.i18n.Tr "your_settings"}}<!-- Your settings -->
- </a>
- {{if .IsAdmin}}
- <div class="divider"></div>
-
- <a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubUrl}}/admin">
- <i class="icon settings"></i>
- {{.i18n.Tr "admin_panel"}}<!-- Admin Panel -->
- </a>
- {{end}}
-
- <div class="divider"></div>
- <a class="item link-action" href data-url="{{AppSubUrl}}/user/logout" data-redirect="{{AppSubUrl}}/">
- <i class="octicon octicon-sign-out"></i>
- {{.i18n.Tr "sign_out"}}<!-- Sign Out -->
- </a>
- </div><!-- end content avatar menu -->
- </div><!-- end dropdown avatar menu -->
- </div><!-- end signed user right menu -->
-
- {{else}}
-
- <a class="item" target="_blank" rel="noopener noreferrer" href="https://docs.gitea.io">{{.i18n.Tr "help"}}</a>
- <div class="right stackable menu">
- {{if .ShowRegistrationButton}}
- <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubUrl}}/user/sign_up">
- <i class="octicon octicon-person"></i> {{.i18n.Tr "register"}}
- </a>
- {{end}}
- <a class="item{{if .PageIsSignIn}} active{{end}}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{.Link}}">
- <i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
- </a>
- </div><!-- end anonymous right menu -->
-
- {{end}}
-</div>