mirror of
https://github.com/gogs/gogs.git
synced 2025-05-31 11:42:13 +00:00
* pkg/context: Render live notice banner from file - Contexter checks if there is a file called 'notice' under the GOGS_CUSTOM directory and loads it. - The first line is treated as a header/title and everything else as the message body. - Message body is rendered as HTML (tags allowed). - File size is limited to 1024 bytes. - File mime type must be text. - Notice is rendered in head.tmpl for all pages. * pkg/context: Rename maxlen to maxSize Rename maxlen to maxSize for the maximum size (in bytes) of the notice file to render. Define the variable when needed to avoid instantiating it when the file doesn't exist. Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io> * pkg/context: Package name after license header Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io> * pkg/context: Don't print 'Found notice file' Becomes too verbose as it prints on every page load when the file exists. * pkg/context: Match project conventions Import order and grouping Variable names: fileloc -> fpath fp -> f finfo -> fi * pkg/context: Remove empty line Co-Authored-By: ᴊ. ᴄʜᴇɴ <u@gogs.io> * pkg/context: Render notice as markdown Server notice file should be named 'notice.md'. The contents of the file are treated as markdown and rendered as a warning message at the top of every page. * Update notice.go Co-authored-by: ᴊ. ᴄʜᴇɴ <u@gogs.io>
208 lines
9.0 KiB
Cheetah
208 lines
9.0 KiB
Cheetah
<!DOCTYPE html>
|
|
<html>
|
|
<head data-suburl="{{AppSubURL}}">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
|
{{if not .PageIsAdmin}}
|
|
<meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}Gogs{{end}}" />
|
|
<meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}Gogs is a painless self-hosted Git service{{end}}" />
|
|
<meta name="keywords" content="go, git, self-hosted, gogs">
|
|
{{end}}
|
|
<meta name="referrer" content="no-referrer" />
|
|
<meta name="_csrf" content="{{.CSRFToken}}" />
|
|
<meta name="_suburl" content="{{AppSubURL}}" />
|
|
|
|
<!-- Open Graph Tags -->
|
|
{{if .PageIsAdmin}}
|
|
{{else if .PageIsUserProfile}}
|
|
<meta property="og:url" content="{{.Owner.HTMLURL}}" />
|
|
<meta property="og:type" content="profile" />
|
|
<meta property="og:title" content="{{.Owner.Name}}{{if .Owner.FullName}} ({{.Owner.FullName}}){{end}}">
|
|
<meta property="og:description" content="{{.Owner.Name}} has {{.Owner.NumFollowers}} followers and is following {{.Owner.NumFollowing}} people.">
|
|
<meta property="og:image" content="{{.Owner.AvatarLink}}" />
|
|
{{else if .Repository}}
|
|
<meta property="og:url" content="{{.Repository.HTMLURL}}" />
|
|
<meta property="og:type" content="object" />
|
|
<meta property="og:title" content="{{.Repository.FullName}}">
|
|
<meta property="og:description" content="{{.Repository.Description}}">
|
|
<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
|
|
{{else}}
|
|
<meta property="og:url" content="{{AppURL}}" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:title" content="{{AppName}}">
|
|
<meta property="og:description" content="Gogs is a painless self-hosted Git service.">
|
|
<meta property="og:image" content="{{AppURL}}img/gogs-lg.png" />
|
|
<meta property="og:site_name" content="Gogs">
|
|
{{end}}
|
|
|
|
<link rel="shortcut icon" href="{{AppSubURL}}/img/favicon.png" />
|
|
|
|
<script src="{{AppSubURL}}/js/jquery-1.11.3.min.js"></script>
|
|
<script src="{{AppSubURL}}/js/libs/jquery.are-you-sure.js"></script>
|
|
<link rel="stylesheet" href="{{AppSubURL}}/assets/font-awesome-4.6.3/css/font-awesome.min.css">
|
|
<link rel="stylesheet" href="{{AppSubURL}}/assets/octicons-4.3.0/octicons.min.css">
|
|
|
|
<!-- notebook.js for rendering ipython notebooks and marked.js for rendering markdown in notebooks -->
|
|
{{if .IsIPythonNotebook}}
|
|
<script src="{{AppSubURL}}/plugins/notebookjs-0.3.0/notebook.min.js"></script>
|
|
<script src="{{AppSubURL}}/plugins/marked-0.3.6/marked.min.js"></script>
|
|
{{end}}
|
|
|
|
{{if .RequireSimpleMDE}}
|
|
<link rel="stylesheet" href="{{AppSubURL}}/plugins/simplemde-1.10.1/simplemde.min.css">
|
|
<script src="{{AppSubURL}}/plugins/simplemde-1.10.1/simplemde.min.js"></script>
|
|
<script src="{{AppSubURL}}/plugins/codemirror-5.17.0/addon/mode/loadmode.js"></script>
|
|
<script src="{{AppSubURL}}/plugins/codemirror-5.17.0/mode/meta.js"></script>
|
|
<script>
|
|
CodeMirror.modeURL = "{{AppSubURL}}/plugins/codemirror-5.17.0/mode/%N/%N.js";
|
|
</script>
|
|
{{end}}
|
|
|
|
<!-- Stylesheet -->
|
|
<link rel="stylesheet" href="{{AppSubURL}}/css/semantic-2.3.1.min.css">
|
|
<link rel="stylesheet" href="{{AppSubURL}}/css/gogs.css?v={{MD5 AppVer}}">
|
|
<noscript>
|
|
<style>
|
|
.dropdown:hover > .menu { display: block; }
|
|
.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
|
|
</style>
|
|
</noscript>
|
|
|
|
<!-- JavaScript -->
|
|
<script src="{{AppSubURL}}/js/semantic-2.3.1.min.js"></script>
|
|
<script src="{{AppSubURL}}/js/gogs.js?v={{MD5 AppVer}}"></script>
|
|
|
|
<title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
|
|
|
|
<meta name="theme-color" content="{{ThemeColorMetaTag}}">
|
|
|
|
{{template "inject/head" .}}
|
|
</head>
|
|
<body>
|
|
<div class="full height">
|
|
<noscript>This website works better with JavaScript</noscript>
|
|
|
|
{{if not .PageIsInstall}}
|
|
<div class="following bar light">
|
|
<div class="ui container">
|
|
<div class="ui grid">
|
|
<div class="column">
|
|
<div class="ui top secondary menu">
|
|
<a class="item brand" href="{{AppSubURL}}/">
|
|
<img class="ui mini image" src="{{AppSubURL}}/img/favicon.png">
|
|
</a>
|
|
|
|
{{if .IsLogged}}
|
|
<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>
|
|
{{else}}
|
|
<a class="item{{if .PageIsHome}} active{{end}}" href="{{AppSubURL}}/">{{.i18n.Tr "home"}}</a>
|
|
{{end}}
|
|
|
|
<a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubURL}}/explore/repos">{{.i18n.Tr "explore"}}</a>
|
|
{{/*<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 .IsLogged}}
|
|
<div class="right menu">
|
|
<div class="ui dropdown head link jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
|
|
<span class="text">
|
|
<i class="octicon octicon-plus"><span class="sr-only">{{.i18n.Tr "create_new"}}</span></i>
|
|
<i class="octicon octicon-triangle-down"></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 .LoggedUser.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 head link jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
|
|
<span class="text avatar">
|
|
<img class="ui small rounded image" src="{{.LoggedUser.RelAvatarLink}}">
|
|
<span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
|
|
<i class="octicon octicon-triangle-down" tabindex="-1"></i>
|
|
</span>
|
|
<div class="menu" tabindex="-1">
|
|
<div class="ui header">
|
|
{{.i18n.Tr "signed_in_as"}} <strong>{{.LoggedUser.Name}}</strong>
|
|
</div>
|
|
|
|
<div class="divider"></div>
|
|
<a class="item" href="{{AppSubURL}}/{{.LoggedUser.Name}}">
|
|
<i class="octicon octicon-person"></i> {{.i18n.Tr "your_profile"}}
|
|
</a>
|
|
<a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubURL}}/user/settings">
|
|
<i class="octicon octicon-settings"></i> {{.i18n.Tr "your_settings"}}
|
|
</a>
|
|
<a class="item" target="_blank" rel="noopener noreferrer" href="https://gogs.io/docs" rel="noreferrer">
|
|
<i class="octicon octicon-question"></i> {{.i18n.Tr "help"}}
|
|
</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"}}
|
|
</a>
|
|
{{end}}
|
|
|
|
<div class="divider"></div>
|
|
|
|
<form id="logout-form" class="item" action="{{AppSubURL}}/user/logout" method="POST">
|
|
{{.CSRFTokenHTML}}
|
|
<div class="submit-button" data-form="#logout-form">
|
|
<i class="octicon octicon-sign-out"></i> {{.i18n.Tr "sign_out"}}
|
|
</div>
|
|
</form>
|
|
</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://gogs.io/docs" rel="noreferrer">{{.i18n.Tr "help"}}</a>
|
|
<div class="right 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}}" 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><!-- end top menu -->
|
|
</div><!-- end column -->
|
|
</div><!-- end grid -->
|
|
</div><!-- end container -->
|
|
</div><!-- end bar -->
|
|
{{end}}
|
|
|
|
{{if .ServerNotice}}
|
|
<div class="ui container grid warning message">
|
|
<div class="content">
|
|
{{.ServerNotice | Str2HTML}}
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
{{/*
|
|
</div>
|
|
</body>
|
|
</html>
|
|
*/}}
|