Newer
Older
GitBucket / src / main / twirl / gitbucket / core / repo / commits.scala.html
@Naoki Takezoe Naoki Takezoe on 16 Mar 2016 3 KB Simplify commit list
@(pathList: List[String],
  branch: String,
  repository: gitbucket.core.service.RepositoryService.RepositoryInfo,
  commits: Seq[Seq[gitbucket.core.util.JGitUtil.CommitInfo]],
  page: Int,
  hasNext: Boolean,
  hasWritePermission: Boolean)(implicit context: gitbucket.core.controller.Context)
@import context._
@import gitbucket.core.view.helpers._
@html.main(s"${repository.owner}/${repository.name}", Some(repository)) {
  @html.menu("code", repository){
    <div class="head">
      @if(pathList.isEmpty){
        @helper.html.branchcontrol(
          branch,
          repository,
          hasWritePermission
        ){
          @repository.branchList.map { x =>
            <li><a href="@url(repository)/commits/@encodeRefName(x)">@helper.html.checkicon(x == branch) @x</a></li>
          }
        }
      }
      @if(pathList.nonEmpty){
        <span class="muted">History for</span>
        <a class="strong" href="@url(repository)/tree/@encodeRefName(branch)">@repository.name</a> /
        @pathList.zipWithIndex.map { case (section, i) =>
          @if(i == pathList.length - 1){
            <span class="strong">@section</span>
          } else {
            <a class="strong" href="@url(repository)/tree/@encodeRefName(branch)/@pathList.take(i + 1).mkString("/")">@section</a> /
          }
        }
      }
    </div>

    @commits.map { day =>
      <div class="muted">
        <i class="octicon octicon-git-commit"></i> Commits on @date(day.head.commitTime)
      </div>
      <div class="list-group">
        @day.map { commit =>
          <div class="list-group-item">
            <div class="btn-group pull-right">
              <a href="@url(repository)/commit/@commit.id" class="btn btn-default monospace">@commit.id.substring(0, 7)</a>
              <a href="@url(repository)/tree/@commit.id" class="btn btn-default"><i class="octicon octicon-code link"></i></a>
            </div>
            <div>
              <div class="commit-avatar-image">@avatarLink(commit, 40)</div>
              <div>
                <a href="@url(repository)/commit/@commit.id" class="commit-message" style="font-weight: bold;">@link(commit.summary, repository)</a>
                @if(commit.description.isDefined){
                  <a href="javascript:void(0)" onclick="$('#description-@commit.id').toggle();" class="omit">...</a>
                }
                <br>
                @if(commit.description.isDefined){
                  <pre id="description-@commit.id" style="display: none;" class="commit-description">@link(commit.description.get, repository)</pre>
                }
                <div>
                  @user(commit.authorName, commit.authorEmailAddress, "username")
                  <span class="muted">authored @helper.html.datetimeago(commit.authorTime)</span>
                  @if(commit.isDifferentFromAuthor) {
                    <span class="octicon octicon-arrow-right" style="margin-top : -2px;"></span>
                    @user(commit.committerName, commit.committerEmailAddress, "username")
                    <span class="muted">committed @helper.html.datetimeago(commit.authorTime)</span>
                  }
                </div>
              </div>
            </div>
          </div>
        }
      </div>
    }

    <nav style="text-align: center; margin-top: 30px">
      <ul class="pagination">
        @if(page <= 1){
          <li class="disabled"><span>Newer</span></li>
        } else {
          <li><a href="?page=@{page - 1}">Newer</a></li>
        }
        @if(!hasNext){
          <li class="disabled"><span>Older</span></li>
        } else {
          <li><a href="?page=@{page + 1}">Older</a></li>
        }
      </ul>
    </nav>
  }
}