* Let the user see their own username when viewing their own deleted comments. * Don't hide the creator_id field from the comment creator in the API. * Hide the score, do_not_bump_post, and is_sticky fields for deleted comments in the HTML and in the API, unless the user is a moderator. * Hide the "..." popup menu on deleted comments, unless the user is a moderator. This is so that when a user looks at their own comment history, their name isn't hidden from them on their own deleted comments. This may confuse users however into thinking their name is still visible to other users.
158 lines
6.7 KiB
Plaintext
158 lines
6.7 KiB
Plaintext
<article id="comment_<%= comment.id %>" class="comment message"
|
|
x-data="{ showThresholded: false }"
|
|
x-bind:data-show-thresholded="String(showThresholded)"
|
|
data-id="<%= comment.id %>"
|
|
data-post-id="<%= comment.post_id %>"
|
|
data-creator-id="<%= comment.creator_id if can_see_creator? %>"
|
|
data-updater-id="<%= comment.updater_id unless redact_deleted? %>"
|
|
data-score="<%= comment.score unless redact_deleted? %>"
|
|
data-do-not-bump-post="<%= comment.do_not_bump_post? unless redact_deleted? %>"
|
|
data-is-deleted="<%= comment.is_deleted? %>"
|
|
data-is-sticky="<%= comment.is_sticky? unless redact_deleted? %>"
|
|
data-is-dimmed="<%= dimmed? %>"
|
|
data-is-thresholded="<%= thresholded? %>"
|
|
data-is-reported="<%= reported? %>"
|
|
data-is-upvoted="<%= upvoted? %>"
|
|
data-is-downvoted="<%= downvoted? %>"
|
|
data-show-thresholded="false">
|
|
|
|
<div class="author">
|
|
<div class="author-name">
|
|
<% if redact_deleted? && !can_see_creator? %>
|
|
[deleted]
|
|
<% else %>
|
|
<%= link_to_user comment.creator %>
|
|
<% if comment.is_deleted? %>
|
|
[deleted]
|
|
<% end %>
|
|
<% end %>
|
|
</div>
|
|
<%= link_to time_ago_in_words_tagged(comment.created_at), comment, class: "message-timestamp", rel: "nofollow" %>
|
|
</div>
|
|
|
|
<div class="content">
|
|
<%= link_to "[hidden]", "javascript:void(0)", class: "unhide-comment-link", "x-on:click": "showThresholded = true" %>
|
|
|
|
<%= tag.div class: "body prose" do %>
|
|
<% if redact_deleted? %>
|
|
<p>[deleted]</p>
|
|
<% else %>
|
|
<%= format_text(comment.body, data: dtext_data) %>
|
|
<% end %>
|
|
|
|
<%= render "application/update_notice", record: comment %>
|
|
<% end %>
|
|
|
|
<menu class="mt-2">
|
|
<% if votable? %>
|
|
<li class="comment-votes">
|
|
<% if current_user.is_anonymous? %>
|
|
<%= link_to upvote_icon, login_path(url: request.fullpath), class: "comment-upvote-link inactive-link" %>
|
|
<% elsif upvoted? %>
|
|
<%= link_to upvote_icon, comment_vote_path(current_vote), class: "comment-upvote-link comment-unvote-link active-link", method: :delete, remote: true %>
|
|
<% else %>
|
|
<%= link_to upvote_icon, comment_comment_votes_path(comment_id: comment.id, score: "1"), class: "comment-upvote-link inactive-link", method: :post, remote: true %>
|
|
<% end %>
|
|
|
|
<span class="comment-score">
|
|
<% if policy(CommentVote).can_see_votes? %>
|
|
<%= link_to comment.score, comment_votes_path(search: { comment_id: comment.id }, variant: "compact"), class: "inactive-link" %>
|
|
<% else %>
|
|
<%= comment.score %>
|
|
<% end %>
|
|
</span>
|
|
|
|
<% if current_user.is_anonymous? %>
|
|
<%= link_to downvote_icon, login_path(url: request.fullpath), class: "comment-downvote-link inactive-link" %>
|
|
<% elsif downvoted? %>
|
|
<%= link_to downvote_icon, comment_vote_path(current_vote), class: "comment-downvote-link comment-unvote-link active-link", method: :delete, remote: true %>
|
|
<% else %>
|
|
<%= link_to downvote_icon, comment_comment_votes_path(comment_id: comment.id, score: "-1"), class: "comment-downvote-link inactive-link", method: :post, remote: true %>
|
|
<% end %>
|
|
</li>
|
|
<% end %>
|
|
|
|
<% if policy(comment).reply? %>
|
|
<li class="comment-reply">
|
|
<% if current_user.is_anonymous? %>
|
|
<%= link_to "Reply", login_path(url: request.fullpath) %>
|
|
<% elsif context == :index_by_comment %>
|
|
<%= link_to "Reply", new_comment_path(id: comment, comment: { post_id: comment.post_id }) %>
|
|
<% else %>
|
|
<%= link_to "Reply", new_comment_path(id: comment, comment: { post_id: comment.post_id }), remote: true %>
|
|
<% end %>
|
|
</li>
|
|
<% end %>
|
|
|
|
<% if reported? %>
|
|
<li class="moderation-report-notice">
|
|
Reported (<%= link_to pluralize(comment.pending_moderation_reports.length, "report"), moderation_reports_path(search: { model_type: "Comment", model_id: comment.id, status: "pending" }) %>)
|
|
</li>
|
|
<% end %>
|
|
|
|
<% unless redact_deleted? %>
|
|
<%= render PopupMenuComponent.new do |menu| %>
|
|
<% if policy(comment).update? %>
|
|
<% menu.item do %>
|
|
<%= link_to edit_comment_path(comment.id), id: "edit_comment_link_#{comment.id}", class: "edit_comment_link" do %>
|
|
<%= edit_icon %> Edit
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% menu.item do %>
|
|
<% if comment.is_deleted? %>
|
|
<%= link_to comment_path(comment.id), "data-params": "comment[is_deleted]=false", method: :put, remote: true do %>
|
|
<%= undelete_icon %> Undelete
|
|
<% end %>
|
|
<% else %>
|
|
<%= link_to comment_path(comment.id), "data-params": "comment[is_deleted]=true", "data-confirm": "Are you sure you want to delete this comment?", method: :put, remote: true do %>
|
|
<%= delete_icon %> Delete
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if policy(comment).can_sticky_comment? %>
|
|
<% menu.item do %>
|
|
<% if comment.is_sticky? %>
|
|
<%= link_to comment_path(comment.id), "data-params": "comment[is_sticky]=false", method: :put, remote: true do %>
|
|
<%= unsticky_icon %> Unsticky
|
|
<% end %>
|
|
<% else %>
|
|
<%= link_to comment_path(comment.id), "data-params": "comment[is_sticky]=true", method: :put, remote: true do %>
|
|
<%= sticky_icon %> Sticky
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% if policy(comment).reportable? %>
|
|
<% menu.item do %>
|
|
<%= link_to new_moderation_report_path(moderation_report: { model_type: "Comment", model_id: comment.id }), remote: true do %>
|
|
<%= flag_icon %> Report
|
|
<% end %>
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% menu.item do %>
|
|
<%= link_to comment_path(comment.id), class: "comment-copy-id" do %>
|
|
<%= hashtag_icon %> Copy ID
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% menu.item do %>
|
|
<%= link_to comment_path(comment.id), class: "comment-copy-link" do %>
|
|
<%= link_icon %> Copy Link
|
|
<% end %>
|
|
<% end %>
|
|
|
|
<% end %>
|
|
<% end %>
|
|
</menu>
|
|
|
|
<% if policy(comment).update? && !redact_deleted? %>
|
|
<%= render "comments/form", comment: comment, hidden: true %>
|
|
<% end %>
|
|
</div>
|
|
</article>
|