File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
@**
* Yona, 21st Century Project Hosting SW
*
* Copyright Yona & Yobi Authors & NAVER Corp. & NAVER LABS Corp.
* https://yona.io
**@
@(project: Project, pull: PullRequest, canDeleteBranch: Boolean, canRestoreBranch: Boolean)
@import utils.JodaDateUtil
@import utils.TemplateHelper._
@import utils.TemplateHelper.DiffRenderer._
@import utils.AccessControl._
@import models.enumeration
@import scala.collection.JavaConversions._
@import play.libs.Json.toJson
@import utils.Markdown
@projectLayout(Messages("menu.pullRequest"), project, utils.MenuType.PULL_REQUEST) {
@projectMenu(project, utils.MenuType.PULL_REQUEST, "main-menu-only")
<div class="page-wrap-outer">
<div class="project-page-wrap">
@partial_info(project, pull, "overview")
<div class="board-body">
<div class="author-info left-txt" style="margin-top:20px;">
<a href="@routes.UserApp.userInfo(pull.contributor.loginId)" class="usf-group pull-left">
<span class="avatar-wrap smaller">
<img src="@pull.contributor.avatarUrl" width="32" height="32">
</span>
<strong class="name">@pull.contributor.name</strong>
<span class="loginid"> <strong>@{"@"}</strong>@pull.contributor.loginId</span>
</a>
@partial_branch(pull)
</div>
<div class="content markdown-wrap">@Html(Markdown.render(pull.body, project))</div>
<div class="attachments" data-attachments="@toJson(AttachmentApp.getFileList(ResourceType.PULL_REQUEST.toString(), pull.id.toString()))"></div>
</div>
<div id="state" class="pullRequest-stateInfo">
@partial_state(project, pull, canDeleteBranch, canRestoreBranch)
</div>
<div class="board-footer board-actrow">
<div class="pull-left">
@if(isAllowed(UserApp.currentUser(), pull.asResource(), Operation.WATCH)) {
<button id="watch-button" type="button" class="ybtn @if(pull.getWatchers(false).contains(UserApp.currentUser())) { ybtn-watching }" data-toggle="button" data-watching="@if(pull.getWatchers(false).contains(UserApp.currentUser())){true}else{false}">
@if(pull.getWatchers(false).contains(UserApp.currentUser())) {
@Messages("project.unwatch")
} else {
@Messages("project.watch")
}
</button>
}
</div>
<div class="mr5" style="display:inline-block;">
@if(isAllowed(UserApp.currentUser(), pull.asResource(), Operation.UPDATE)) {
<a href="@routes.PullRequestApp.editPullRequestForm(pull.toProject.owner, pull.toProject.name, pull.number)" class="ybtn">@Messages("button.edit")</a>
}
@if(pull.isOpen() && isAllowed(UserApp.currentUser(), pull.asResource(), Operation.CLOSE)) {
<a data-request-method="post" href="@routes.PullRequestApp.close(project.owner, project.name, pull.number)" class="ybtn">@Messages("pullRequest.close")</a>
}
@if(pull.isClosed() && isAllowed(UserApp.currentUser(), pull.asResource(), Operation.REOPEN)) {
<a data-request-method="post" href="@routes.PullRequestApp.open(project.owner, project.name, pull.number)" class="ybtn">@Messages("pullRequest.reopen")</a>
}
</div>
</div>
<hr class="nm">
<div class="board-comment-wrap">
@if(pull.pullRequestEvents.size > 0) {
<ul class="comments" id="comments">
@renderEventsOnPullRequest(pull)
</ul>
}
</div>
<div class="right-txt">
<a href="#helpMessage" class="ybtn ybtn-inverse ybtn-mini" data-toggle="modal">@Messages("title.help")</a>
</div>
</div>
</div>
@common.markdown(project)
@common.commentDeleteModal()
<div id="helpMessage" class="modal hide fade pullreq-info">
<div class="modal-header">
<h5>@Messages("pullRequest.merge.help.1")</h5>
</div>
<div class="modal-body">
<div class="row-fluid">
<div class="pull-left">
<img class="img-polaroid" src="@routes.Assets.at("images/fork-pull/merge.jpg")"><br>
</div>
<div class="pull-left help-messages mt10">
<p>@Messages("pullRequest.merge.help.2")</p>
<p>@Messages("pullRequest.merge.help.3")</p>
<p>@Messages("pullRequest.merge.help.4")</p>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="ybtn ybtn-info ybtn-small" data-dismiss="modal">@Messages("button.confirm")</button>
</div>
</div>
<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/lib/diff.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/common/yobi.Interval.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/common/yobi.CodeCommentBox.js")"></script>
<script type="text/javascript">
$(document).ready(function() {
$yobi.loadModule("git.View", {
"sWatchUrl" : "@routes.WatchApp.watch(pull.asResource.asParameter)",
"sUnwatchUrl": "@routes.WatchApp.unwatch(pull.asResource.asParameter)",
"sStateUrl" : "@routes.PullRequestApp.pullRequestState(pull.toProject.owner, pull.toProject.name, pull.number)",
"bCommentable" : "@isProjectResourceCreatable(UserApp.currentUser, project, ResourceType.REVIEW_COMMENT)"
});
yobi.Mention({
target:'textarea[id^=editor-]',
@if(pull.getCurrentCommits.isEmpty) {
url : "@Html(routes.ProjectApp.mentionListAtPullRequest(pull.toProject.owner, pull.toProject.name, "", pull.id).toString())"
} else {
url : "@Html(routes.ProjectApp.mentionListAtPullRequest(pull.toProject.owner, pull.toProject.name, pull.getCurrentCommits.get(0).getCommitId, pull.id).toString())"
}
});
$("button.moreBtn").on("click", function(){
$(this).next("pre.commitMsg.desc").toggleClass("hidden");
});
// detect comment which contains mention at me
$(".comment-body:contains('@UserApp.currentUser().getPureNameOnly')").closest(".comment").addClass("mentioned");
$(".user-link:contains('@UserApp.currentUser().getPureNameOnly')").addClass("me");
});
</script>
}