diff --git a/app/assets/javascripts/posts.js b/app/assets/javascripts/posts.js index 98c4adc49..7b3929b44 100644 --- a/app/assets/javascripts/posts.js +++ b/app/assets/javascripts/posts.js @@ -174,6 +174,12 @@ e.preventDefault(); }); + if (Danbooru.meta("current-user-can-approve-posts") === "true") { + Danbooru.keydown("shift+o", "approve", function(e) { + $("#quick-mod-approve").click(); + }); + } + Danbooru.keydown("a", "prev_page", Danbooru.Post.nav_prev); Danbooru.keydown("d", "next_page", Danbooru.Post.nav_next); Danbooru.keydown("f", "favorite", Danbooru.Post.favorite); @@ -506,23 +512,18 @@ } Danbooru.Post.approve = function(post_id) { - $.ajax({ - type: "POST", - url: "/moderator/post/approval.json", - data: {"post_id": post_id}, - dataType: "json", - success: function(data) { - if (!data.success) { - Danbooru.error("Error: " + data.reason); - } else { - var $post = $("#post_" + post_id); - if ($post.length) { - $post.data("flags", $post.data("flags").replace(/pending/, "")); - $post.removeClass("post-status-pending"); - } - Danbooru.notice("Approved post #" + post_id); - $("#pending-approval-notice").hide(); - } + $.post( + "/moderator/post/approval.json", + {"post_id": post_id} + ).fail(function(data) { + var message = $.map(data.responseJSON.errors, function(msg, attr) { return msg; }).join("; "); + Danbooru.error("Error: " + message); + }).done(function(data) { + var $post = $("#post_" + post_id); + if ($post.length) { + $post.data("flags", $post.data("flags").replace(/pending/, "")); + $post.removeClass("post-status-pending"); + Danbooru.notice("Approved post #" + post_id); } }); } diff --git a/app/assets/javascripts/shortcuts.js b/app/assets/javascripts/shortcuts.js index ac10cbe37..86c143aaa 100644 --- a/app/assets/javascripts/shortcuts.js +++ b/app/assets/javascripts/shortcuts.js @@ -30,14 +30,6 @@ }); } - if ($("#c-posts").length && $("#a-show").length) { - Danbooru.keydown("shift+o", "approve", function(e) { - if (Danbooru.meta("current-user-can-approve-posts") === "true") { - Danbooru.Post.approve(Danbooru.meta("post-id")); - } - }); - } - if ($("#c-posts #a-index, #c-posts #a-show, #c-favorites #a-index").length) { Danbooru.keydown("r", "random", function(e) { $("#random-post")[0].click(); diff --git a/app/controllers/moderator/post/approvals_controller.rb b/app/controllers/moderator/post/approvals_controller.rb index 1da5998e2..c0e18b644 100644 --- a/app/controllers/moderator/post/approvals_controller.rb +++ b/app/controllers/moderator/post/approvals_controller.rb @@ -9,7 +9,7 @@ module Moderator cookies.permanent[:moderated] = Time.now.to_i post = ::Post.find(params[:post_id]) @approval = post.approve! - respond_with(@approval) + respond_with(:moderator, @approval) end end end diff --git a/app/views/moderator/post/approvals/create.js.erb b/app/views/moderator/post/approvals/create.js.erb index 52586b311..4c567de00 100644 --- a/app/views/moderator/post/approvals/create.js.erb +++ b/app/views/moderator/post/approvals/create.js.erb @@ -8,7 +8,7 @@ $("#c-posts #approve").hide(); $("#c-posts #disapprove").hide(); $("#c-posts #flag").show(); -$("#pending-approval-notice").hide(); +$("#pending-approval-notice, .notice-flagged, .notice-appealed").hide(); $("#c-moderator-post-queues #post-<%= @approval.post.id %>").hide(); Danbooru.notice("Post was approved"); diff --git a/app/views/moderator/post/approvals/create.json.erb b/app/views/moderator/post/approvals/create.json.erb deleted file mode 100644 index 2c0a105b0..000000000 --- a/app/views/moderator/post/approvals/create.json.erb +++ /dev/null @@ -1 +0,0 @@ -{"success": <%= @post.errors.empty? %>, "reason": <%= raw @post.errors.full_messages.join("; ").to_json %>} diff --git a/app/views/posts/partials/show/_notices.html.erb b/app/views/posts/partials/show/_notices.html.erb index 00fa8b540..27b664184 100644 --- a/app/views/posts/partials/show/_notices.html.erb +++ b/app/views/posts/partials/show/_notices.html.erb @@ -43,7 +43,7 @@ <% if CurrentUser.can_approve_posts? && !post.disapproved_by?(CurrentUser.user) %>