diff --git a/app/controllers/moderator/post/approvals_controller.rb b/app/controllers/moderator/post/approvals_controller.rb
deleted file mode 100644
index 3d24a5446..000000000
--- a/app/controllers/moderator/post/approvals_controller.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-module Moderator
- module Post
- class ApprovalsController < ApplicationController
- before_action :approver_only
- skip_before_action :api_check
- respond_to :json, :xml, :js
-
- def create
- cookies.permanent[:moderated] = Time.now.to_i
- post = ::Post.find(params[:post_id])
- @approval = post.approve!
- respond_with(:moderator, @approval)
- end
- end
- end
-end
diff --git a/app/controllers/post_approvals_controller.rb b/app/controllers/post_approvals_controller.rb
index 33f37de2c..4377f80e3 100644
--- a/app/controllers/post_approvals_controller.rb
+++ b/app/controllers/post_approvals_controller.rb
@@ -1,5 +1,13 @@
class PostApprovalsController < ApplicationController
- respond_to :html, :xml, :json
+ before_action :approver_only, only: [:create]
+ respond_to :html, :xml, :json, :js
+
+ def create
+ cookies.permanent[:moderated] = Time.now.to_i
+ post = Post.find(params[:post_id])
+ @approval = post.approve!
+ respond_with(@approval)
+ end
def index
@post_approvals = PostApproval.paginated_search(params)
diff --git a/app/javascript/src/javascripts/posts.js.erb b/app/javascript/src/javascripts/posts.js.erb
index e1d68cd4c..ff1aa48e0 100644
--- a/app/javascript/src/javascripts/posts.js.erb
+++ b/app/javascript/src/javascripts/posts.js.erb
@@ -523,7 +523,7 @@ Post.update = function(post_id, params) {
Post.approve = function(post_id) {
$.post(
- "/moderator/post/approval.json",
+ "/post_approvals.json",
{"post_id": post_id}
).fail(function(data) {
var message = $.map(data.responseJSON.errors, function(msg, attr) { return msg; }).join("; ");
diff --git a/app/views/moderator/post/queues/_quick_mod.html.erb b/app/views/moderator/post/queues/_quick_mod.html.erb
index 049f97b35..916763dee 100644
--- a/app/views/moderator/post/queues/_quick_mod.html.erb
+++ b/app/views/moderator/post/queues/_quick_mod.html.erb
@@ -1,5 +1,5 @@
- <%= link_to_if post.is_approvable?, "Approve", moderator_post_approval_path(post_id: post.id), method: :post, remote: true, class: "approve-link btn" %> |
+ <%= link_to_if post.is_approvable?, "Approve", post_approvals_path(post_id: post.id), method: :post, remote: true, class: "approve-link btn" %> |
<%= link_to "Breaks Rules", post_disapprovals_path(post_disapproval: { post_id: post.id, reason: "breaks_rules" }), method: :post, remote: true, class: "disapprove-link btn" %> |
<%= link_to "Poor Quality", post_disapprovals_path(post_disapproval: { post_id: post.id, reason: "poor_quality" }), method: :post, remote: true, class: "disapprove-link btn" %> |
<%= link_to "No Interest", post_disapprovals_path(post_disapproval: { post_id: post.id, reason: "disinterest" }), method: :post, remote: true, class: "disapprove-link btn" %> |
diff --git a/app/views/moderator/post/approvals/create.js.erb b/app/views/post_approvals/create.js.erb
similarity index 100%
rename from app/views/moderator/post/approvals/create.js.erb
rename to app/views/post_approvals/create.js.erb
diff --git a/app/views/posts/partials/show/_options.html.erb b/app/views/posts/partials/show/_options.html.erb
index ad0150c75..0843d4b4a 100644
--- a/app/views/posts/partials/show/_options.html.erb
+++ b/app/views/posts/partials/show/_options.html.erb
@@ -51,7 +51,7 @@
<% end %>
<% if post.is_approvable? && !post.is_deleted? %>
-
<%= link_to "Approve", moderator_post_approval_path(post_id: post.id), remote: true, method: :post, id: "approve", "data-shortcut": "shift+o", "data-confirm": "Are you sure you want to approve this post?" %>
+ <%= link_to "Approve", post_approvals_path(post_id: post.id), remote: true, method: :post, id: "approve", "data-shortcut": "shift+o", "data-confirm": "Are you sure you want to approve this post?" %>
<%= link_to "Hide from queue", post_disapprovals_path(post_disapproval: { post_id: post.id, reason: "disinterest" }), remote: true, method: :post, id: "disapprove" %>
<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index 3b98cefde..df8eda6a8 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -19,7 +19,6 @@ Rails.application.routes.draw do
get :random
end
end
- resource :approval, :only => [:create]
resources :posts, :only => [:delete, :undelete, :expunge, :confirm_delete] do
member do
get :confirm_delete
@@ -204,7 +203,7 @@ Rails.application.routes.draw do
end
resources :post_appeals
resources :post_flags
- resources :post_approvals, only: [:index]
+ resources :post_approvals, only: [:create, :index]
resources :post_disapprovals, only: [:create, :show, :index]
resources :post_versions, :only => [:index, :search] do
member do
diff --git a/test/factories/user.rb b/test/factories/user.rb
index 94a4fa7bd..d364c5250 100644
--- a/test/factories/user.rb
+++ b/test/factories/user.rb
@@ -62,5 +62,10 @@ FactoryBot.define do
factory(:uploader) do
created_at { 2.weeks.ago }
end
+
+ factory(:approver) do
+ level {32}
+ can_approve_posts {true}
+ end
end
end
diff --git a/test/functional/moderator/post/approvals_controller_test.rb b/test/functional/moderator/post/approvals_controller_test.rb
deleted file mode 100644
index b6aab9fc2..000000000
--- a/test/functional/moderator/post/approvals_controller_test.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-require 'test_helper'
-
-module Moderator
- module Post
- class ApprovalsControllerTest < ActionDispatch::IntegrationTest
- context "The moderator post approvals controller" do
- setup do
- @admin = create(:admin_user)
- as_admin do
- @post = create(:post, :is_pending => true)
- end
- end
-
- context "create action" do
- should "render" do
- post_auth moderator_post_approval_path, @admin, params: {:post_id => @post.id, :format => "js"}
- assert_response :success
- @post.reload
- assert(!@post.is_pending?)
- end
- end
- end
- end
- end
-end
diff --git a/test/functional/post_approvals_controller_test.rb b/test/functional/post_approvals_controller_test.rb
index 55caec659..90cd2bb30 100644
--- a/test/functional/post_approvals_controller_test.rb
+++ b/test/functional/post_approvals_controller_test.rb
@@ -3,11 +3,22 @@ require 'test_helper'
class PostApprovalsControllerTest < ActionDispatch::IntegrationTest
context "The post approvals controller" do
setup do
- @approval = FactoryBot.create(:post_approval)
+ @approver = create(:approver)
+ 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
+
+ assert_response :success
+ assert(!@post.reload.is_pending?)
+ end
end
context "index action" do
should "render" do
+ @approval = create(:post_approval)
get post_approvals_path
assert_response :success
end