artist versions: refactor diffs.
This commit is contained in:
@@ -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>")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user