[Notice] Announcing the End of Demo Server [Read me]
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
@**
* Yobi, Project Hosting SW
*
* Copyright 2012 NAVER Corp.
* http://yobi.io
*
* @author Yi EungJun
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**@
@(project: Project, commit:playRepository.Commit,
parentCommit:playRepository.Commit, threads:List[CommentThread], selectedBranch:String, diff:
List[playRepository.FileDiff],path:String)
@import playRepository.RepositoryService
@import java.net.URLEncoder
@import utils.TemplateHelper._
@import utils.TemplateHelper.DiffRenderer._
@import utils.JodaDateUtil
@import utils.AccessControl._
@import scala.collection.JavaConversions._
@projectLayout(Messages("code.commits") + " @" + commit.getId, project, utils.MenuType.CODE) {
@projectMenu(project, utils.MenuType.CODE, "main-menu-only")
<div class="page-wrap-outer">
<div class="project-page-wrap">
<div id="code-browse-wrap" class="code-browse-wrap">
<ul class="nav nav-tabs" style="margin-bottom:20px;">
<li>
<a href="@routes.CodeApp.codeBrowser(project.owner, project.name)">@Messages("code.files")</a>
</li>
<li class="active">
<a href="@routes.CodeHistoryApp.historyUntilHead(project.owner, project.name)">@Messages("code.commits")</a>
</li>
@if(project.isGit()) {
<li>
<a href="@routes.BranchApp.branches(project.owner, project.name)">@Messages("title.branches")</a>
</li>
}
</ul>
<div class="codediff-wrap">
<button type="button" class="ybtn ybtn-default btn-show-reviewcards">
<i class="yobicon-restore"></i>
</button>
<div class="diffs-wrap">
<div class="commitInfo">
<div class="commitAuthor">
@(commit.getAuthor, commit.getAuthorEmail, commit.getAuthorName) match {
case (user: User, _, _) if !user.isAnonymous => {
<a href="@routes.UserApp.userInfo(commit.getAuthor.loginId)" class="avatar-wrap smaller">
<img src="@commit.getAuthor.avatarUrl" alt="@commit.getAuthor.name" width="32" height="32"/>
</a>
<strong>@commit.getAuthor.name</strong>
}
case (_, email, name) if email != null => {
<span class="avatar-wrap smaller">
<img src="@urlToPicture(commit.getAuthorEmail, 32)" width="32" height="32">
</span>
@if(name != null) {
<strong>@name</strong>
}
}
case (_, _, name) if name != null => {
<strong>@name</strong>
}
case (_, _, _) => {
<strong>@User.anonymous.name</strong>
}
}
<span class="ago" title="@JodaDateUtil.getDateString(commit.getAuthorDate)">
@agoOrDateString(commit.getAuthorDate)
</span>
</div>
<div class="commitMsg-wrap">
@common.commitMsg(commit.getShortMessage, commit.getMessage, "", true)
</div>
<div class="commitId-wrap">
<strong class="commitId">@{"@"}@commit.getId</strong>
</div>
</div>
<div class="diff-body">
@views.html.partial_diff(diff, threads flatMap {
case (t: CodeCommentThread) => Some(t)
case _ => None
}, project, project)
<div class="btnPop"><button type="button" class="ybtn ybtn-info ybtn-small"><i class="yobicon-post2"></i></button></div>
</div>
<div class="board-comment-wrap">
<div class="non-ranged-threads-wrap">
@for(thread: CommentThread <- threads.sortBy(_.createdDate)) {
@thread match {
case (thread: NonRangedCodeCommentThread) => {
@partial_nonrange_codecomment_thread(thread)
}
case _ => { }
}
}
</div>
@common.commentForm(commit.asResource(project), ResourceType.COMMIT_COMMENT, routes.CodeHistoryApp.newComment(project.owner, project.name, commit.getId).toString())
</div>
@** BlockComment **@
@if(isProjectResourceCreatable(UserApp.currentUser, project, ResourceType.COMMIT_COMMENT)){
@common.reviewForm(project, ResourceType.COMMIT_COMMENT, routes.CodeHistoryApp.newComment(project.owner, project.name, commit.getId).toString())
}
@** // BlockComment **@
</div>
<div class="review-wrap">
<div class="review-container">
<button type="button" class="ybtn ybtn-default btn-hide-reviewcards">
<i class="yobicon-maximize"></i>
</button>
<ul class="nav nav-tabs" style="margin-bottom:10px;">
<li class="active"><a href="#reviewcards-open" data-toggle="tab">@Messages("issue.state.open") @threads.filter(v => v.state == CommentThread.ThreadState.OPEN).size</a></li>
<li><a href="#reviewcards-closed" data-toggle="tab">@Messages("issue.state.closed") @threads.filter(v => v.state == CommentThread.ThreadState.CLOSED).size</a></li>
</ul>
<div class="tab-content review-list">
<div id="reviewcards-open" class="tab-pane active">
@defining(threads.filter(v => v.state == CommentThread.ThreadState.OPEN)) { threads =>
@for(thread: CommentThread <- threads) {
<a href="#thread-@thread.id" class="review-card @thread.state.toString().toLowerCase()">
<p class="content">@thread.getFirstReviewComment().getContents()</p>
<span class="date" title="@utils.JodaDateUtil.getDateString(thread.createdDate)">
<span class="comments">
@if( thread.hasChildComments ){<i class="yobicon-comments"></i> @thread.reviewComments.size}
</span>
<span class="avatar-wrap smaller margin-right-5">
<img src="@User.findByLoginId(thread.author.loginId).avatarUrl" alt="@thread.author.name" />
</span>
@agoOrDateString(thread.createdDate)
</span>
</a>
}
}
</div>
<div id="reviewcards-closed" class="tab-pane">
@defining(threads.filter(v => v.state == CommentThread.ThreadState.CLOSED)) { threads =>
@for(thread: CommentThread <- threads) {
<a href="#thread-@thread.id" class="review-card @thread.state.toString().toLowerCase()">
<p class="content">@thread.getFirstReviewComment().getContents()</p>
<span class="date" title="@utils.JodaDateUtil.getDateString(thread.createdDate)">
<span class="comments">
@if( thread.hasChildComments ){<i class="yobicon-comments"></i> @thread.reviewComments.size}
</span>
<span class="avatar-wrap smaller margin-right-5">
<img src="@User.findByLoginId(thread.author.loginId).avatarUrl" alt="@thread.author.name" />
</span>
@agoOrDateString(thread.createdDate)
</span>
</a>
}
}
</div>
</div>
</div>
</div>
</div>
</div>
<button id="watch-button" type="button" class="pull-left ybtn @if(commit.getWatchers(project).contains(UserApp.currentUser())) { active ybtn-watching }" data-toggle="button">@Messages("notification.watch")</button>
<a href="@routes.CodeHistoryApp.history(project.owner, project.name, selectedBranch, path)" class="ybtn pull-right">@Messages("button.list")</a>
</div>
</div>
@common.markdown(project)
@common.commentDeleteModal("#code-browse-wrap")
@common.select2()
<link rel="stylesheet" type="text/css" media="screen" href="@routes.Assets.at("javascripts/lib/atjs/jquery.atwho.css")">
<script type="text/javascript" src="@routes.Assets.at("javascripts/lib/atjs/jquery.caret.min.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/lib/atjs/jquery.atwho.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/common/yobi.CodeCommentBlock.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/common/yobi.CodeCommentBox.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/lib/jquery/jquery-ui-1.10.4.custom.min.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/lib/jquery/jquery.cookie.js")"></script>
<script type="text/javascript">
$(document).ready(function(){
$yobi.loadModule("code.Diff", {
"bCommentable": @if(isProjectResourceCreatable(UserApp.currentUser, project, ResourceType.COMMIT_COMMENT)){true}else{false},
"sWatchUrl" : "@routes.WatchApp.watch(commit.asResource(project).asParameter)",
"sUnwatchUrl" : "@routes.WatchApp.unwatch(commit.asResource(project).asParameter)"
});
yobi.Mention({
target:'textarea[id^=editor-]',
url : "@Html(routes.ProjectApp.mentionListAtCommitDiff(project.owner, project.name, commit.getId).toString)"
});
yobi.Mention({
target:'review-editor',
url : "@Html(routes.ProjectApp.mentionListAtCommitDiff(project.owner, project.name, commit.getId).toString)"
});
});
</script>
}