Newer
Older
gitbucket_jkp / src / main / twirl / gitbucket / core / menu.scala.html
@(active: String,
  repository: gitbucket.core.service.RepositoryService.RepositoryInfo,
  id: Option[String] = None,
  info: Option[Any] = None,
  error: Option[Any] = None)(body: Html)(implicit context: gitbucket.core.controller.Context)
@import context._
@import gitbucket.core.view.helpers._

@menuitem(path: String, name: String, label: String, icon: String, count: Int = 0) = {
  <li @if(active == name){class="active"}>
    @if(path.startsWith("http")){
      <a href="@path" target="_blank">
        <i class="menu-icon octicon octicon-@icon"></i> <span class="pc">@label @if(count > 0) { <span class="badge">@count</span> }</span>
      </a>
    } else {
      <a href="@url(repository)@path">
        <i class="menu-icon octicon octicon-@icon"></i> <span class="pc">@label @if(count > 0) { <span class="badge">@count</span> }</span>
      </a>
    }
  </li>
}

<div class="headbar">
  <div class="container">
    @helper.html.information(info)
    @helper.html.error(error)
    <div class="head">
      @helper.html.repositoryicon(repository, true)
      <a href="@url(repository.owner)">@repository.owner</a> / <a href="@url(repository)" class="strong">@repository.name</a>

      @defining(repository.repository){ x =>
        @if(repository.repository.originRepositoryName.isDefined){
          <div class="forked">
            forked from <a href="@path/@x.parentUserName/@x.parentRepositoryName">@x.parentUserName/@x.parentRepositoryName</a>
          </div>
        }
        @x.description.map { description =>
          <div class="normal muted" style="margin-left: 36px; font-size: 80%;">@detectAndRenderLinks(description)</div>
        }
      }
    </div>
  </div>
</div>
<div class="container body">
  <div class="main-sidebar">
    <ul class="nav nav-pills nav-stacked">
      @menuitem("", "files", "Files", "code")
      @if(repository.commitCount != 0) {
        @menuitem("/branches", "branches", "Branches", "git-branch", repository.branchList.length)
        @menuitem("/tags", "tags", "Tags", "tag", repository.tags.length)
      }
      @if(repository.repository.enableIssues) {
        @menuitem("/issues", "issues", "Issues", "issue-opened", repository.issueCount)
        @menuitem("/pulls", "pulls", "Pull Requests", "git-pull-request", repository.pullCount)
        @menuitem("/issues/labels", "labels", "Labels", "tag")
        @menuitem("/issues/milestones", "milestones", "Milestones", "milestone")
      } else {
        @repository.repository.externalIssuesUrl.map { externalIssuesUrl =>
          @menuitem(externalIssuesUrl, "issues", "Issues", "issue-opened")
        }
      }
      @if(repository.repository.enableWiki) {
        @menuitem("/wiki", "wiki", "Wiki", "book")
      } else {
        @repository.repository.externalWikiUrl.map { externalWikiUrl =>
          @menuitem(externalWikiUrl, "wiki", "Wiki", "book")
        }
      }
      @menuitem("/network/members", "fork", "Forks", "repo-forked", repository.forkedCount)
      @if(loginAccount.isDefined && (loginAccount.get.isAdmin || repository.managers.contains(loginAccount.get.userName))){
        @menuitem("/settings", "settings", "Settings", "tools")
      }
      @gitbucket.core.plugin.PluginRegistry().getRepositoryMenus.map { menu =>
        @menu(repository, context).map { link =>
          @menuitem(link.path, link.id, link.label, link.icon.getOrElse("ruby"))
        }
      }
    </ul>
  </div>
  <div class="main-content">
    @body
  </div>
</div>