@** * Yona, 21st Century Project Hosting SW * * Copyright Yona & Yobi Authors & NAVER Corp. & NAVER LABS Corp. * https://yona.io **@ @import models.enumeration.ResourceType @(posting:AbstractPosting, currentComment: Comment, resourceType:ResourceType) @import utils.Markdown @import utils.AccessControl._ @import utils.TemplateHelper._ @import utils.JodaDateUtil @avatarByLoginId(loginId: String, loginName: String, sameTypeAsPrevious: Boolean = false) = { } @linkToUser(loginId: String, loginName: String, showAvatar: Boolean = true) = { @loginId match { case (loginId: String) => { @if(showAvatar) { @avatarByLoginId(loginId, loginName) } @loginName } case _ => { Anonymous } } } @getDeleteUrl(comment:Comment) = @{ if(currentComment.getParent.isInstanceOf[Issue]) { routes.IssueApp.deleteComment(posting.project.owner, posting.project.name, posting.getNumber, comment.id) } else { routes.BoardApp.deleteComment(posting.project.owner, posting.project.name, posting.getNumber, comment.id) } } @getNewCommentUrl() = @{ if(currentComment.getParent.isInstanceOf[Issue]) { routes.IssueApp.newComment(posting.project.owner, posting.project.name, posting.getNumber).toString() } else { routes.BoardApp.newComment(posting.project.owner, posting.project.name, posting.getNumber).toString() } } @additionalConetents(comment:Comment) = { @utils.TemplateHelper.agoOrDateString(comment.createdDate) @if(isAllowed(UserApp.currentUser(), comment.asResource(), Operation.DELETE)) { x } } @getAuthor(authorId:Long) = @{ User.find.byId(authorId) }
@Messages("comment.oneline.comment.placeholder")
@for(comment <- currentComment.getChildComments) {
@Html(Markdown.render(comment.contents, posting.project)) - @linkToUser(getAuthor(comment.authorId).loginId, getAuthor(comment.authorId).getPureNameOnly, false) @additionalConetents(comment)
}
@if(isResourceCreatable(UserApp.currentUser, posting.asResource(), resourceType)) {
@common.child_commentForm(posting.asResource(), resourceType, getNewCommentUrl, currentComment.id)
}