diff --git a/app/controllers/moderator/post/posts_controller.rb b/app/controllers/moderator/post/posts_controller.rb index 76700a90b..0c1ce8c0d 100644 --- a/app/controllers/moderator/post/posts_controller.rb +++ b/app/controllers/moderator/post/posts_controller.rb @@ -1,7 +1,7 @@ module Moderator module Post class PostsController < ApplicationController - before_action :approver_only, :only => [:delete, :undelete, :move_favorites, :ban, :unban, :confirm_delete, :confirm_move_favorites, :confirm_ban] + before_action :approver_only, :only => [:delete, :move_favorites, :ban, :unban, :confirm_delete, :confirm_move_favorites, :confirm_ban] before_action :admin_only, :only => [:expunge] skip_before_action :api_check @@ -19,11 +19,6 @@ module Moderator redirect_to(post_path(@post)) end - def undelete - @post = ::Post.find(params[:id]) - @post.approve! - end - def confirm_move_favorites @post = ::Post.find(params[:id]) end diff --git a/app/views/moderator/post/posts/undelete.js.erb b/app/views/moderator/post/posts/undelete.js.erb deleted file mode 100644 index 9a74206f4..000000000 --- a/app/views/moderator/post/posts/undelete.js.erb +++ /dev/null @@ -1,3 +0,0 @@ -$("#c-posts #delete").show(); -$("#c-posts #undelete").hide(); -Danbooru.notice("Post was undeleted"); diff --git a/app/views/posts/partials/show/_options.html.erb b/app/views/posts/partials/show/_options.html.erb index 0843d4b4a..f18e48579 100644 --- a/app/views/posts/partials/show/_options.html.erb +++ b/app/views/posts/partials/show/_options.html.erb @@ -42,7 +42,7 @@ <% if CurrentUser.can_approve_posts? %> <% if post.is_deleted? %> -
  • <%= link_to "Undelete", undelete_moderator_post_post_path(post_id: post.id), remote: true, method: :post, "data-confirm": "Are you sure you want to undelete this post?" %>
  • +
  • <%= link_to "Undelete", post_approvals_path(post_id: post.id), remote: true, method: :post, "data-confirm": "Are you sure you want to undelete this post?" %>
  • <% if post.fav_count > 0 && post.parent_id %>
  • <%= link_to "Move favorites", confirm_move_favorites_moderator_post_post_path(post_id: post.id) %>
  • <% end %> diff --git a/config/routes.rb b/config/routes.rb index df8eda6a8..7be2ca840 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -19,12 +19,11 @@ Rails.application.routes.draw do get :random end end - resources :posts, :only => [:delete, :undelete, :expunge, :confirm_delete] do + resources :posts, :only => [:delete, :expunge, :confirm_delete] do member do get :confirm_delete post :expunge post :delete - post :undelete get :confirm_move_favorites post :move_favorites get :confirm_ban diff --git a/test/functional/moderator/post/posts_controller_test.rb b/test/functional/moderator/post/posts_controller_test.rb index 7041d61e0..99220caaf 100644 --- a/test/functional/moderator/post/posts_controller_test.rb +++ b/test/functional/moderator/post/posts_controller_test.rb @@ -35,20 +35,6 @@ module Moderator end end - context "undelete action" do - should "render" do - as_user do - @post.update(is_deleted: true) - end - assert_difference(-> { PostApproval.count }, 1) do - post_auth undelete_moderator_post_post_path(@post), @admin, params: {:format => "js"} - end - - assert_response :success - assert(!@post.reload.is_deleted?) - end - end - context "confirm_move_favorites action" do should "render" do get_auth confirm_ban_moderator_post_post_path(@post), @admin diff --git a/test/functional/post_approvals_controller_test.rb b/test/functional/post_approvals_controller_test.rb index 90cd2bb30..0108c6317 100644 --- a/test/functional/post_approvals_controller_test.rb +++ b/test/functional/post_approvals_controller_test.rb @@ -7,12 +7,24 @@ class PostApprovalsControllerTest < ActionDispatch::IntegrationTest end context "create action" do - should "render" do - @post = create(:post, is_pending: true) - post_auth post_approvals_path(post_id: @post.id, format: :js), @approver + context "for a pending post" do + should "approve the post" do + @post = create(:post, is_pending: true) + post_auth post_approvals_path(post_id: @post.id, format: :js), @approver - assert_response :success - assert(!@post.reload.is_pending?) + assert_response :success + assert(!@post.reload.is_pending?) + end + end + + context "for a deleted post" do + should "undelete the post" do + @post = create(:post, is_deleted: true) + post_auth post_approvals_path(post_id: @post.id, format: :js), @approver + + assert_response :success + assert(!@post.reload.is_deleted?) + end end end