artist versions: refactor diffs.

This commit is contained in:
evazion
2018-12-07 01:47:46 -06:00
parent 7bbe4e8ac1
commit e25e8d564a
6 changed files with 73 additions and 71 deletions

View File

@@ -1,6 +1,11 @@
require 'dtext'
module ApplicationHelper
def diff_list_html(new, old, latest)
diff = SetDiff.new(new, old, latest)
render "diff_list", diff: diff
end
def wordbreakify(string)
lines = string.scan(/.{1,10}/)
wordbreaked_string = lines.map{|str| h(str)}.join("<wbr>")

View File

@@ -1,42 +1,17 @@
module ArtistVersionsHelper
def artist_version_other_names_diff(artist_version)
diff = artist_version.other_names_diff(artist_version.previous)
html = '<span class="diff-list">'
new_names = artist_version.other_names
old_names = artist_version.previous.try(:other_names)
latest_names = artist_version.artist.other_names
diff[:added_names].each do |name|
prefix = diff[:obsolete_added_names].include?(name) ? '<ins class="obsolete">' : '<ins>'
html << prefix + h(name) + '</ins>'
end
diff[:removed_names].each do |name|
prefix = diff[:obsolete_removed_names].include?(name) ? '<del class="obsolete">' : '<del>'
html << prefix + h(name) + '</del>'
end
diff[:unchanged_names].each do |name|
html << '<span>' + h(name) + '</span>'
html << " "
end
html << "</span>"
return html.html_safe
diff_list_html(new_names, old_names, latest_names)
end
def artist_version_urls_diff(artist_version)
diff = artist_version.urls_diff(artist_version.previous)
html = '<ul class="diff-list">'
new_urls = artist_version.urls
old_urls = artist_version.previous.try(:urls)
latest_urls = artist_version.artist.urls.map(&:to_s)
diff[:added_urls].each do |url|
prefix = diff[:obsolete_added_urls].include?(url) ? '<ins class="obsolete">' : '<ins>'
html << '<li>' + prefix + h(url) + '</ins></li>'
end
diff[:removed_urls].each do |url|
prefix = diff[:obsolete_removed_urls].include?(url) ? '<del class="obsolete">' : '<del>'
html << '<li>' + prefix + h(url) + '</del></li>'
end
diff[:unchanged_urls].each do |url|
html << '<li><span>' + h(url) + '</span></li>'
end
html << "</ul>"
html.html_safe
diff_list_html(new_urls, old_urls, latest_urls)
end
end