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:
@@ -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> #{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
|
||||
|
||||
Reference in New Issue
Block a user