fixes #2650: Add random mode to mod queue
This commit is contained in:
@@ -1,6 +1,18 @@
|
||||
(function() {
|
||||
Danbooru.ModQueue = {};
|
||||
|
||||
Danbooru.ModQueue.processed = 0;
|
||||
|
||||
Danbooru.ModQueue.increment_processed = function() {
|
||||
if (Danbooru.meta("random-mode") === "1") {
|
||||
Danbooru.ModQueue.processed += 1;
|
||||
|
||||
if (Danbooru.ModQueue.processed === 5) {
|
||||
window.location = Danbooru.meta("return-to");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Danbooru.ModQueue.initialize_approve_all_button = function() {
|
||||
$("#approve-all-button").click(function(e) {
|
||||
if (!confirm("Are you sure you want to approve every post on this page?")) {
|
||||
|
||||
@@ -4,6 +4,7 @@ module Moderator
|
||||
before_filter :post_approvers_only
|
||||
|
||||
def create
|
||||
cookies[:moderated] = Time.now.to_i
|
||||
@post = ::Post.find(params[:post_id])
|
||||
if @post.is_deleted? || @post.is_flagged? || @post.is_pending?
|
||||
@post.approve!
|
||||
|
||||
@@ -4,6 +4,7 @@ module Moderator
|
||||
before_filter :post_approvers_only
|
||||
|
||||
def create
|
||||
cookies[:moderated] = Time.now.to_i
|
||||
@post = ::Post.find(params[:post_id])
|
||||
@post_disapproval = PostDisapproval.create(:post => @post, :user => CurrentUser.user, :reason => params[:reason] || "disinterest", :message => params[:message])
|
||||
end
|
||||
|
||||
@@ -5,6 +5,8 @@ module Moderator
|
||||
before_filter :post_approvers_only
|
||||
|
||||
def show
|
||||
cookies[:moderated] = Time.now.to_i
|
||||
|
||||
if params[:per_page]
|
||||
cookies.permanent["mq_per_page"] = params[:per_page]
|
||||
end
|
||||
@@ -16,8 +18,22 @@ module Moderator
|
||||
respond_with(@posts)
|
||||
end
|
||||
|
||||
def random
|
||||
cookies[:moderated] = Time.now.to_i
|
||||
|
||||
::Post.without_timeout do
|
||||
@posts = ::Post.order("posts.id asc").pending_or_flagged.available_for_moderation(false).reorder("random()").limit(5)
|
||||
@posts.each # hack to force rails to eager load
|
||||
end
|
||||
|
||||
respond_with(@posts)
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def get_posts
|
||||
end
|
||||
|
||||
def per_page
|
||||
cookies["mq_per_page"] || params[:per_page] || 25
|
||||
end
|
||||
|
||||
@@ -27,6 +27,12 @@ class PostsController < ApplicationController
|
||||
end
|
||||
|
||||
def show
|
||||
if CurrentUser.is_janitor? && (cookies[:moderated].blank? || Time.at(cookies[:moderated].to_i) < 1.day.ago)
|
||||
flash[:notice] = "You haven't moderated any posts recently. Consider checking the queue."
|
||||
#redirect_to(random_moderator_post_queue_path(:return_to => request.original_url))
|
||||
#return
|
||||
end
|
||||
|
||||
@post = Post.find(params[:id])
|
||||
@post_flag = PostFlag.new(:post_id => @post.id)
|
||||
@post_appeal = PostAppeal.new(:post_id => @post.id)
|
||||
|
||||
@@ -13,4 +13,6 @@ $("#pending-approval-notice").hide();
|
||||
$("#c-moderator-post-queues #post-<%= @post.id %>").hide();
|
||||
Danbooru.notice("Post was approved");
|
||||
|
||||
Danbooru.ModQueue.increment_processed();
|
||||
|
||||
<% end %>
|
||||
|
||||
@@ -12,4 +12,6 @@ $("#pending-approval-notice").hide();
|
||||
$("#c-moderator-post-queues #post-<%= @post.id %>").remove();
|
||||
Danbooru.notice("Post was hidden");
|
||||
|
||||
Danbooru.ModQueue.increment_processed();
|
||||
|
||||
<% end %>
|
||||
|
||||
70
app/views/moderator/post/queues/random.html.erb
Normal file
70
app/views/moderator/post/queues/random.html.erb
Normal file
@@ -0,0 +1,70 @@
|
||||
<div id="c-moderator-post-queues">
|
||||
<div id="a-show">
|
||||
<div>
|
||||
<h1>Moderation Queue</h1>
|
||||
|
||||
<div id="moderation-guideline">
|
||||
<p>Here are five random posts that are up for moderation. See if any of them are worth approving. Once you finish processing all of them you will be taken to the previous URL (<%= params[:return_to] %>).</p>
|
||||
|
||||
<h1>Deletion Guidelines</h1>
|
||||
<p>
|
||||
As a general rule, you should only approve of posts that you personally like. Posts that are not approved in three days will be automatically deleted. Posts with score -3 or lower are marked red. Posts with score 3 or higher are marked green. Posts with the duplicate tag are marked in yellow.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<% @posts.each do |post| %>
|
||||
<div id="post-<%= post.id %>" class="post mod-queue-preview <%= PostPresenter.preview_class(post) %>" <%= PostPresenter.data_attributes(post) %> data-has-dup="<%= post.has_dup_tag? %>">
|
||||
<aside>
|
||||
<%= link_to(image_tag(post.preview_file_url), post_path(post), :target => "_blank") %>
|
||||
</aside>
|
||||
|
||||
<section>
|
||||
<ul>
|
||||
<li>
|
||||
<h2>
|
||||
<%= link_to "Approve", moderator_post_approval_path(:post_id => post.id), :remote => true, :method => :post, :class => "approve-link" %>
|
||||
| <%= link_to "Breaks Rules", moderator_post_disapproval_path(:post_id => post.id, :reason => "breaks_rules"), :remote => true, :method => :post, :class => "disapprove-link" %>
|
||||
| <%= link_to "Poor Quality", moderator_post_disapproval_path(:post_id => post.id, :reason => "poor_quality"), :remote => true, :method => :post, :class => "disapprove-link" %>
|
||||
| <%= link_to "No Interest", moderator_post_disapproval_path(:post_id => post.id, :reason => "disinterest"), :remote => true, :method => :post, :class => "disapprove-link" %>
|
||||
| <%= link_to "Detailed Rejection", "#", "data-post-id" => post.id, :class => "detailed-rejection-link" %>
|
||||
</h2>
|
||||
</li>
|
||||
<li><strong>Rating</strong>: <%= post.pretty_rating %></li>
|
||||
<li><strong>Score</strong>: <%= post.score %></li>
|
||||
<li>
|
||||
<strong>Size:</strong>
|
||||
<%= number_to_human_size(post.file_size) %>
|
||||
<% if post.has_dimensions? %>
|
||||
(<%= post.image_width %>x<%= post.image_height %>)
|
||||
<% end %>
|
||||
</li>
|
||||
<li><strong>Uploader</strong>: <%= link_to_user(post.uploader) %> <%= time_ago_in_words_tagged(post.created_at) %></li>
|
||||
<% if post.is_flagged? %>
|
||||
<li><strong>Flagged</strong>: <%= post_flag_reasons(post) %></li>
|
||||
<% end %>
|
||||
<% if (post.is_flagged? || post.is_deleted?) && post.appeals.any? %>
|
||||
<li><strong>Appeals</strong>: <%= post_appeal_reasons(post) %></li>
|
||||
<% end %>
|
||||
<li>
|
||||
<strong>Hidden</strong>: <%= render "post_disapprovals/compact_counts", :disapprovals => post.disapprovals, :post => post %>
|
||||
</li>
|
||||
<li><strong>Tags</strong>: <%= post.tag_string %></li>
|
||||
</ul>
|
||||
</section>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= render "post_disapprovals/detailed_rejection_dialog" %>
|
||||
<%= render "posts/partials/common/secondary_links" %>
|
||||
|
||||
<% content_for(:page_title) do %>
|
||||
Mod Queue - <%= Danbooru.config.app_name %>
|
||||
<% end %>
|
||||
|
||||
<% content_for(:html_header) do %>
|
||||
<meta name="random-mode" content="1">
|
||||
<meta name="return-to" content="<%= params[:return_to] %>">
|
||||
<% end %>
|
||||
@@ -17,7 +17,11 @@ Rails.application.routes.draw do
|
||||
resources :invitations, :only => [:new, :create, :index]
|
||||
resource :tag, :only => [:edit, :update]
|
||||
namespace :post do
|
||||
resource :queue, :only => [:show]
|
||||
resource :queue, :only => [:show] do
|
||||
member do
|
||||
get :random
|
||||
end
|
||||
end
|
||||
resource :approval, :only => [:create]
|
||||
resource :disapproval, :only => [:create]
|
||||
resources :posts, :only => [:delete, :undelete, :expunge, :confirm_delete] do
|
||||
|
||||
Reference in New Issue
Block a user