mirror of
https://github.com/gitbucket/gitbucket.git
synced 2025-11-08 22:45:51 +01:00
111 lines
4.7 KiB
HTML
111 lines
4.7 KiB
HTML
@(branch: String,
|
|
repository: service.RepositoryService.RepositoryInfo,
|
|
pathList: List[String],
|
|
latestCommit: util.JGitUtil.CommitInfo,
|
|
files: List[util.JGitUtil.FileInfo],
|
|
readme: Option[(List[String], String)],
|
|
hasWritePermission: Boolean)(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){
|
|
<div class="head">
|
|
@helper.html.dropdown(
|
|
value = if(branch.length == 40) branch.substring(0, 10) else branch,
|
|
prefix = if(branch.length == 40) "tree" else if(repository.branchList.contains(branch)) "branch" else "tree",
|
|
mini = true
|
|
){
|
|
@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 on @datetime(latestCommit.authorTime)</span>
|
|
</div>
|
|
@if(latestCommit.isDiffrentCommitter) {
|
|
<div class="committer">
|
|
<span class="icon-arrow-right"></span>
|
|
<span>@user(latestCommit.committerName, latestCommit.committerEmailAddress, "username strong")</span>
|
|
<span class="muted"> committed on @datetime(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">@file.name</a>
|
|
} else {
|
|
<a href="@url(repository)/tree@{(encodeRefName(branch) :: pathList).mkString("/", "/", "/")}@file.name">@file.name</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;">@datetime(file.time)</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>
|
|
}
|
|
}
|
|
}
|