Merge pull request #3111 from evazion/fix-3099

Fix #3099: NilClass error for approval API request
This commit is contained in:
Albert Yi
2017-06-05 12:03:18 -07:00
committed by GitHub
6 changed files with 21 additions and 29 deletions

View File

@@ -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);
}
});
}

View File

@@ -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();

View File

@@ -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

View File

@@ -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");

View File

@@ -1 +0,0 @@
{"success": <%= @post.errors.empty? %>, "reason": <%= raw @post.errors.full_messages.join("; ").to_json %>}

View File

@@ -43,7 +43,7 @@
<% if CurrentUser.can_approve_posts? && !post.disapproved_by?(CurrentUser.user) %>
<div class="quick-mod">
<% unless post.is_status_locked? %>
<%= link_to "Approve", moderator_post_approval_path(:post_id => post.id), :method => :post, :remote => true, :class => "btn" %> |
<%= link_to "Approve", moderator_post_approval_path(:post_id => post.id), :id => "quick-mod-approve", :method => :post, :remote => true, :class => "btn" %> |
<% end %>
<%= link_to "Breaks Rules", moderator_post_disapproval_path(:post_id => post.id, :reason => "breaks_rules"), :method => :post, :remote => true, :class => "btn" %> |
<%= link_to "Poor Quality", moderator_post_disapproval_path(:post_id => post.id, :reason => "poor_quality"), :method => :post, :remote => true, :class => "btn" %> |