Newer
Older
gitbucket_jkp / src / main / twirl / helper / activities.scala.html
@Naoki Takezoe Naoki Takezoe on 28 Jun 2014 4 KB (refs #310)Convert all CRLF to LF
@(activities: List[model.Activity])(implicit context: app.Context)
@import context._
@import view.helpers._

@if(activities.isEmpty){
  No activity
} else {
  @activities.map { activity =>
    <div class="block">
      @(activity.activityType match {
        case "open_issue"        => detailActivity(activity, "activity-issue.png")
        case "comment_issue"     => detailActivity(activity, "activity-comment.png")
        case "close_issue"       => detailActivity(activity, "activity-issue-close.png")
        case "reopen_issue"      => detailActivity(activity, "activity-issue-reopen.png")
        case "open_pullreq"      => detailActivity(activity, "activity-merge.png")
        case "merge_pullreq"     => detailActivity(activity, "activity-merge.png")
        case "create_repository" => simpleActivity(activity, "activity-create-repository.png")
        case "create_branch"     => simpleActivity(activity, "activity-branch.png")
        case "delete_branch"     => simpleActivity(activity, "activity-delete.png")
        case "create_tag"        => simpleActivity(activity, "activity-tag.png")
        case "delete_tag"        => simpleActivity(activity, "activity-delete.png")
        case "fork"              => simpleActivity(activity, "activity-fork.png")
        case "push"  => customActivity(activity, "activity-commit.png"){
          <div class="small activity-message">
            {activity.additionalInfo.get.split("\n").reverse.take(4).zipWithIndex.map{ case (commit, i) =>
              if(i == 3){
                <div>...</div>
              } else {
                if(commit.nonEmpty){
                  <div>
                     <a href={s"${path}/${activity.userName}/${activity.repositoryName}/commit/${commit. substring(0, 40)}"} class="monospace">{commit.substring(0, 7)}</a>
                     <span>{commit.substring(41)}</span>
                  </div>
                }
              }
            }}
          </div>
        }
        case "create_wiki" => customActivity(activity, "activity-wiki.png"){
          <div class="small activity-message">
            Created <a href={s"${path}/${activity.userName}/${activity.repositoryName}/wiki/${activity.additionalInfo.get}"}>{activity.additionalInfo.get}</a>.
          </div>
        }
        case "edit_wiki" => customActivity(activity, "activity-wiki.png"){
          activity.additionalInfo.get.split(":") match {
            case Array(pageName, commitId) =>
              <div class="small activity-message">
                Edited <a href={s"${path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}"}>{pageName}</a>.
                <a href={s"${path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}/_compare/${commitId.substring(0, 7)}^...${commitId.substring(0, 7)}"}>View the diff ยป</a>
              </div>
            case Array(pageName) =>
              <div class="small activity-message">
                Edited <a href={s"${path}/${activity.userName}/${activity.repositoryName}/wiki/${pageName}"}>{pageName}</a>.
              </div>
          }
        }
      })
    </div>
  }
}

@detailActivity(activity: model.Activity, image: String) = {
  <div class="activity-icon-large"><img src="@assets/common/images/@image"/></div>
  <div class="activity-content">
    <div class="muted small">@datetime(activity.activityDate)</div>
    <div class="strong">
      @avatar(activity.activityUserName, 16)
      @activityMessage(activity.message)
    </div>
    @activity.additionalInfo.map { additionalInfo =>
      <div class=" activity-message">@additionalInfo</div>
    }
  </div>
}

@customActivity(activity: model.Activity, image: String)(additionalInfo: Any) = {
  <div class="activity-icon-large"><img src="@assets/common/images/@image"/></div>
  <div class="activity-content">
    <div class="muted small">@datetime(activity.activityDate)</div>
    <div class="strong">
      @avatar(activity.activityUserName, 16)
      @activityMessage(activity.message)
    </div>
    @additionalInfo
  </div>
}

@simpleActivity(activity: model.Activity, image: String) = {
  <div class="activity-icon-small"><img src="@assets/common/images/@image"/></div>
  <div class="activity-content">
    <div>
      @avatar(activity.activityUserName, 16)
      @activityMessage(activity.message)
      <span class="muted small">@datetime(activity.activityDate)</span>
    </div>
  </div>
}