Newer
Older
gitbucket_jkp / src / main / twirl / gitbucket / core / menu.scala.html
  1. @(active: String,
  2. repository: gitbucket.core.service.RepositoryService.RepositoryInfo,
  3. id: Option[String] = None,
  4. info: Option[Any] = None,
  5. error: Option[Any] = None)(body: Html)(implicit context: gitbucket.core.controller.Context)
  6. @import gitbucket.core.view.helpers
  7.  
  8. @menuitem(path: String, name: String, label: String, icon: String, count: Int = 0) = {
  9. <li class = "menu-item-hover @if(active == name){active}">
  10. @if(path.startsWith("http")){
  11. <a href="@path" target="_blank">
  12. <i class="menu-icon octicon octicon-@icon"></i>
  13. <span>@label</span>
  14. @if(count > 0){
  15. <span class="pull-right-container"><span class="label label-primary pull-right-container">@count</span></span>
  16. }
  17. </a>
  18. } else {
  19. <a href="@helpers.url(repository)@path">
  20. <i class="menu-icon octicon octicon-@icon"></i>
  21. <span>@label</span>
  22. @if(count > 0) {
  23. <span class="pull-right-container"><span class="label label-primary pull-right">@count</span></span>
  24. }
  25. </a>
  26. }
  27. </li>
  28. }
  29.  
  30. <div class="main-sidebar">
  31. <div class="sidebar">
  32. <ul class="sidebar-menu">
  33. @menuitem("", "files", "Files", "code")
  34. @if(repository.branchList.nonEmpty) {
  35. @menuitem("/branches", "branches", "Branches", "git-branch", repository.branchList.length)
  36. @menuitem("/tags", "tags", "Tags", "tag", repository.tags.length)
  37. }
  38. @if(repository.repository.options.issuesOption != "DISABLE") {
  39. @menuitem("/issues", "issues", "Issues", "issue-opened", repository.issueCount)
  40. @menuitem("/pulls", "pulls", "Pull requests", "git-pull-request", repository.pullCount)
  41. @menuitem("/issues/labels", "labels", "Labels", "tag")
  42. @menuitem("/issues/priorities", "priorities", "Priorities", "flame")
  43. @menuitem("/issues/milestones", "milestones", "Milestones", "milestone")
  44. } else {
  45. @repository.repository.options.externalIssuesUrl.map { externalIssuesUrl =>
  46. @menuitem(externalIssuesUrl, "issues", "Issues", "issue-opened")
  47. }
  48. }
  49. @if(repository.repository.options.wikiOption != "DISABLE") {
  50. @menuitem("/wiki", "wiki", "Wiki", "book")
  51. } else {
  52. @repository.repository.options.externalWikiUrl.map { externalWikiUrl =>
  53. @menuitem(externalWikiUrl, "wiki", "Wiki", "book")
  54. }
  55. }
  56. @if(repository.repository.options.allowFork) {
  57. @menuitem("/network/members", "fork", "Forks", "repo-forked", repository.forkedCount)
  58. }
  59. @if(context.loginAccount.isDefined && (context.loginAccount.get.isAdmin || repository.managers.contains(context.loginAccount.get.userName))){
  60. @menuitem("/settings", "settings", "Settings", "tools")
  61. }
  62. @gitbucket.core.plugin.PluginRegistry().getRepositoryMenus.map { menu =>
  63. @menu(repository, context).map { link =>
  64. @menuitem(link.path, link.id, link.label, link.icon.getOrElse("ruby"))
  65. }
  66. }
  67. </ul>
  68. </div>
  69. </div>
  70. <div class="content-wrapper">
  71. <div class="content body clearfix">
  72. <div class="headbar">
  73. <div class="container">
  74. @gitbucket.core.helper.html.information(info)
  75. @gitbucket.core.helper.html.error(error)
  76. <div class="head">
  77. <div class="pull-right">
  78. @gitbucket.core.plugin.PluginRegistry().getRepositoryHeaders.map { repositoryHeaderComponent =>
  79. @repositoryHeaderComponent(repository, context)
  80. }
  81. </div>
  82. @gitbucket.core.helper.html.repositoryicon(repository, true)
  83. <a href="@helpers.url(repository.owner)">@repository.owner</a> / <a href="@helpers.url(repository)" class="strong">@repository.name</a>
  84.  
  85. @defining(repository.repository){ x =>
  86. @if(repository.repository.originRepositoryName.isDefined){
  87. <div class="forked">
  88. forked from <a href="@context.path/@x.parentUserName/@x.parentRepositoryName">@x.parentUserName/@x.parentRepositoryName</a>
  89. </div>
  90. }
  91. @x.description.map { description =>
  92. <div class="normal muted" style="margin-left: 36px; font-size: 80%;">@Html(helpers.detectAndRenderLinks(description, repository))</div>
  93. }
  94. }
  95. </div>
  96. </div>
  97. </div>
  98. @body
  99. </div>
  100. </div>
  101.