forked from e621ng/e621ng
[Pools] Simplify pool versions post changes
It unconditionally took values from the passed pool version
This commit is contained in:
parent
3f57ed5c6d
commit
5140bea658
@ -13,12 +13,6 @@ class PoolVersionsController < ApplicationController
|
||||
|
||||
def diff
|
||||
@pool_version = PoolVersion.find(params[:id])
|
||||
|
||||
if params[:other_id]
|
||||
@other_version = PoolVersion.find(params[:other_id])
|
||||
else
|
||||
@other_version = @pool_version.previous
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -1,16 +1,14 @@
|
||||
module PoolVersionsHelper
|
||||
def pool_version_diff(pool_version, previous = nil, options = {})
|
||||
def pool_version_posts_diff(pool_version)
|
||||
html = ""
|
||||
|
||||
diff = pool_version.build_diff(previous)
|
||||
|
||||
html << diff[:added_post_ids].map do |post_id|
|
||||
html << pool_version.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 << diff[:removed_post_ids].map do |post_id|
|
||||
html << pool_version.removed_post_ids.map do |post_id|
|
||||
'<del><a href="/posts/' + post_id.to_s + '">' + post_id.to_s + '</a></del>'
|
||||
end.join(" ")
|
||||
|
||||
|
@ -54,40 +54,20 @@ class PoolVersion < ApplicationRecord
|
||||
end
|
||||
|
||||
def fill_changes
|
||||
prev = previous
|
||||
|
||||
if prev
|
||||
self.added_post_ids = post_ids - prev.post_ids
|
||||
self.removed_post_ids = prev.post_ids - post_ids
|
||||
else
|
||||
self.added_post_ids = post_ids
|
||||
self.removed_post_ids = []
|
||||
end
|
||||
|
||||
self.description_changed = prev.nil? || description != prev.try(:description)
|
||||
self.name_changed = prev.nil? || name != prev.try(:name)
|
||||
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
|
||||
if previous
|
||||
self.added_post_ids = post_ids - previous.post_ids
|
||||
self.removed_post_ids = previous.post_ids - post_ids
|
||||
else
|
||||
diff[:added_post_ids] = added_post_ids
|
||||
diff[:removed_post_ids] = removed_post_ids
|
||||
diff[:added_desc] = description
|
||||
diff[:removed_desc] = prev.description
|
||||
self.added_post_ids = post_ids
|
||||
self.removed_post_ids = []
|
||||
end
|
||||
|
||||
diff
|
||||
self.description_changed = previous.nil? ? true : description != previous.description
|
||||
self.name_changed = previous.nil? ? true : name != previous.name
|
||||
end
|
||||
|
||||
def previous
|
||||
PoolVersion.where("pool_id = ? and version < ?", pool_id, version).order("version desc").first
|
||||
@previous ||= PoolVersion.where("pool_id = ? and version < ?", pool_id, version).order("version desc").first
|
||||
end
|
||||
|
||||
def pool
|
||||
|
@ -21,7 +21,7 @@
|
||||
<tr>
|
||||
<td><%= link_to pool_version.pretty_name, pool_path(pool_version.pool_id) %></td>
|
||||
<td><%= link_to pool_version.post_ids.size, pool_versions_path(:search => {:pool_id => pool_version.pool_id}) %></td>
|
||||
<td class="col-expand"><%= pool_version_diff(pool_version) %></td>
|
||||
<td class="col-expand"><%= pool_version_posts_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>
|
||||
<% if pool_version.updater %>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<tr id="pool-version-<%= pool_version.id %>">
|
||||
<td><%= link_to pool_version.pretty_name, pool_path(pool_version.pool_id) %></td>
|
||||
<td><%= link_to pool_version.post_ids.size, pool_versions_path(:search => {:pool_id => pool_version.pool_id}) %></td>
|
||||
<td class="col-expand"><%= pool_version_diff(pool_version) %></td>
|
||||
<td class="col-expand"><%= pool_version_posts_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>
|
||||
<% if pool_version.updater %>
|
||||
|
@ -3,9 +3,9 @@
|
||||
<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>
|
||||
<li><strong>Posts</strong>: <%= pool_version_posts_diff(@pool_version) %></li>
|
||||
<% if @pool_version.previous %>
|
||||
<li><strong>Old Desc</strong>: <%= @pool_version.previous.description %></li>
|
||||
<% end %>
|
||||
<li><strong>New Desc</strong>: <%= @pool_version.description %></li>
|
||||
</ul>
|
||||
|
Loading…
Reference in New Issue
Block a user