2013-08-19 07:14:26 -04:00
|
|
|
require 'flag_query'
|
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
class Admin::FlagsController < Admin::AdminController
|
2014-07-28 13:17:37 -04:00
|
|
|
|
2013-02-07 10:45:24 -05:00
|
|
|
def index
|
2013-05-12 21:09:03 -04:00
|
|
|
# we may get out of sync, fix it here
|
|
|
|
PostAction.update_flagged_posts_count
|
2014-07-28 13:17:37 -04:00
|
|
|
posts, topics, users = FlagQuery.flagged_posts_report(current_user, params[:filter], params[:offset].to_i, 10)
|
2013-05-12 21:09:03 -04:00
|
|
|
|
2013-05-29 16:49:34 -04:00
|
|
|
if posts.blank?
|
2014-07-28 13:17:37 -04:00
|
|
|
render json: { posts: [], topics: [], users: [] }
|
2013-02-05 14:16:51 -05:00
|
|
|
else
|
2014-07-28 13:17:37 -04:00
|
|
|
render json: MultiJson.dump({
|
|
|
|
posts: posts,
|
|
|
|
topics: serialize_data(topics, FlaggedTopicSerializer),
|
|
|
|
users: serialize_data(users, FlaggedUserSerializer)
|
|
|
|
})
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
def agree
|
2014-08-04 16:48:04 -04:00
|
|
|
params.permit(:id, :action_on_post)
|
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
post = Post.find(params[:id])
|
|
|
|
post_action_type = PostAction.post_action_type_for_post(post.id)
|
2014-08-04 16:48:04 -04:00
|
|
|
|
|
|
|
keep_post = params[:action_on_post] == "keep"
|
|
|
|
delete_post = params[:action_on_post] == "delete"
|
2014-09-09 14:26:40 -04:00
|
|
|
restore_post = params[:action_on_post] == "restore"
|
2014-08-04 16:48:04 -04:00
|
|
|
|
|
|
|
PostAction.agree_flags!(post, current_user, delete_post)
|
|
|
|
|
|
|
|
if delete_post
|
2014-07-28 13:17:37 -04:00
|
|
|
PostDestroyer.new(current_user, post).destroy
|
2014-09-09 14:26:40 -04:00
|
|
|
elsif restore_post
|
|
|
|
PostDestroyer.new(current_user, post).recover
|
2014-08-04 16:48:04 -04:00
|
|
|
elsif !keep_post
|
2014-07-28 13:17:37 -04:00
|
|
|
PostAction.hide_post!(post, post_action_type)
|
|
|
|
end
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2013-02-07 10:45:24 -05:00
|
|
|
render nothing: true
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|
2013-06-20 03:42:15 -04:00
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
def disagree
|
|
|
|
params.permit(:id)
|
|
|
|
post = Post.find(params[:id])
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
PostAction.clear_flags!(post, current_user)
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
post.unhide!
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2013-06-20 03:42:15 -04:00
|
|
|
render nothing: true
|
|
|
|
end
|
|
|
|
|
|
|
|
def defer
|
2014-07-28 13:17:37 -04:00
|
|
|
params.permit(:id, :delete_post)
|
|
|
|
post = Post.find(params[:id])
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
PostAction.defer_flags!(post, current_user, params[:delete_post])
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2014-07-28 13:17:37 -04:00
|
|
|
PostDestroyer.new(current_user, post).destroy if params[:delete_post]
|
2014-08-04 16:48:04 -04:00
|
|
|
|
2013-06-20 03:42:15 -04:00
|
|
|
render nothing: true
|
|
|
|
end
|
2014-04-30 10:58:01 -04:00
|
|
|
|
2013-02-05 14:16:51 -05:00
|
|
|
end
|