diff --git a/app/assets/stylesheets/specific/posts.css.scss b/app/assets/stylesheets/specific/posts.css.scss index 9c78725fc..8327bb04b 100644 --- a/app/assets/stylesheets/specific/posts.css.scss +++ b/app/assets/stylesheets/specific/posts.css.scss @@ -302,11 +302,19 @@ div#c-post-versions, div#c-artist-versions { margin-right: 0.5em; } + ins.obsolete, ins.obsolete a { + color: darkGreen; + } + del, del a { color: red; text-decoration: line-through; margin-right: 0.5em; } + + del.obsolete, del.obsolete a { + color: darkRed; + } } } diff --git a/app/helpers/post_versions_helper.rb b/app/helpers/post_versions_helper.rb index a9ce482d1..cf2e0d9c8 100644 --- a/app/helpers/post_versions_helper.rb +++ b/app/helpers/post_versions_helper.rb @@ -5,9 +5,15 @@ module PostVersionsHelper diff[:added_tags].each do |tag| html << '+' + link_to(tag, posts_path(:tags => tag)) + '' end + diff[:obsolete_added_tags].each do |tag| + html << '+' + link_to(tag, posts_path(:tags => tag)) + '' + end diff[:removed_tags].each do |tag| html << '-' + link_to(tag, posts_path(:tags => tag)) + '' end + diff[:obsolete_removed_tags].each do |tag| + html << '-' + link_to(tag, posts_path(:tags => tag)) + '' + end diff[:unchanged_tags].each do |tag| html << '' + link_to(tag, posts_path(:tags => tag)) + '' end diff --git a/app/models/post_version.rb b/app/models/post_version.rb index 1e7dff2e8..ee316ca29 100644 --- a/app/models/post_version.rb +++ b/app/models/post_version.rb @@ -84,12 +84,15 @@ class PostVersion < ActiveRecord::Base old_tags << "source:#{version.source}" if version.source.present? end + added_tags = new_tags - old_tags + removed_tags = old_tags - new_tags + return { - :added_tags => new_tags - old_tags, - :removed_tags => old_tags - new_tags, + :added_tags => added_tags & latest_tags, + :removed_tags => removed_tags - latest_tags, + :obsolete_added_tags => added_tags - latest_tags, + :obsolete_removed_tags => removed_tags & latest_tags, :unchanged_tags => new_tags & old_tags, - :obsolete_added_tags => new_tags - latest_tags, - :obsolete_removed_tags => old_tags & latest_tags, } end