From 57c922ec308ffad69654b1aa97e0172b16b611d1 Mon Sep 17 00:00:00 2001 From: albert Date: Sat, 15 Oct 2011 23:07:50 -0400 Subject: [PATCH] added post#annihilate, removed stale post_moderation views --- .../moderator/post/approvals_controller.rb | 2 + .../moderator/post/disapprovals_controller.rb | 7 +--- .../moderator/post/posts_controller.rb | 8 ++++ app/models/post.rb | 5 +++ .../moderator/post/approvals/create.js.erb | 7 +++- .../moderator/post/disapprovals/create.js.erb | 14 ++++++- .../moderator/post/posts/annihilate.js.erb | 1 + app/views/moderator/post/posts/delete.js.erb | 5 ++- .../moderator/post/posts/undelete.js.erb | 3 ++ .../post_moderation/approval_error.js.erb | 1 - app/views/post_moderation/approve.js.erb | 5 --- app/views/post_moderation/delete.js.erb | 2 - .../post_moderation/disapproval_error.js.erb | 1 - app/views/post_moderation/disapprove.js | 4 -- app/views/post_moderation/moderate.html.erb | 42 ------------------- app/views/post_moderation/undelete.js.erb | 3 -- .../posts/partials/show/_options.html.erb | 5 +++ config/routes.rb | 1 + 18 files changed, 50 insertions(+), 66 deletions(-) create mode 100644 app/views/moderator/post/posts/annihilate.js.erb delete mode 100644 app/views/post_moderation/approval_error.js.erb delete mode 100644 app/views/post_moderation/approve.js.erb delete mode 100644 app/views/post_moderation/delete.js.erb delete mode 100644 app/views/post_moderation/disapproval_error.js.erb delete mode 100644 app/views/post_moderation/disapprove.js delete mode 100644 app/views/post_moderation/moderate.html.erb delete mode 100644 app/views/post_moderation/undelete.js.erb diff --git a/app/controllers/moderator/post/approvals_controller.rb b/app/controllers/moderator/post/approvals_controller.rb index dfaa783cb..e813eaf93 100644 --- a/app/controllers/moderator/post/approvals_controller.rb +++ b/app/controllers/moderator/post/approvals_controller.rb @@ -1,6 +1,8 @@ module Moderator module Post class ApprovalsController < ApplicationController + before_filter :janitor_only + def create @post = ::Post.find(params[:post_id]) @post.approve! diff --git a/app/controllers/moderator/post/disapprovals_controller.rb b/app/controllers/moderator/post/disapprovals_controller.rb index d1421cec2..830fd7d09 100644 --- a/app/controllers/moderator/post/disapprovals_controller.rb +++ b/app/controllers/moderator/post/disapprovals_controller.rb @@ -1,14 +1,11 @@ module Moderator module Post class DisapprovalsController < ApplicationController + before_filter :janitor_only + def create @post = ::Post.find(params[:post_id]) @post_disapproval = PostDisapproval.create(:post => @post, :user => CurrentUser.user) - if @post_disapproval.errors.any? - raise ::Post::DisapprovalError.new(@post_disapproval.errors.full_messages) - end - - # js: redirect to dashboard end end end diff --git a/app/controllers/moderator/post/posts_controller.rb b/app/controllers/moderator/post/posts_controller.rb index 914347e83..7cca91dd2 100644 --- a/app/controllers/moderator/post/posts_controller.rb +++ b/app/controllers/moderator/post/posts_controller.rb @@ -1,6 +1,9 @@ module Moderator module Post class PostsController < ApplicationController + before_filter :janitor_only, :only => [:delete, :undelete] + before_filter :admin_only, :only => [:annihilate] + def delete @post = ::Post.find(params[:id]) @post.delete! @@ -10,6 +13,11 @@ module Moderator @post = ::Post.find(params[:id]) @post.undelete! end + + def annihilate + @post = ::Post.find(params[:id]) + @post.annihilate! + end end end end diff --git a/app/models/post.rb b/app/models/post.rb index a13c5b7f3..41b446ce9 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -893,6 +893,11 @@ class Post < ActiveRecord::Base end module DeletionMethods + def annihilate! + delete! + destroy + end + def delete! Post.transaction do give_favorites_to_parent diff --git a/app/views/moderator/post/approvals/create.js.erb b/app/views/moderator/post/approvals/create.js.erb index 9593aaab1..b8b15779a 100644 --- a/app/views/moderator/post/approvals/create.js.erb +++ b/app/views/moderator/post/approvals/create.js.erb @@ -1 +1,6 @@ -$("#post-<%= @post.id %>").remove(); +$("#c-posts #approve").hide(); +$("#c-posts #disapprove").hide(); +$("#c-posts #flag").show(); + +$("#c-post-moderation #post-<%= @post.id %>").hide(); +Danbooru.notice("Post was approved"); \ No newline at end of file diff --git a/app/views/moderator/post/disapprovals/create.js.erb b/app/views/moderator/post/disapprovals/create.js.erb index 9593aaab1..344022e77 100644 --- a/app/views/moderator/post/disapprovals/create.js.erb +++ b/app/views/moderator/post/disapprovals/create.js.erb @@ -1 +1,13 @@ -$("#post-<%= @post.id %>").remove(); +<% if @post_disapproval.errors.any? %> + +Danbooru.j_error("Error: " + "<%= j @post_disapproval.errors.full_messages.join("; ") %>"); + +<% else %> + +$("#c-posts #approve").hide(); +$("#c-posts #disapprove").hide(); + +$("#c-post-moderation #post-<%= @post.id %>").hide(); +Danbooru.notice("Post was disapproved"); + +<% end %> \ No newline at end of file diff --git a/app/views/moderator/post/posts/annihilate.js.erb b/app/views/moderator/post/posts/annihilate.js.erb new file mode 100644 index 000000000..85bb8da47 --- /dev/null +++ b/app/views/moderator/post/posts/annihilate.js.erb @@ -0,0 +1 @@ +Danbooru.notice("Post was annihilated"); \ No newline at end of file diff --git a/app/views/moderator/post/posts/delete.js.erb b/app/views/moderator/post/posts/delete.js.erb index 9593aaab1..00c67338c 100644 --- a/app/views/moderator/post/posts/delete.js.erb +++ b/app/views/moderator/post/posts/delete.js.erb @@ -1 +1,4 @@ -$("#post-<%= @post.id %>").remove(); +$("#c-posts #delete").hide(); +$("#c-posts #undelete").show(); +$("#c-post-moderation #post-<%= @post.id %>").remove(); +Danbooru.notice("Post was deleted"); \ No newline at end of file diff --git a/app/views/moderator/post/posts/undelete.js.erb b/app/views/moderator/post/posts/undelete.js.erb index e69de29bb..cffae23a1 100644 --- a/app/views/moderator/post/posts/undelete.js.erb +++ b/app/views/moderator/post/posts/undelete.js.erb @@ -0,0 +1,3 @@ +$("#c-posts #delete").show(); +$("#c-posts #undelete").hide(); +Danbooru.notice("Post was undeleted"); \ No newline at end of file diff --git a/app/views/post_moderation/approval_error.js.erb b/app/views/post_moderation/approval_error.js.erb deleted file mode 100644 index 2879b7389..000000000 --- a/app/views/post_moderation/approval_error.js.erb +++ /dev/null @@ -1 +0,0 @@ -Danbooru.j_error(<%= @exception.message.to_json.html_safe %>); diff --git a/app/views/post_moderation/approve.js.erb b/app/views/post_moderation/approve.js.erb deleted file mode 100644 index 91aa2446a..000000000 --- a/app/views/post_moderation/approve.js.erb +++ /dev/null @@ -1,5 +0,0 @@ -$("#c-posts a#approve").hide(); -$("#c-posts a#disapprove").hide(); -$("#c-posts a#flag").show(); - -$("#c-post-moderation #post-<%= @post.id %>").hide(); diff --git a/app/views/post_moderation/delete.js.erb b/app/views/post_moderation/delete.js.erb deleted file mode 100644 index ee0172f86..000000000 --- a/app/views/post_moderation/delete.js.erb +++ /dev/null @@ -1,2 +0,0 @@ -$("a#delete").hide(); -$("a#undelete").show(); diff --git a/app/views/post_moderation/disapproval_error.js.erb b/app/views/post_moderation/disapproval_error.js.erb deleted file mode 100644 index e96e2214d..000000000 --- a/app/views/post_moderation/disapproval_error.js.erb +++ /dev/null @@ -1 +0,0 @@ -Danbooru.j_error("You have already disapproved this post"); diff --git a/app/views/post_moderation/disapprove.js b/app/views/post_moderation/disapprove.js deleted file mode 100644 index 2abed7c20..000000000 --- a/app/views/post_moderation/disapprove.js +++ /dev/null @@ -1,4 +0,0 @@ -$("#c-posts a#approve").hide(); -$("#c-posts a#disapprove").hide(); - -$("#c-post-moderation #post-<%= @post.id %>").hide(); diff --git a/app/views/post_moderation/moderate.html.erb b/app/views/post_moderation/moderate.html.erb deleted file mode 100644 index c79cfa205..000000000 --- a/app/views/post_moderation/moderate.html.erb +++ /dev/null @@ -1,42 +0,0 @@ -
-
- - -
-

Moderation Queue

- - <% @posts.each do |post| %> -
- - -
-
    -
  • <%= link_to "Approve", post_moderation_approve_path(:post_id => post.id), :remote => true, :method => :put %> | <%= link_to "Disapprove", post_moderation_disapprove_path(:post_id => post.id), :remote => true, :method => :put %>
  • -
  • Rating: <%= post.pretty_rating %>
  • -
  • Score: <%= post.score %>
  • -
  • Uploader: <%= link_to(post.uploader.name, user_path(post.uploader_id)) %> <%= time_ago_in_words(post.created_at) %> ago
  • - <% if post.is_flagged? %> -
  • Flagged: <%= post_flag_reason(post) %>
  • - <% end %> - <% if (post.is_flagged? || post.is_deleted?) && post.appeals.any? %> -
  • Appeals: <%= post_appeal_reason(post) %>
  • - <% end %> -
  • Disapprovals: <%= post.disapprovals.count %>
  • -
  • Tags: <%= post.tag_string %>
  • -
-
- -
-
- <% end %> -
-
-
- diff --git a/app/views/post_moderation/undelete.js.erb b/app/views/post_moderation/undelete.js.erb deleted file mode 100644 index 0f7628fc9..000000000 --- a/app/views/post_moderation/undelete.js.erb +++ /dev/null @@ -1,3 +0,0 @@ -$("a#delete").show(); -$("a#undelete").hide(); -$("img#undelete-wait").hide(); diff --git a/app/views/posts/partials/show/_options.html.erb b/app/views/posts/partials/show/_options.html.erb index c6a4690b7..5021b786b 100644 --- a/app/views/posts/partials/show/_options.html.erb +++ b/app/views/posts/partials/show/_options.html.erb @@ -16,5 +16,10 @@
  • <%= link_to "Undelete", undelete_moderator_post_post_path(:post_id => post.id), :remote => true, :method => :post, :id => "undelete" %>
  • <%= link_to "Delete", delete_moderator_post_post_path(:post_id => post.id), :remote => true, :method => :post, :id => "delete" %>
  • <% end %> + + <% if CurrentUser.is_admin? %> +
  • <%= link_to "Annihilate", annihilate_moderator_post_post_path(:post_id => post.id), :remote => true, :method => :post, :id => "annihilate", :confirm => "This will permanently delete this post (meaning the file will be deleted). Are you sure you want to annihilate this post?" %>
  • + <% end %> +
  • <%= link_to "Pool", "#", :id => "pool" %>
  • \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index b87bed740..13b9892c3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -17,6 +17,7 @@ Danbooru::Application.routes.draw do resource :disapproval, :only => [:create] resources :posts, :only => [:delete, :undelete] do member do + post :annihilate post :delete post :undelete end