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(); 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("a", "prev_page", Danbooru.Post.nav_prev);
Danbooru.keydown("d", "next_page", Danbooru.Post.nav_next); Danbooru.keydown("d", "next_page", Danbooru.Post.nav_next);
Danbooru.keydown("f", "favorite", Danbooru.Post.favorite); Danbooru.keydown("f", "favorite", Danbooru.Post.favorite);
@@ -506,23 +512,18 @@
} }
Danbooru.Post.approve = function(post_id) { Danbooru.Post.approve = function(post_id) {
$.ajax({ $.post(
type: "POST", "/moderator/post/approval.json",
url: "/moderator/post/approval.json", {"post_id": post_id}
data: {"post_id": post_id}, ).fail(function(data) {
dataType: "json", var message = $.map(data.responseJSON.errors, function(msg, attr) { return msg; }).join("; ");
success: function(data) { Danbooru.error("Error: " + message);
if (!data.success) { }).done(function(data) {
Danbooru.error("Error: " + data.reason); var $post = $("#post_" + post_id);
} else { if ($post.length) {
var $post = $("#post_" + post_id); $post.data("flags", $post.data("flags").replace(/pending/, ""));
if ($post.length) { $post.removeClass("post-status-pending");
$post.data("flags", $post.data("flags").replace(/pending/, "")); Danbooru.notice("Approved post #" + post_id);
$post.removeClass("post-status-pending");
}
Danbooru.notice("Approved post #" + post_id);
$("#pending-approval-notice").hide();
}
} }
}); });
} }

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) { if ($("#c-posts #a-index, #c-posts #a-show, #c-favorites #a-index").length) {
Danbooru.keydown("r", "random", function(e) { Danbooru.keydown("r", "random", function(e) {
$("#random-post")[0].click(); $("#random-post")[0].click();

View File

@@ -9,7 +9,7 @@ module Moderator
cookies.permanent[:moderated] = Time.now.to_i cookies.permanent[:moderated] = Time.now.to_i
post = ::Post.find(params[:post_id]) post = ::Post.find(params[:post_id])
@approval = post.approve! @approval = post.approve!
respond_with(@approval) respond_with(:moderator, @approval)
end end
end end
end end

View File

@@ -8,7 +8,7 @@ $("#c-posts #approve").hide();
$("#c-posts #disapprove").hide(); $("#c-posts #disapprove").hide();
$("#c-posts #flag").show(); $("#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(); $("#c-moderator-post-queues #post-<%= @approval.post.id %>").hide();
Danbooru.notice("Post was approved"); 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) %> <% if CurrentUser.can_approve_posts? && !post.disapproved_by?(CurrentUser.user) %>
<div class="quick-mod"> <div class="quick-mod">
<% unless post.is_status_locked? %> <% 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 %> <% end %>
<%= link_to "Breaks Rules", moderator_post_disapproval_path(:post_id => post.id, :reason => "breaks_rules"), :method => :post, :remote => true, :class => "btn" %> | <%= 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" %> | <%= link_to "Poor Quality", moderator_post_disapproval_path(:post_id => post.id, :reason => "poor_quality"), :method => :post, :remote => true, :class => "btn" %> |