From 424eb40c9da0252112613eb6b9666a7805e029ef Mon Sep 17 00:00:00 2001 From: Toks Date: Tue, 12 Aug 2014 12:41:10 -0400 Subject: [PATCH] fixes #2240 --- app/helpers/wiki_page_versions_helper.rb | 26 +++++----------------- app/views/wiki_page_versions/diff.html.erb | 2 -- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/app/helpers/wiki_page_versions_helper.rb b/app/helpers/wiki_page_versions_helper.rb index b36604f92..d184eacb5 100644 --- a/app/helpers/wiki_page_versions_helper.rb +++ b/app/helpers/wiki_page_versions_helper.rb @@ -1,10 +1,16 @@ module WikiPageVersionsHelper def wiki_page_diff(thispage, otherpage) pattern = Regexp.new('(?:<.+?>)|(?:\w+)|(?:[ \t]+)|(?:\r?\n)|(?:.+?)') + other_names_pattern = Regexp.new('\S+|\s+') thisarr = thispage.body.scan(pattern) otharr = otherpage.body.scan(pattern) + if thispage.other_names.present? || otherpage.other_names.present? + thisarr = "#{thispage.other_names}\n\n".scan(other_names_pattern) + thisarr + otharr = "#{otherpage.other_names}\n\n".scan(other_names_pattern) + otharr + end + cbo = Diff::LCS::ContextDiffCallbacks.new diffs = thisarr.diff(otharr, cbo) @@ -48,24 +54,4 @@ module WikiPageVersionsHelper output.join.gsub(/\r?\n/, '
').html_safe end - - def wiki_page_other_names_diff(thispage, otherpage) - new_names = otherpage.other_names_array - old_names = thispage.other_names_array - added_names = new_names - old_names - removed_names = old_names - new_names - unchanged_names = new_names & old_names - - html = [] - added_names.each do |name| - html << '' + name + '' - end - removed_names.each do |name| - html << '' + name + '' - end - unchanged_names.each do |name| - html << '' + name + '' - end - return html.join(" ").html_safe - end end diff --git a/app/views/wiki_page_versions/diff.html.erb b/app/views/wiki_page_versions/diff.html.erb index 7abdd7d57..09a177f7e 100644 --- a/app/views/wiki_page_versions/diff.html.erb +++ b/app/views/wiki_page_versions/diff.html.erb @@ -4,8 +4,6 @@

Showing differences between <%= compact_time @thispage.updated_at %> (<%= link_to_user @thispage.updater %>) and <%= compact_time @otherpage.updated_at %> (<%= link_to_user @otherpage.updater %>)

-

<%= wiki_page_other_names_diff(@thispage, @otherpage) %>

-
<%= wiki_page_diff(@thispage, @otherpage) %>