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
**@
@import play.data.Form
@import org.apache.commons.lang3.StringUtils
@(title:String, issueForm: Form[Issue], project:Project, issueTemplate:String = "")
@import helper._
@import scala.collection.mutable.Map
@import models.enumeration.ResourceType
@import models.enumeration.Operation
@import utils.AccessControl._
@import utils.TemplateHelper._
@import controllers.UserApp
@parentIssueId = @{
    play.mvc.Http.Context.current().request().getQueryString("parentIssueId")
}
@commentId = @{
    play.mvc.Http.Context.current().request().getQueryString("commentId")
}
    @isFromGlobalMenuNew = @{
    routes.IssueApp.newDirectIssueForm().toString().equals(requestHeader.path) ||
            routes.IssueApp.newDirectMyIssueForm().toString().equals(requestHeader.path)
}
@projectLayout(Messages(title), project, utils.MenuType.ISSUE) {
@projectMenu(project, utils.MenuType.ISSUE, "main-menu-only")
<div class="page-wrap-outer">
    <div class="project-page-wrap">
    	<div class="content-wrap frm-wrap">
    	@form(action = routes.IssueApp.newIssue(project.owner, project.name), 'id -> "issue-form", 'enctype -> "multipart/form-data" ) {
        <div class="row-fluid">
            <div class="span12">
                <dl>
                    <dd>
                    	@defining(issueForm.errors().get("title")) { errors =>
                            <div class="span12">
                                <div class="span11">
                                    <input type="text" id="title" name="title" value="" class="text title @if(errors != null) {error}" maxlength="250" tabindex="1" placeholder="@Messages("title")" autocomplete="off" title="@Messages("title.help.key")">
                                </div>
                                <div class="span1 subtask-message">@Messages("issue.option")</div>
                            </div>
    	                    @if(errors != null) {
    							<div class="message">
    							@for(error <- errors) {
    								<div>@Messages(error.message)</div>
    							}
    							</div>
    						}
                            @if(StringUtils.isNotEmpty(parentIssueId)) {
                                @partial_select_subtask(project, Long.parseLong(parentIssueId), null)
                            } else {
                                @partial_select_subtask(project, null, null)
                            }
    					}
                    </dd>
                </dl>
            </div>
            <div class="row-fluid">
                <div class="span9 span-left-pane">
                    <dl>
                        <dd style="position: relative;">
                        @if(StringUtils.isNotBlank(parentIssueId)) {
                            @common.editor("body", "", "tabindex=2", "content-body")
                        } else {
                            @common.editor("body", issueTemplate, "tabindex=2", "content-body")
                        }
                        </dd>
                    </dl>
                    @** fileUploader **@
                    @if(!UserApp.currentUser.isAnonymous) {
                        @common.fileUploader(ResourceType.ISSUE_POST, null)
                    }
                    @** end of fileUploader **@
                    <div class="actrow right-txt">
                        <button type="submit" id="button-save" class="ybtn ybtn-success">@Messages("button.save")</button>
                        <button type="button" id="draft-save-btn" class="ybtn ybtn-watching draft-save-btn">@Messages("button.draft.save")</button><!--
                     --><a href="javascript:history.back();" class="ybtn">@Messages("button.cancel")</a>
                    </div>
                </div>
                <div class="span3 span-hard-wrap right-menu">
                    @if(isProjectResourceCreatable(UserApp.currentUser(), project, ResourceType.ISSUE_ASSIGNEE)) {
                    <dl class="issue-option">
                         <dt>@Messages("issue.assignee")</dt>
                         <dd>
                             @partial_assignee(project, null)
                         </dd>
                    </dl>
                    }
                    @if(project.menuSetting.milestone && isProjectResourceCreatable(UserApp.currentUser(), project, ResourceType.ISSUE_MILESTONE)) {
                        <dl id="milestoneOption" class="issue-option">
                            <dt>@Messages("milestone")</dt>
                            <dd>
                            @defining(Milestone.findOpenMilestones(project.id)) { milestones =>
                                @if(milestones.isEmpty()) {
                                    <a href="@routes.MilestoneApp.newMilestoneForm(project.owner, project.name)"
                                       class="ybtn ybtn-small ybtn-fullsize" target="_blank">
                                        @Messages("milestone.menu.new")
                                    </a>
                                } else {
                                    <select id="milestoneId" name="milestoneId"
                                            data-toggle="select2" data-format="milestone" data-container-css-class="fullsize">
                                        <option value="@Milestone.NULL_MILESTONE_ID" selected="selected">@Messages("issue.noMilestone")</option>
                                        @for(milestone <- milestones){
                                        <option value="@milestone.id" data-state="@milestone.state">
                                            @milestone.title
                                        </option>
                                        }
                                    </select>
                                }
                            }
                            </dd>
                        </dl>
                    }
                    <dl class="issue-option">
                        <dt>@Messages("issue.dueDate")</dt>
                        <dd>
                            <div class="search search-bar">
                                <input type="text" id="issueDueDate" data-toggle="calendar" name="dueDate" class="textbox full">
                                <button type="button" class="search-btn btn-calendar"><i class="yobicon-calendar2"></i></button>
                            </div>
                        </dd>
                    </dl>
                    @partial_select_label(IssueLabel.findByProject(project), null, "issue-option", "data-close-on-select=false", project)
                    <input type="hidden" name="referCommentId" value="@commentId">
                    <input type="hidden" id="isDraft" name="isDraft" value="false">
                </div>
            </div>
        </div>
        } @** end of form **@
    	</div>
    </div>
</div>
@common.markdown(project)
@common.select2()
@common.calendar()
<link rel="stylesheet" type="text/css" media="screen" href="@routes.IssueLabelApp.labelStyles(project.owner, project.name)">
<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/yona.Subtask.js")"></script>
<script type="text/javascript" src="@routes.Assets.at("javascripts/service/yona.issue.Assginee.js")"></script>
<script type="text/jAvascript" src="@routes.Assets.at("javascripts/common/yona.TitleHeadAutoCompletion.js")"></script>
<script type="text/javascript">
    $(function(){
        // yobi.issue.Write
        $yobi.loadModule("issue.Write", {
            "sMode"		   : "new",
            "sIssueFormURL": "@routes.IssueApp.newIssueForm(project.owner, project.name)",
            "sIssueListURL": "@routes.IssueApp.issues(project.owner, project.name)",
            "elTextarea"   : 'textarea[data-editor-mode="content-body"]',
            "elMilestoneRefresh": $("#milestoneOption .yobicon-refresh"),
            "elDueDate"    : $("#issueDueDate")
        });
        // yobi.Mention
        yobi.Mention({
            "target": 'textarea[id^=editor-]',
            "url"   : "@routes.ProjectApp.mentionList(project.owner, project.name)"
        });
        if(@isFromGlobalMenuNew) {
            $(".subtask-message").trigger("click");
        }
        yonaAssgineeModule(
                "@api.routes.IssueApi.findAssignableUsersOfProject(project.owner, project.name)",
                "",
                "@Messages("issue.assignee")"
        );
        yonaTitleHeadModule({
            "target": 'input[id=title]',
            "url"   : "@api.routes.ProjectApi.titleHeads(project.owner, project.name)"
        });
        $('#button-save').on('click', function(){
            var $this = $(this);
            $this.prop('disabled', true);
            setTimeout(function (){
                $this.prop('disabled', false);
            }, 3000);
            $('#issue-form').submit();
        });
        tippy('#draft-save-btn', {
            content: '@Messages("button.draft.save.description")',
            placement: 'top',
            maxWidth: 'none',
        });
        $('#draft-save-btn').on('click', function(){
            var $this = $(this);
            $this.prop('disabled', true);
            setTimeout(function (){
                $this.prop('disabled', false);
            }, 3000);
            $('#isDraft').val('true');
            $('#issue-form').submit();
        });
    });
</script>
}