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