- 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
41 lines
1.3 KiB
Ruby
41 lines
1.3 KiB
Ruby
module PoolVersionsHelper
|
|
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, 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, type)
|
|
other = pool_version.send(type)
|
|
diff = {}
|
|
|
|
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
|
|
end
|
|
end
|