Style obsolete artist changes (fixes #1171)
This commit is contained in:
@@ -3,10 +3,12 @@ module ArtistVersionsHelper
|
|||||||
diff = artist_version.other_names_diff(artist_version.previous)
|
diff = artist_version.other_names_diff(artist_version.previous)
|
||||||
html = []
|
html = []
|
||||||
diff[:added_names].each do |name|
|
diff[:added_names].each do |name|
|
||||||
html << '<ins>' + h(name) + '</ins>'
|
prefix = diff[:obsolete_added_names].include?(name) ? '<ins class="obsolete">' : '<ins>'
|
||||||
|
html << prefix + h(name) + '</ins>'
|
||||||
end
|
end
|
||||||
diff[:removed_names].each do |name|
|
diff[:removed_names].each do |name|
|
||||||
html << '<del>' + h(name) + '</del>'
|
prefix = diff[:obsolete_removed_names].include?(name) ? '<del class="obsolete">' : '<del>'
|
||||||
|
html << prefix + h(name) + '</del>'
|
||||||
end
|
end
|
||||||
diff[:unchanged_names].each do |name|
|
diff[:unchanged_names].each do |name|
|
||||||
html << '<span>' + h(name) + '</span>'
|
html << '<span>' + h(name) + '</span>'
|
||||||
@@ -18,10 +20,12 @@ module ArtistVersionsHelper
|
|||||||
diff = artist_version.urls_diff(artist_version.previous)
|
diff = artist_version.urls_diff(artist_version.previous)
|
||||||
html = []
|
html = []
|
||||||
diff[:added_urls].each do |url|
|
diff[:added_urls].each do |url|
|
||||||
html << '<li><ins>' + h(url) + '</ins></li>'
|
prefix = diff[:obsolete_added_urls].include?(url) ? '<ins class="obsolete">' : '<ins>'
|
||||||
|
html << '<li>' + prefix + h(url) + '</ins></li>'
|
||||||
end
|
end
|
||||||
diff[:removed_urls].each do |url|
|
diff[:removed_urls].each do |url|
|
||||||
html << '<li><del>' + h(url) + '</del></li>'
|
prefix = diff[:obsolete_removed_urls].include?(url) ? '<del class="obsolete">' : '<del>'
|
||||||
|
html << '<li>' + prefix + h(url) + '</del></li>'
|
||||||
end
|
end
|
||||||
diff[:unchanged_urls].each do |url|
|
diff[:unchanged_urls].each do |url|
|
||||||
html << '<li><span>' + h(url) + '</span></li>'
|
html << '<li><span>' + h(url) + '</span></li>'
|
||||||
|
|||||||
@@ -43,9 +43,13 @@ class Artist < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def url_array
|
||||||
|
urls.map(&:url)
|
||||||
|
end
|
||||||
|
|
||||||
def save_url_string
|
def save_url_string
|
||||||
if @url_string
|
if @url_string
|
||||||
prev = urls.map(&:url)
|
prev = url_array
|
||||||
curr = @url_string.scan(/\S+/).uniq
|
curr = @url_string.scan(/\S+/).uniq
|
||||||
|
|
||||||
duplicates = prev.select{|url| prev.count(url) > 1}.uniq
|
duplicates = prev.select{|url| prev.count(url) > 1}.uniq
|
||||||
@@ -69,11 +73,11 @@ class Artist < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def url_string
|
def url_string
|
||||||
@url_string || urls.map {|x| x.url}.join("\n")
|
@url_string || url_array.join("\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
def url_string_changed?
|
def url_string_changed?
|
||||||
url_string.scan(/\S+/) != urls.map(&:url)
|
url_string.scan(/\S+/) != url_array
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -67,26 +67,39 @@ class ArtistVersion < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def urls_diff(version)
|
def urls_diff(version)
|
||||||
|
latest_urls = artist.url_array
|
||||||
new_urls = url_array
|
new_urls = url_array
|
||||||
old_urls = version.present? ? version.url_array : []
|
old_urls = version.present? ? version.url_array : []
|
||||||
|
|
||||||
|
latest_urls = latest_urls.map {|url| ArtistUrl.legacy_normalize(url)}
|
||||||
new_urls = new_urls.map {|url| ArtistUrl.legacy_normalize(url)}
|
new_urls = new_urls.map {|url| ArtistUrl.legacy_normalize(url)}
|
||||||
old_urls = old_urls.map {|url| ArtistUrl.legacy_normalize(url)}
|
old_urls = old_urls.map {|url| ArtistUrl.legacy_normalize(url)}
|
||||||
|
|
||||||
|
added_urls = new_urls - old_urls
|
||||||
|
removed_urls = old_urls - new_urls
|
||||||
|
|
||||||
return {
|
return {
|
||||||
:added_urls => new_urls - old_urls,
|
:added_urls => added_urls,
|
||||||
:removed_urls => old_urls - new_urls,
|
:removed_urls => removed_urls,
|
||||||
|
:obsolete_added_urls => added_urls - latest_urls,
|
||||||
|
:obsolete_removed_urls => removed_urls & latest_urls,
|
||||||
:unchanged_urls => new_urls & old_urls,
|
:unchanged_urls => new_urls & old_urls,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def other_names_diff(version)
|
def other_names_diff(version)
|
||||||
|
latest_names = artist.other_names_array
|
||||||
new_names = other_names_array
|
new_names = other_names_array
|
||||||
old_names = version.present? ? version.other_names_array : []
|
old_names = version.present? ? version.other_names_array : []
|
||||||
|
|
||||||
|
added_names = new_names - old_names
|
||||||
|
removed_names = old_names - new_names
|
||||||
|
|
||||||
return {
|
return {
|
||||||
:added_names => new_names - old_names,
|
:added_names => added_names,
|
||||||
:removed_names => old_names - new_names,
|
:removed_names => removed_names,
|
||||||
|
:obsolete_added_names => added_names - latest_names,
|
||||||
|
:obsolete_removed_names => removed_names & latest_names,
|
||||||
:unchanged_names => new_names & old_names,
|
:unchanged_names => new_names & old_names,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user