head.tmpl 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <!DOCTYPE html>
  2. <html>
  3. <head data-suburl="{{AppSubURL}}">
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  6. {{if not .PageIsAdmin}}
  7. <meta name="author" content="{{if .Repository}}{{.Owner.Name}}{{else}}Gogs{{end}}" />
  8. <meta name="description" content="{{if .Repository}}{{.Repository.Name}}{{if .Repository.Description}} - {{.Repository.Description}}{{end}}{{else}}Gogs is a painless self-hosted Git service{{end}}" />
  9. <meta name="keywords" content="go, git, self-hosted, gogs">
  10. {{end}}
  11. <meta name="referrer" content="no-referrer" />
  12. <meta name="_csrf" content="{{.CSRFToken}}" />
  13. <meta name="_suburl" content="{{AppSubURL}}" />
  14. <!-- Open Graph Tags -->
  15. {{if .PageIsAdmin}}
  16. {{else if .PageIsUserProfile}}
  17. <meta property="og:url" content="{{.Owner.HTMLURL}}" />
  18. <meta property="og:type" content="profile" />
  19. <meta property="og:title" content="{{.Owner.Name}}{{if .Owner.FullName}} ({{.Owner.FullName}}){{end}}">
  20. <meta property="og:description" content="{{.Owner.Name}} has {{.Owner.NumFollowers}} followers and is following {{.Owner.NumFollowing}} people.">
  21. <meta property="og:image" content="{{.Owner.AvatarLink}}" />
  22. {{else if .Repository}}
  23. <meta property="og:url" content="{{.Repository.HTMLURL}}" />
  24. <meta property="og:type" content="object" />
  25. <meta property="og:title" content="{{.Repository.FullName}}">
  26. <meta property="og:description" content="{{.Repository.Description}}">
  27. <meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
  28. {{else}}
  29. <meta property="og:url" content="{{AppURL}}" />
  30. <meta property="og:type" content="website" />
  31. <meta property="og:title" content="{{AppName}}">
  32. <meta property="og:description" content="Gogs is a painless self-hosted Git service.">
  33. <meta property="og:image" content="{{AppURL}}img/favicon.png" />
  34. <meta property="og:site_name" content="Gogs">
  35. {{end}}
  36. <link rel="shortcut icon" href="{{AppSubURL}}/img/favicon.png" />
  37. <script src="{{AppSubURL}}/js/jquery-3.4.1.min.js"></script>
  38. <script src="{{AppSubURL}}/js/libs/jquery.are-you-sure.js"></script>
  39. <link rel="stylesheet" href="{{AppSubURL}}/assets/font-awesome-4.6.3/css/font-awesome.min.css">
  40. <link rel="stylesheet" href="{{AppSubURL}}/assets/octicons-4.3.0/octicons.min.css">
  41. <!-- notebook.js for rendering ipython notebooks and marked.js for rendering markdown in notebooks -->
  42. {{if .IsIPythonNotebook}}
  43. <script src="{{AppSubURL}}/plugins/notebookjs-0.4.2/notebook.min.js"></script>
  44. <script src="{{AppSubURL}}/plugins/marked-0.8.1/marked.min.js"></script>
  45. {{end}}
  46. {{if .RequireSimpleMDE}}
  47. <link rel="stylesheet" href="{{AppSubURL}}/plugins/simplemde-1.10.1/simplemde.min.css">
  48. <script src="{{AppSubURL}}/plugins/simplemde-1.10.1/simplemde.min.js"></script>
  49. <script src="{{AppSubURL}}/plugins/codemirror-5.17.0/addon/mode/loadmode.js"></script>
  50. <script src="{{AppSubURL}}/plugins/codemirror-5.17.0/mode/meta.js"></script>
  51. <script>
  52. CodeMirror.modeURL = "{{AppSubURL}}/plugins/codemirror-5.17.0/mode/%N/%N.js";
  53. </script>
  54. {{end}}
  55. <!-- Stylesheet -->
  56. <link rel="stylesheet" href="{{AppSubURL}}/css/semantic-2.4.2.min.css">
  57. <link rel="stylesheet" href="{{AppSubURL}}/css/gogs.min.css?v={{BuildCommit}}">
  58. <noscript>
  59. <style>
  60. .dropdown:hover > .menu { display: block; }
  61. .ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
  62. </style>
  63. </noscript>
  64. <!-- Endevir's stylesheet overrides -->
  65. <link rel="stylesheet" href="{{AppSubURL}}/css/gogs-overrides.css">
  66. <!-- JavaScript -->
  67. <script src="{{AppSubURL}}/js/semantic-2.4.2.min.js"></script>
  68. <script src="{{AppSubURL}}/js/gogs.js?v={{BuildCommit}}"></script>
  69. <title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
  70. <meta name="theme-color" content="{{ThemeColorMetaTag}}">
  71. {{template "inject/head" .}}
  72. </head>
  73. <body>
  74. <div class="full height">
  75. <noscript>This website works better with JavaScript</noscript>
  76. {{if not .PageIsInstall}}
  77. <div class="following bar light">
  78. <div class="ui container">
  79. <div class="ui grid">
  80. <div class="column">
  81. <div class="ui top secondary menu">
  82. <a class="item brand" href="{{AppSubURL}}/">
  83. <img class="ui mini image" src="{{AppSubURL}}/img/favicon.png">
  84. </a>
  85. {{if .IsLogged}}
  86. <a class="item{{if .PageIsDashboard}} active{{end}}" href="{{AppSubURL}}/">{{.i18n.Tr "dashboard"}}</a>
  87. <a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubURL}}/issues">{{.i18n.Tr "issues"}}</a>
  88. <a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubURL}}/pulls">{{.i18n.Tr "pull_requests"}}</a>
  89. {{else}}
  90. <a class="item{{if .PageIsHome}} active{{end}}" href="{{AppSubURL}}/">{{.i18n.Tr "home"}}</a>
  91. {{end}}
  92. <a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubURL}}/explore/repos">{{.i18n.Tr "explore"}}</a>
  93. {{/*<div class="item">
  94. <div class="ui icon input">
  95. <input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
  96. <i class="search icon"></i>
  97. </div>
  98. </div>*/}}
  99. {{if .IsLogged}}
  100. <div class="right menu">
  101. <div class="ui dropdown head link jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
  102. <span class="text">
  103. <i class="octicon octicon-plus"><span class="sr-only">{{.i18n.Tr "create_new"}}</span></i>
  104. <i class="octicon octicon-triangle-down"></i>
  105. </span>
  106. <div class="menu">
  107. <a class="item" href="{{AppSubURL}}/repo/create">
  108. <i class="octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}}
  109. </a>
  110. <a class="item" href="{{AppSubURL}}/repo/migrate">
  111. <i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
  112. </a>
  113. {{if .LoggedUser.CanCreateOrganization}}
  114. <a class="item" href="{{AppSubURL}}/org/create">
  115. <i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
  116. </a>
  117. {{end}}
  118. </div><!-- end content create new menu -->
  119. </div><!-- end dropdown menu create new -->
  120. <div class="ui dropdown head link jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
  121. <span class="text avatar">
  122. <img class="ui small rounded image" src="{{.LoggedUser.RelAvatarLink}}">
  123. <span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
  124. <i class="octicon octicon-triangle-down" tabindex="-1"></i>
  125. </span>
  126. <div class="menu" tabindex="-1">
  127. <div class="ui header">
  128. {{.i18n.Tr "signed_in_as"}} <strong>{{.LoggedUser.Name}}</strong>
  129. </div>
  130. <div class="divider"></div>
  131. <a class="item" href="{{AppSubURL}}/{{.LoggedUser.Name}}">
  132. <i class="octicon octicon-person"></i> {{.i18n.Tr "your_profile"}}
  133. </a>
  134. <a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubURL}}/user/settings">
  135. <i class="octicon octicon-settings"></i> {{.i18n.Tr "your_settings"}}
  136. </a>
  137. {{if .IsAdmin}}
  138. <div class="divider"></div>
  139. <a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubURL}}/admin">
  140. <i class="icon settings"></i> {{.i18n.Tr "admin_panel"}}
  141. </a>
  142. {{end}}
  143. <div class="divider"></div>
  144. <form id="logout-form" class="item" action="{{AppSubURL}}/user/logout" method="POST">
  145. {{.CSRFTokenHTML}}
  146. <div class="submit-button" data-form="#logout-form">
  147. <i class="octicon octicon-sign-out"></i> {{.i18n.Tr "sign_out"}}
  148. </div>
  149. </form>
  150. </div><!-- end content avatar menu -->
  151. </div><!-- end dropdown avatar menu -->
  152. </div><!-- end signed user right menu -->
  153. {{else}}
  154. <div class="right menu">
  155. {{if .ShowRegistrationButton}}
  156. <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubURL}}/user/sign_up">
  157. <i class="octicon octicon-person"></i> {{.i18n.Tr "register"}}
  158. </a>
  159. {{end}}
  160. <a class="item{{if .PageIsSignIn}} active{{end}}" href="{{AppSubURL}}/user/login?redirect_to={{.Link}}">
  161. <i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
  162. </a>
  163. </div><!-- end anonymous right menu -->
  164. {{end}}
  165. </div><!-- end top menu -->
  166. </div><!-- end column -->
  167. </div><!-- end grid -->
  168. </div><!-- end container -->
  169. </div><!-- end bar -->
  170. {{end}}
  171. {{if .ServerNotice}}
  172. <div class="ui container grid warning message">
  173. <div class="content">
  174. {{.ServerNotice | Str2HTML}}
  175. </div>
  176. </div>
  177. {{end}}
  178. {{/*
  179. </div>
  180. </body>
  181. </html>
  182. */}}