- Posts and topics have an added moderation_reports function -- This is so all moderation reports can be loaded in a single query - Those moderation reports are passed into the render functions separately -- This is so the individual comments/posts don't have to be queried
70 lines
3.5 KiB
Plaintext
70 lines
3.5 KiB
Plaintext
<%# locals: comment, context, dtext_data, moderation_reports %>
|
|
|
|
<% if CurrentUser.is_moderator? || (params[:search] && params[:search][:is_deleted] =~ /t/) || !comment.is_deleted? %>
|
|
<a name="comment-<%= comment.id %>"></a>
|
|
<article id="comment_<%= comment.id %>" class="comment message"
|
|
data-id="<%= comment.id %>"
|
|
data-post-id="<%= comment.post_id %>"
|
|
data-creator-id="<%= comment.creator_id %>"
|
|
data-updater-id="<%= comment.updater_id %>"
|
|
data-score="<%= comment.score %>"
|
|
data-do-not-bump-post="<%= comment.do_not_bump_post? %>"
|
|
data-is-deleted="<%= comment.is_deleted? %>"
|
|
data-is-sticky="<%= comment.is_sticky? %>"
|
|
data-below-threshold="<%= comment.score < CurrentUser.user.comment_threshold %>"
|
|
<% if CurrentUser.is_moderator? %>
|
|
data-is-reported="<%= moderation_reports.pluck(:model_id).include?(comment.id) %>"
|
|
<% end %>
|
|
data-is-voted="<%= comment.voted_by?(CurrentUser.user) %>">
|
|
<div class="author">
|
|
<h4>
|
|
<%= link_to_user comment.creator %>
|
|
<% if comment.is_deleted? %>
|
|
(deleted)
|
|
<% end %>
|
|
</h4>
|
|
<%= link_to time_ago_in_words_tagged(comment.created_at), post_path(comment.post, anchor: "comment_#{comment.id}"), class: "message-timestamp" %>
|
|
</div>
|
|
<div class="content">
|
|
<div class="body prose">
|
|
<%= format_text(comment.body, data: dtext_data) %>
|
|
</div>
|
|
<%= render "application/update_notice", record: comment %>
|
|
|
|
<% if CurrentUser.is_member? %>
|
|
<menu>
|
|
<% if context == :index_by_comment %>
|
|
<li><%= link_to "Reply", new_comment_path(id: comment, comment: { post_id: comment.post_id }), class: "reply-link" %></li>
|
|
<% else %>
|
|
<li><%= link_to "Reply", new_comment_path(id: comment, comment: { post_id: comment.post_id }), class: "reply-link", remote: true %></li>
|
|
<% end %>
|
|
|
|
<% if comment.editable_by?(CurrentUser.user) %>
|
|
<% if comment.is_deleted? %>
|
|
<li><%= link_to "Undelete", undelete_comment_path(comment.id), method: :post, remote: true %></li>
|
|
<% else %>
|
|
<li><%= link_to "Delete", comment_path(comment.id), "data-confirm": "Are you sure you want to delete this comment?", method: :delete, remote: true %></li>
|
|
<% end %>
|
|
<li><%= link_to "Edit", edit_comment_path(comment.id), id: "edit_comment_link_#{comment.id}", class: "edit_comment_link" %></li>
|
|
<% end %>
|
|
<li class="comment-vote-up-link">
|
|
<%= link_to "Vote up", comment_comment_votes_path(comment_id: comment.id, score: "up"), method: :post, remote: true %>
|
|
</li>
|
|
<li class="comment-vote-down-link">
|
|
<%= link_to "Vote down", comment_comment_votes_path(comment_id: comment.id, score: "down"), method: :post, remote: true %>
|
|
</li>
|
|
<li class="comment-unvote-link">
|
|
<%= link_to "Unvote", comment_comment_votes_path(comment_id: comment.id), method: :delete, remote: true %>
|
|
</li>
|
|
<% if comment.reportable_by?(CurrentUser.user) %>
|
|
<li><%= link_to "Report comment", new_moderation_report_path(moderation_report: { model_type: "Comment", model_id: comment.id }), remote: true %></li>
|
|
<% end %>
|
|
</menu>
|
|
<% if comment.editable_by?(CurrentUser.user) %>
|
|
<%= render "comments/form", comment: comment, hidden: true %>
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
</article>
|
|
<% end %>
|