fixes #2869: Add way to differentiate Pool Descriptions from Pool History
This commit is contained in:
@@ -15,6 +15,16 @@ class PoolVersionsController < ApplicationController
|
||||
end
|
||||
end
|
||||
|
||||
def diff
|
||||
@pool_version = PoolArchive.find(params[:id])
|
||||
|
||||
if params[:other_id]
|
||||
@other_version = PoolArchive.find(params[:other_id])
|
||||
else
|
||||
@other_version = @pool_version.previous
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def check_availabililty
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
module PoolVersionsHelper
|
||||
def pool_version_diff(pool_version)
|
||||
def pool_version_diff(pool_version, previous = nil, options = {})
|
||||
html = ""
|
||||
|
||||
html << pool_version.added_post_ids.map do |post_id|
|
||||
diff = pool_version.build_diff(previous)
|
||||
|
||||
html << diff[:added_post_ids].map do |post_id|
|
||||
'<ins><a href="/posts/' + post_id.to_s + '">' + post_id.to_s + '</a></ins>'
|
||||
end.join(" ")
|
||||
|
||||
html << " "
|
||||
|
||||
html << pool_version.removed_post_ids.map do |post_id|
|
||||
html << diff[:removed_post_ids].map do |post_id|
|
||||
'<del><a href="/posts/' + post_id.to_s + '">' + post_id.to_s + '</a></del>'
|
||||
end.join(" ")
|
||||
|
||||
if pool_version.description_changed?
|
||||
html << '<ins>desc:' + h(pool_version.description) + '</ins> '
|
||||
html << '<del>desc:' + h(pool_version.previous.description) + '</del> '
|
||||
end
|
||||
|
||||
return html.html_safe
|
||||
end
|
||||
end
|
||||
|
||||
@@ -31,11 +31,11 @@ private
|
||||
|
||||
def create_mod_actions
|
||||
if old_can_approve_posts != user.can_approve_posts?
|
||||
ModAction.log("#{promoter.name} changed approval privileges for #{user.name} from #{old_can_approve_posts} to [b]#{user.can_approve_posts?}[/b]")
|
||||
ModAction.log("\"#{promoter.name}\":/users/#{promoter.id} changed approval privileges for \"#{user.name}\":/users/#{user.id} from #{old_can_approve_posts} to [b]#{user.can_approve_posts?}[/b]")
|
||||
end
|
||||
|
||||
if old_can_upload_free != user.can_upload_free?
|
||||
ModAction.log("#{promoter.name} changed unlimited upload privileges for #{user.name} from #{old_can_upload_free} to [b]#{user.can_upload_free?}[/b]")
|
||||
ModAction.log("\"#{promoter.name}\":/users/#{promoter.id} changed unlimited upload privileges for \"#{user.name}\":/users/#{user.id} from #{old_can_upload_free} to [b]#{user.can_upload_free?}[/b]")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -62,6 +62,24 @@ class PoolArchive < ActiveRecord::Base
|
||||
sqs_service.send_message(msg)
|
||||
end
|
||||
|
||||
def build_diff(other = nil)
|
||||
diff = {}
|
||||
prev = previous
|
||||
|
||||
if prev.nil?
|
||||
diff[:added_post_ids] = added_post_ids
|
||||
diff[:removed_post_ids] = removed_post_ids
|
||||
diff[:added_desc] = description
|
||||
else
|
||||
diff[:added_post_ids] = post_ids - prev.post_ids
|
||||
diff[:removed_post_ids] = prev.post_ids - post_ids
|
||||
diff[:added_desc] = description
|
||||
diff[:removed_desc] = prev.description
|
||||
end
|
||||
|
||||
diff
|
||||
end
|
||||
|
||||
def previous
|
||||
PoolArchive.where("pool_id = ? and version < ?", pool_id, version).order("version desc").first
|
||||
end
|
||||
|
||||
19
app/views/pool_versions/diff.html.erb
Normal file
19
app/views/pool_versions/diff.html.erb
Normal file
@@ -0,0 +1,19 @@
|
||||
<div id="c-pools">
|
||||
<div id="a-diff">
|
||||
<h1>Pool Version Comparison: <%= @pool_version.name %></h1>
|
||||
|
||||
<ul>
|
||||
<li><strong>Posts</strong>: <%= pool_version_diff(@pool_version, @other_version) %></li>
|
||||
<% if @other_version %>
|
||||
<li><strong>Old Desc</strong>: <%= @other_version.description %></li>
|
||||
<% end %>
|
||||
<li><strong>New Desc</strong>: <%= @pool_version.description %></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%= render "pools/secondary_links" %>
|
||||
|
||||
<% content_for(:page_title) do %>
|
||||
Pool Version Comparison - <%= @pool_version.name %> - <%= Danbooru.config.app_name %>
|
||||
<% end %>
|
||||
@@ -8,6 +8,7 @@
|
||||
<th>Pool</th>
|
||||
<th>Post Count</th>
|
||||
<th>Changes</th>
|
||||
<th>Desc Chg</th>
|
||||
<th>Updater</th>
|
||||
<% if CurrentUser.is_moderator? %>
|
||||
<th>IP Address</th>
|
||||
@@ -24,6 +25,7 @@
|
||||
<td><%= link_to pool_version.pretty_name, pool_path(pool_version.pool_id), :class => "pool-category-#{pool_version.pool.category}" %></td>
|
||||
<td><%= link_to pool_version.post_ids.size, pool_versions_path(:search => {:pool_id => pool_version.pool_id}) %></td>
|
||||
<td><%= pool_version_diff(pool_version) %></td>
|
||||
<td><%= link_to_if pool_version.description_changed, pool_version.description_changed, diff_pool_version_path(pool_version.id) %></td>
|
||||
<td><%= link_to_user pool_version.updater %></td>
|
||||
<% if CurrentUser.is_moderator? %>
|
||||
<td>
|
||||
|
||||
@@ -187,7 +187,11 @@ Rails.application.routes.draw do
|
||||
get :all_select
|
||||
end
|
||||
end
|
||||
resources :pool_versions, :only => [:index]
|
||||
resources :pool_versions, :only => [:index] do
|
||||
member do
|
||||
get :diff
|
||||
end
|
||||
end
|
||||
resources :posts do
|
||||
resources :events, :only => [:index], :controller => "post_events"
|
||||
resource :artist_commentary, :only => [:index, :show] do
|
||||
|
||||
Reference in New Issue
Block a user