diff --git a/app/controllers/pool_versions_controller.rb b/app/controllers/pool_versions_controller.rb
index 5ab18aa7a..ca5d44dd4 100644
--- a/app/controllers/pool_versions_controller.rb
+++ b/app/controllers/pool_versions_controller.rb
@@ -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
diff --git a/app/helpers/pool_versions_helper.rb b/app/helpers/pool_versions_helper.rb
index 8c25df57d..05898ca02 100644
--- a/app/helpers/pool_versions_helper.rb
+++ b/app/helpers/pool_versions_helper.rb
@@ -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|
'' + post_id.to_s + ''
end.join(" ")
html << " "
- html << pool_version.removed_post_ids.map do |post_id|
+ html << diff[:removed_post_ids].map do |post_id|
'' + post_id.to_s + ''
end.join(" ")
- if pool_version.description_changed?
- html << 'desc:' + h(pool_version.description) + ' '
- html << 'desc:' + h(pool_version.previous.description) + ' '
- end
-
return html.html_safe
end
end
diff --git a/app/logical/user_promotion.rb b/app/logical/user_promotion.rb
index bc3283256..69e2a8edb 100644
--- a/app/logical/user_promotion.rb
+++ b/app/logical/user_promotion.rb
@@ -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
diff --git a/app/models/pool_archive.rb b/app/models/pool_archive.rb
index ff38de4f9..e050e097d 100644
--- a/app/models/pool_archive.rb
+++ b/app/models/pool_archive.rb
@@ -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
diff --git a/app/views/pool_versions/diff.html.erb b/app/views/pool_versions/diff.html.erb
new file mode 100644
index 000000000..c0ab1e2ee
--- /dev/null
+++ b/app/views/pool_versions/diff.html.erb
@@ -0,0 +1,19 @@
+