@(branch: String, repository: service.RepositoryService.RepositoryInfo, pathList: List[String], groupNames: List[String], latestCommit: util.JGitUtil.CommitInfo, files: List[util.JGitUtil.FileInfo], readme: Option[(List[String], String)], hasWritePermission: Boolean, info: Option[Any] = None, error: Option[Any] = None)(implicit context: app.Context) @import context._ @import view.helpers._ @html.main(s"${repository.owner}/${repository.name}", Some(repository)) { @html.menu("code", repository, Some(branch), pathList.isEmpty, groupNames.isEmpty, info, error){ <div class="head"> @helper.html.branchcontrol( branch, repository, hasWritePermission ){ @repository.branchList.map { x => <li><a href="@url(repository)/tree/@encodeRefName(x)">@helper.html.checkicon(x == branch) @x</a></li> } } <a href="@url(repository)/tree/@encodeRefName(branch)">@repository.name</a> / @pathList.zipWithIndex.map { case (section, i) => <a href="@url(repository)/tree/@encodeRefName(branch)/@pathList.take(i + 1).mkString("/")">@section</a> / } @if(hasWritePermission){ <a href="@url(repository)/new/@encodeRefName(branch)/@pathList.mkString("/")"><img src="@assets/common/images/newfile.png"/></a> } </div> <table class="table table-file-list"> <tr> <th colspan="4" style="font-weight: normal;"> <a href="@url(repository)/commit/@latestCommit.id" class="commit-message">@link(latestCommit.summary, repository)</a> @if(latestCommit.description.isDefined){ <a href="javascript:void(0)" onclick="$('#description-@latestCommit.id').toggle();" class="omit">...</a> <pre id="description-@latestCommit.id" class="commit-description" style="display: none;">@link(latestCommit.description.get, repository)</pre> } </th> </tr> <tr> <td colspan="4" class="latest-commit"> <div> <div class="pull-right align-right monospace" style="line-height: 18px;"> <a href="@url(repository)/commit/@latestCommit.id" class="commit-id"><span class="muted">latest commit</span> @latestCommit.id.substring(0, 10)</a> </div> <div class="author-info"> <div class="author"> @avatar(latestCommit, 20) <span>@user(latestCommit.authorName, latestCommit.authorEmailAddress, "username strong")</span> <span class="muted"> authored @helper.html.datetimeago(latestCommit.authorTime)</span> </div> @if(latestCommit.isDifferentFromAuthor) { <div class="committer"> <span class="icon-arrow-right"></span> <span>@user(latestCommit.committerName, latestCommit.committerEmailAddress, "username strong")</span> <span class="muted"> committed @helper.html.datetimeago(latestCommit.commitTime)</span> </div> } </div> </div> </td> </tr> @if(pathList.size > 0){ <tr> <td width="16"></td> <td><a href="@url(repository)@if(pathList.size > 1){/tree/@encodeRefName(branch)/@pathList.init.mkString("/")}">..</a></td> <td></td> <td></td> </tr> } @files.map { file => <tr> <td width="16"> @if(file.isDirectory){ @if(file.linkUrl.isDefined){ <img src="@assets/common/images/folder_link.png"/> } else { <img src="@assets/common/images/folder.png"/> } } else { <img src="@assets/common/images/file.png"/> } </td> <td> @if(file.isDirectory){ @if(file.linkUrl.isDefined){ <a href="@file.linkUrl"> <span class="simplified-path">@file.name.split("/").toList.init match { case Nil => {} case list => {@list.mkString("", "/", "/")} }</span>@file.name.split("/").toList.last </a> } else { <a href="@url(repository)/tree@{(encodeRefName(branch) :: pathList).mkString("/", "/", "/")}@file.name"> <span class="simplified-path">@file.name.split("/").toList.init match { case Nil => {} case list => {@list.mkString("", "/", "/")} }</span>@file.name.split("/").toList.last </a> } } else { <a href="@url(repository)/blob@{(encodeRefName(branch) :: pathList).mkString("/", "/", "/")}@file.name">@file.name</a> } </td> <td class="mute"> <a href="@url(repository)/commit/@file.commitId" class="commit-message">@link(file.message, repository)</a> [@user(file.author, file.mailAddress)] </td> <td style="text-align: right;">@helper.html.datetimeago(file.time, false)</td> </tr> } </table> @readme.map { case(filePath, content) => <div id="readme"> <div class="box-header">@filePath.reverse.head</div> <div class="box-content markdown-body">@renderMarkup(filePath, content, branch, repository, false, false)</div> </div> } } }