Add alternate comparison types to versions

- The types are:
-- Previous: The default and the previously used type
-- Subsequent: Compares against the next version
-- Current: Compares against the current version
- Allow switching between comparison types in index and diff views
-- Have links vary depending upon current comparison type
This commit is contained in:
BrokenEagle
2020-03-17 07:23:42 +00:00
parent a95e57d938
commit e23ee170f5
41 changed files with 488 additions and 221 deletions

View File

@@ -1,29 +1,38 @@
module PoolVersionsHelper
def pool_version_show_diff(pool_version)
previous = pool_version.previous
previous.present? && pool_version.description != previous.description
def pool_version_show_diff(pool_version, type)
other = pool_version.send(type)
other.present? && pool_version.description != other.description
end
def pool_version_name_diff(pool_version)
previous = pool_version.previous
if previous.present? && (pool_version.name != previous.name)
name_diff = diff_name_html(pool_version.pretty_name, previous.pretty_name)
def pool_version_name_diff(pool_version, type)
other = pool_version.send(type)
if other.present? && (pool_version.name != other.name)
if type == "previous"
name_diff = diff_name_html(pool_version.name, other.name)
else
name_diff = diff_name_html(other.name, pool_version.name)
end
%(<br><br><b>Rename:</b><br>&ensp;#{name_diff}</p>).html_safe
else
""
end
end
def pool_version_post_diff(pool_version)
previous = pool_version.previous
def pool_version_post_diff(pool_version, type)
other = pool_version.send(type)
diff = {}
if previous.present?
diff[:added_post_ids] = pool_version.post_ids - previous.post_ids
diff[:removed_post_ids] = previous.post_ids - pool_version.post_ids
else
if other.present? && type == "previous"
diff[:added_post_ids] = pool_version.post_ids - other.post_ids
diff[:removed_post_ids] = other.post_ids - pool_version.post_ids
elsif other.present?
diff[:added_post_ids] = other.post_ids - pool_version.post_ids
diff[:removed_post_ids] = pool_version.post_ids - other.post_ids
elsif type == "previous"
diff[:added_post_ids] = pool_version.added_post_ids
diff[:removed_post_ids] = pool_version.removed_post_ids
else
return ""
end
render "pool_versions/diff", diff: diff