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>
}