[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
@**
* Yobi, Project Hosting SW
*
* Copyright 2014 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.
**@
@(thread: CommentThread)
@import utils.JodaDateUtil
@import play.libs.Json.toJson
@import utils.Markdown
<div id="thread-@thread.id" data-state="@thread.state.toString().toLowerCase()"
class="comment-thread-wrap @thread.state.toString().toLowerCase()
@if(thread.isInstanceOf[CodeCommentThread] && thread.state == CommentThread.ThreadState.CLOSED){fold}"
@thread match {
case (t: CodeCommentThread) => {
data-toggle="CodeCommentThread" data-range-path="@t.codeRange.path"
data-range-startSide="@t.codeRange.startSide" data-range-startLine="@t.codeRange.startLine" data-range-startColumn="@t.codeRange.startColumn"
data-range-endSide="@t.codeRange.endSide" data-range-endLine="@t.codeRange.endLine" data-range-endColumn="@t.codeRange.endColumn"
}
case _ => {}
}
>
<div class="btn-thread-here btn-thread-minimize">
<button type="button" class="ybtn ybtn-default ybtn-small"><i class="yobicon-post2"></i></button>
</div>
<div class="thread-header">
<span class="badge state @thread.state.toString().toLowerCase()">
@Messages("issue.state." + thread.state.toString().toLowerCase())
</span>
<button type="button" class="ybtn ybtn-default ybtn-small btn-thread-minimize"><i class="yobicon-maximize"></i></button>
</div>
<ul class="comments">
@for(comment: ReviewComment <- thread.reviewComments) {
<li id="comment-@comment.id" class="comment">
<div class="comment-avatar">
<a href="@routes.UserApp.userInfo(comment.author.loginId)" class="avatar-wrap" data-toggle="tooltip" data-placement="top" title="@comment.author.name">
<img src="@User.findByLoginId(comment.author.loginId).avatarUrl" width="32" height="32" alt="@comment.author.loginId">
</a>
</div>
<div class="media-body">
<div class="meta-info">
<span class="comment_author pull-left">
<a href="@routes.UserApp.userInfo(comment.author.loginId)" data-toggle="tooltip" data-placement="top" title="@comment.author.name">
<strong>@comment.author.loginId </strong>
</a>
</span>
<span class="ago"><a href="#comment-@comment.id" title="@JodaDateUtil.getDateString(comment.createdDate)">@utils.TemplateHelper.agoOrDateString(comment.createdDate)</a></span>
@if(utils.AccessControl.isAllowed(UserApp.currentUser(), comment.asResource(), Operation.DELETE)){
<span class="edit pull-right">
<button class="btn-transparent pull-right close" data-toggle="comment-delete" data-request-uri="@routes.CommentApp.delete(comment.asResource.getType.resource, comment.asResource.getId)" title="@Messages("common.comment.delete")"><i class="yobicon-trash"></i></button>
</span>
}
</div>
<div class="comment-body markdown-wrap" data-via-email="@OriginalEmail.exists(comment.asResource)">@Html(Markdown.render(comment.getContents, comment.asResource().getProject()))</div>
<div class="attachments" data-attachments="@toJson(AttachmentApp.getFileList(comment.asResource().getType().toString(), comment.id.toString()))"></div>
</div>
</li>
}
</ul>
@partial_comment_form_on_thread(thread)
</div>