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