diff options
| author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-03-20 10:49:38 -0400 |
|---|---|---|
| committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-03-20 10:49:38 -0400 |
| commit | 2e1365d37bddf787c7089126c1a5ff1c623ab0e2 (patch) | |
| tree | b28ebb51e4070bfafea486984ca8e393a378f84c /app | |
| parent | c319edf970b238cfc795f54e44de41ddab48ea71 (diff) | |
| download | thoughts-2e1365d37bddf787c7089126c1a5ff1c623ab0e2.tar.gz thoughts-2e1365d37bddf787c7089126c1a5ff1c623ab0e2.tar.bz2 thoughts-2e1365d37bddf787c7089126c1a5ff1c623ab0e2.zip | |
Added mass pending comment deletion/markspamming
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/javascripts/admin/dashboard.coffee | 2 | ||||
| -rw-r--r-- | app/assets/stylesheets/admin/dashboard.scss | 5 | ||||
| -rw-r--r-- | app/controllers/admin/comments_controller.rb | 53 | ||||
| -rw-r--r-- | app/views/admin/comments/pending.haml | 52 |
4 files changed, 73 insertions, 39 deletions
| diff --git a/app/assets/javascripts/admin/dashboard.coffee b/app/assets/javascripts/admin/dashboard.coffee index 4fa6cd8..bc48315 100644 --- a/app/assets/javascripts/admin/dashboard.coffee +++ b/app/assets/javascripts/admin/dashboard.coffee | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ | 3 | # You can use CoffeeScript in this file: http://coffeescript.org/ |
| 4 | dash_ready = -> | 4 | dash_ready = -> |
| 5 | $(".datepicker").datepicker({"dateFormat": "yy-mm-dd"}) | 5 | $(".datepicker").datepicker({"dateFormat": "yy-mm-dd"}) |
| 6 | $("#check_all").change -> | ||
| 7 | $(".comment_ids").prop("checked", $(this).prop("checked")) | ||
| 6 | 8 | ||
| 7 | $(document).ready(dash_ready) | 9 | $(document).ready(dash_ready) |
| 8 | $(document).on('turbolinks:load', dash_ready) | 10 | $(document).on('turbolinks:load', dash_ready) |
| diff --git a/app/assets/stylesheets/admin/dashboard.scss b/app/assets/stylesheets/admin/dashboard.scss index 60c257a..44e13b3 100644 --- a/app/assets/stylesheets/admin/dashboard.scss +++ b/app/assets/stylesheets/admin/dashboard.scss | |||
| @@ -40,3 +40,8 @@ | |||
| 40 | } | 40 | } |
| 41 | } | 41 | } |
| 42 | } | 42 | } |
| 43 | |||
| 44 | #action-box { | ||
| 45 | text-align: center; | ||
| 46 | margin: 1em 0; | ||
| 47 | } | ||
| diff --git a/app/controllers/admin/comments_controller.rb b/app/controllers/admin/comments_controller.rb index 6b4bff3..4d9502d 100644 --- a/app/controllers/admin/comments_controller.rb +++ b/app/controllers/admin/comments_controller.rb | |||
| @@ -33,22 +33,7 @@ class Admin::CommentsController < Admin::AdminController | |||
| 33 | 33 | ||
| 34 | def mark_spam | 34 | def mark_spam |
| 35 | @comment = Comment.find(params[:id]) | 35 | @comment = Comment.find(params[:id]) |
| 36 | 36 | perform_mark_spam(@comment) | |
| 37 | akismet_params = { | ||
| 38 | type: "comment", | ||
| 39 | text: @comment.body, | ||
| 40 | created_at: @comment.created_at, | ||
| 41 | author: @comment.username, | ||
| 42 | author_email: @comment.email, | ||
| 43 | author_url: @comment.website, | ||
| 44 | post_url: url_for(@comment.blog), | ||
| 45 | post_modified_at: @comment.blog.updated_at, | ||
| 46 | referrer: @comment.referrer | ||
| 47 | } | ||
| 48 | |||
| 49 | Akismet.spam @comment.request_ip, @comment.user_agent, akismet_params | ||
| 50 | |||
| 51 | @comment.destroy! | ||
| 52 | 37 | ||
| 53 | flash.notice = "Comment successfully marked as spam." | 38 | flash.notice = "Comment successfully marked as spam." |
| 54 | redirect_back fallback_location: pending_admin_comments_url | 39 | redirect_back fallback_location: pending_admin_comments_url |
| @@ -64,9 +49,45 @@ class Admin::CommentsController < Admin::AdminController | |||
| 64 | redirect_to admin_comments_url | 49 | redirect_to admin_comments_url |
| 65 | end | 50 | end |
| 66 | 51 | ||
| 52 | def mass | ||
| 53 | if params[:mass_action] == "Delete" | ||
| 54 | Comment.destroy_by(id: params[:comment_ids]) | ||
| 55 | |||
| 56 | flash.notice = "Comments successfully deleted." | ||
| 57 | elsif params[:mass_action] == "Mark Spam" | ||
| 58 | @comments = Comment.find(params[:comment_ids]) | ||
| 59 | |||
| 60 | @comments.each do |comment| | ||
| 61 | perform_mark_spam(comment) | ||
| 62 | end | ||
| 63 | |||
| 64 | flash.notice = "Comments successfully marked as spam." | ||
| 65 | end | ||
| 66 | |||
| 67 | redirect_back fallback_location: pending_admin_comments_url | ||
| 68 | end | ||
| 69 | |||
| 67 | private | 70 | private |
| 68 | 71 | ||
| 69 | def set_section | 72 | def set_section |
| 70 | @section = "comments" | 73 | @section = "comments" |
| 71 | end | 74 | end |
| 75 | |||
| 76 | def perform_mark_spam(comment) | ||
| 77 | akismet_params = { | ||
| 78 | type: "comment", | ||
| 79 | text: comment.body, | ||
| 80 | created_at: comment.created_at, | ||
| 81 | author: comment.username, | ||
| 82 | author_email: comment.email, | ||
| 83 | author_url: comment.website, | ||
| 84 | post_url: url_for(comment.blog), | ||
| 85 | post_modified_at: comment.blog.updated_at, | ||
| 86 | referrer: comment.referrer | ||
| 87 | } | ||
| 88 | |||
| 89 | Akismet.spam comment.request_ip, comment.user_agent, akismet_params | ||
| 90 | |||
| 91 | comment.destroy! | ||
| 92 | end | ||
| 72 | end | 93 | end |
| diff --git a/app/views/admin/comments/pending.haml b/app/views/admin/comments/pending.haml index 3303457..5352b12 100644 --- a/app/views/admin/comments/pending.haml +++ b/app/views/admin/comments/pending.haml | |||
| @@ -1,26 +1,32 @@ | |||
| 1 | - title "Pending Comments" | 1 | - title "Pending Comments" |
| 2 | = will_paginate @comments | 2 | = will_paginate @comments |
| 3 | %table#entries | 3 | = form_tag mass_admin_comments_url, method: :post do |
| 4 | %tr | 4 | #action-box |
| 5 | %th Text | 5 | = select_tag "mass_action", options_for_select(["Delete", "Mark Spam"]), include_blank: true |
| 6 | %th Author | 6 | = submit_tag "Mass action", data: { confirm: "Are you sure you want to do this action?" } |
| 7 | %th Blog post | 7 | %table#entries |
| 8 | %th Date updated | 8 | %tr |
| 9 | %th | 9 | %th= check_box_tag "check_all" |
| 10 | - @comments.each do |comment| | 10 | %th Text |
| 11 | %tr{ class: cycle("even", "odd") } | 11 | %th Author |
| 12 | %td= comment.body | 12 | %th Blog post |
| 13 | %td | 13 | %th Date updated |
| 14 | %ul | 14 | %th |
| 15 | %li= comment.username | 15 | - @comments.each do |comment| |
| 16 | %li= comment.email | 16 | %tr{ class: cycle("even", "odd") } |
| 17 | - unless comment.website.empty? | 17 | %td= check_box_tag "comment_ids[]", comment.id, class: "comment_ids" |
| 18 | %li= comment.website | 18 | %td= comment.body |
| 19 | %td= link_to comment.blog.title, comment.blog | 19 | %td |
| 20 | %td= comment.created_at.strftime("%B %d, %Y, %l:%M%P") | 20 | %ul |
| 21 | %td | 21 | %li= comment.username |
| 22 | %ul.admin-actions | 22 | %li= comment.email |
| 23 | %li= link_to "Accept", accept_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to accept this comment?" } | 23 | - unless comment.website.empty? |
| 24 | %li= link_to "Reject", reject_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to reject this comment?" } | 24 | %li= comment.website |
| 25 | %li= link_to "Mark Spam", mark_spam_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to mark this comment as spam?" } | 25 | %td= link_to comment.blog.title, comment.blog |
| 26 | %td= comment.created_at.strftime("%B %d, %Y, %l:%M%P") | ||
| 27 | %td | ||
| 28 | %ul.admin-actions | ||
| 29 | %li= link_to "Accept", accept_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to accept this comment?" } | ||
| 30 | %li= link_to "Reject", reject_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to reject this comment?" } | ||
| 31 | %li= link_to "Mark Spam", mark_spam_admin_comment_url(comment), method: :post, data: { confirm: "Are you sure you want to mark this comment as spam?" } | ||
| 26 | = will_paginate @comments | 32 | = will_paginate @comments |
