diff --git a/app/assets/stylesheets/specific/posts.css.scss b/app/assets/stylesheets/specific/posts.css.scss index eddf92f4c..025adb0a3 100644 --- a/app/assets/stylesheets/specific/posts.css.scss +++ b/app/assets/stylesheets/specific/posts.css.scss @@ -478,6 +478,10 @@ div#c-post-versions, div#c-artist-versions { word-wrap: break-word } + tr.hilite { + background: $highlight_color; + } + ins, ins a { color: green; text-decoration: none; diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index b93c13161..0e28bea8e 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -1,6 +1,7 @@ class ReportsController < ApplicationController before_filter :member_only before_filter :gold_only, :only => [:similar_users] + before_filter :janitor_only, :only => [:post_versions, :post_versions_create] def user_promotions @report = Reports::UserPromotions.new @@ -22,4 +23,18 @@ class ReportsController < ApplicationController @report = Reports::UserSimilarity.new(CurrentUser.id) @presenter = UserSimilarityPresenter.new(@report) end + + def post_versions + end + + def post_versions_create + if params[:type] == "added" + @report = Reports::PostVersionsAdded.new(params[:tag]) + else + @report = Reports::PostVersionRemoved.new(params[:tag]) + end + @report.process! + flash[:notice] = "Report is being generated and will be emailed to you shortly" + redirect_to reports_post_versions_path + end end diff --git a/app/logical/reports/post_versions_added.rb b/app/logical/reports/post_versions_added.rb new file mode 100644 index 000000000..617aedca5 --- /dev/null +++ b/app/logical/reports/post_versions_added.rb @@ -0,0 +1,17 @@ +module Reports + class PostVersionsAdded + attr_reader :tag, :email + + def initialize(tag, email) + @tag = tag + @email = email + end + + def process! + if tag + json = {"type" => "post_versions_added", "tag" => tag, "email" => email}.to_json + SqsService.new(Danbooru.config.aws_sqs_post_versions_url).send_message(json) + end + end + end +end diff --git a/app/logical/reports/post_versions_removed.rb b/app/logical/reports/post_versions_removed.rb new file mode 100644 index 000000000..fcf4bd35a --- /dev/null +++ b/app/logical/reports/post_versions_removed.rb @@ -0,0 +1,17 @@ +module Reports + class PostVersionsRemoved + attr_reader :tag, :email + + def initialize(tag, email) + @tag = tag + @email = email + end + + def process! + if tag + json = {"type" => "post_versions_removed", "tag" => tag, "email" => email}.to_json + SqsService.new(Danbooru.config.aws_sqs_post_versions_url).send_message(json) + end + end + end +end diff --git a/app/views/post_versions/_listing.html.erb b/app/views/post_versions/_listing.html.erb index 9de79017f..c015da48d 100644 --- a/app/views/post_versions/_listing.html.erb +++ b/app/views/post_versions/_listing.html.erb @@ -18,7 +18,7 @@
<% post_versions.each do |post_version| %> -You can search all post changes to find when and where a tag was added or removed. Because these queries can take a long time to generate the results will be emailed to you. Only the 1,000 most recent changes will be returned.
+ + <%= form_tag(reports_post_versions_create_path, :method => :post, :class => "simple_form") do %> +