head.tmpl 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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/gogs-lg.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.3.0/notebook.min.js"></script>
  44. <script src="{{AppSubURL}}/plugins/marked-0.3.6/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.css?v={{MD5 AppVer}}">
  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. <!-- JavaScript -->
  65. <script src="{{AppSubURL}}/js/semantic-2.4.2.min.js"></script>
  66. <script src="{{AppSubURL}}/js/gogs.js?v={{MD5 AppVer}}"></script>
  67. <title>{{if .Title}}{{.Title}} - {{end}}{{AppName}}</title>
  68. <meta name="theme-color" content="{{ThemeColorMetaTag}}">
  69. {{template "inject/head" .}}
  70. </head>
  71. <body>
  72. <div class="full height">
  73. <noscript>This website works better with JavaScript</noscript>
  74. {{if not .PageIsInstall}}
  75. <div class="following bar light">
  76. <div class="ui container">
  77. <div class="ui grid">
  78. <div class="column">
  79. <div class="ui top secondary menu">
  80. <a class="item brand" href="{{AppSubURL}}/">
  81. <img class="ui mini image" src="{{AppSubURL}}/img/favicon.png">
  82. </a>
  83. {{if .IsLogged}}
  84. <a class="item{{if .PageIsDashboard}} active{{end}}" href="{{AppSubURL}}/">{{.i18n.Tr "dashboard"}}</a>
  85. <a class="item{{if .PageIsIssues}} active{{end}}" href="{{AppSubURL}}/issues">{{.i18n.Tr "issues"}}</a>
  86. <a class="item{{if .PageIsPulls}} active{{end}}" href="{{AppSubURL}}/pulls">{{.i18n.Tr "pull_requests"}}</a>
  87. {{else}}
  88. <a class="item{{if .PageIsHome}} active{{end}}" href="{{AppSubURL}}/">{{.i18n.Tr "home"}}</a>
  89. {{end}}
  90. <a class="item{{if .PageIsExplore}} active{{end}}" href="{{AppSubURL}}/explore/repos">{{.i18n.Tr "explore"}}</a>
  91. {{/*<div class="item">
  92. <div class="ui icon input">
  93. <input class="searchbox" type="text" placeholder="{{.i18n.Tr "search_project"}}">
  94. <i class="search icon"></i>
  95. </div>
  96. </div>*/}}
  97. {{if .IsLogged}}
  98. <div class="right menu">
  99. <div class="ui dropdown head link jump item poping up" data-content="{{.i18n.Tr "create_new"}}" data-variation="tiny inverted">
  100. <span class="text">
  101. <i class="octicon octicon-plus"><span class="sr-only">{{.i18n.Tr "create_new"}}</span></i>
  102. <i class="octicon octicon-triangle-down"></i>
  103. </span>
  104. <div class="menu">
  105. <a class="item" href="{{AppSubURL}}/repo/create">
  106. <i class="octicon octicon-plus"></i> {{.i18n.Tr "new_repo"}}
  107. </a>
  108. <a class="item" href="{{AppSubURL}}/repo/migrate">
  109. <i class="octicon octicon-repo-clone"></i> {{.i18n.Tr "new_migrate"}}
  110. </a>
  111. {{if .LoggedUser.CanCreateOrganization}}
  112. <a class="item" href="{{AppSubURL}}/org/create">
  113. <i class="octicon octicon-organization"></i> {{.i18n.Tr "new_org"}}
  114. </a>
  115. {{end}}
  116. </div><!-- end content create new menu -->
  117. </div><!-- end dropdown menu create new -->
  118. <div class="ui dropdown head link jump item poping up" tabindex="-1" data-content="{{.i18n.Tr "user_profile_and_more"}}" data-variation="tiny inverted">
  119. <span class="text avatar">
  120. <img class="ui small rounded image" src="{{.LoggedUser.RelAvatarLink}}">
  121. <span class="sr-only">{{.i18n.Tr "user_profile_and_more"}}</span>
  122. <i class="octicon octicon-triangle-down" tabindex="-1"></i>
  123. </span>
  124. <div class="menu" tabindex="-1">
  125. <div class="ui header">
  126. {{.i18n.Tr "signed_in_as"}} <strong>{{.LoggedUser.Name}}</strong>
  127. </div>
  128. <div class="divider"></div>
  129. <a class="item" href="{{AppSubURL}}/{{.LoggedUser.Name}}">
  130. <i class="octicon octicon-person"></i> {{.i18n.Tr "your_profile"}}
  131. </a>
  132. <a class="{{if .PageIsUserSettings}}active{{end}} item" href="{{AppSubURL}}/user/settings">
  133. <i class="octicon octicon-settings"></i> {{.i18n.Tr "your_settings"}}
  134. </a>
  135. <a class="item" target="_blank" rel="noopener noreferrer" href="https://gogs.io/docs" rel="noreferrer">
  136. <i class="octicon octicon-question"></i> {{.i18n.Tr "help"}}
  137. </a>
  138. {{if .IsAdmin}}
  139. <div class="divider"></div>
  140. <a class="{{if .PageIsAdmin}}active{{end}} item" href="{{AppSubURL}}/admin">
  141. <i class="icon settings"></i> {{.i18n.Tr "admin_panel"}}
  142. </a>
  143. {{end}}
  144. <div class="divider"></div>
  145. <form id="logout-form" class="item" action="{{AppSubURL}}/user/logout" method="POST">
  146. {{.CSRFTokenHTML}}
  147. <div class="submit-button" data-form="#logout-form">
  148. <i class="octicon octicon-sign-out"></i> {{.i18n.Tr "sign_out"}}
  149. </div>
  150. </form>
  151. </div><!-- end content avatar menu -->
  152. </div><!-- end dropdown avatar menu -->
  153. </div><!-- end signed user right menu -->
  154. {{else}}
  155. <a class="item" target="_blank" rel="noopener noreferrer" href="https://gogs.io/docs" rel="noreferrer">{{.i18n.Tr "help"}}</a>
  156. <div class="right menu">
  157. {{if .ShowRegistrationButton}}
  158. <a class="item{{if .PageIsSignUp}} active{{end}}" href="{{AppSubURL}}/user/sign_up">
  159. <i class="octicon octicon-person"></i> {{.i18n.Tr "register"}}
  160. </a>
  161. {{end}}
  162. <a class="item{{if .PageIsSignIn}} active{{end}}" href="{{AppSubURL}}/user/login?redirect_to={{.Link}}">
  163. <i class="octicon octicon-sign-in"></i> {{.i18n.Tr "sign_in"}}
  164. </a>
  165. </div><!-- end anonymous right menu -->
  166. {{end}}
  167. </div><!-- end top menu -->
  168. </div><!-- end column -->
  169. </div><!-- end grid -->
  170. </div><!-- end container -->
  171. </div><!-- end bar -->
  172. {{end}}
  173. {{if .ServerNotice}}
  174. <div class="ui container grid warning message">
  175. <div class="content">
  176. {{.ServerNotice | Str2HTML}}
  177. </div>
  178. </div>
  179. {{end}}
  180. {{/*
  181. </div>
  182. </body>
  183. </html>
  184. */}}