diff --git a/app/controllers/public/content_viewer_controller.rb b/app/controllers/public/content_viewer_controller.rb
index 896bc97..5be5dbf 100644
--- a/app/controllers/public/content_viewer_controller.rb
+++ b/app/controllers/public/content_viewer_controller.rb
@@ -124,8 +124,11 @@ class ContentViewerController < ApplicationController
end
end
- def differences_between_article_versions(version1, version2)
- Diffy::Diff.new('version1', 'version2').to_s(:html)
+ def versions_diff
+ path = params[:page].join('/')
+ @page = profile.articles.find_by_path(path)
+ @v1, @v2 = @page.versions.find_by_version(params[:v1]).body, @page.versions.find_by_version(params[:v2]).body
+ p params
end
def article_versions
diff --git a/app/views/content_viewer/article_versions.rhtml b/app/views/content_viewer/article_versions.rhtml
index e6db591..56ef20f 100644
--- a/app/views/content_viewer/article_versions.rhtml
+++ b/app/views/content_viewer/article_versions.rhtml
@@ -2,19 +2,20 @@
<%= _('This is the list of all versions of this content. Select a version to see it and then revert to it.') %>.
-
- <% @versions.each do |v| %>
- -
- <%= radio_button_tag :first, "#{v.version}" %>
- <%= radio_button_tag :end, "#{v.version}" %>
- <%= link_to(_("Version #{v.version}"), @page.url.merge(:version => v.version)) %>
- <%= @page.version == v.version ? _('(current)') : '' %>
- <%= _('by %{author}') % {:author => link_to(@page.author_name(v.version), @page.author_url)} %>
-
<%= show_time(v.updated_at) %>
-
- <% end %>
-
+<% form_tag({:controller => 'content_viewer', :action => 'versions_diff', :profile => profile.identifier, :page => @page.path.split('/')}) do %>
+
+ <% @versions.each do |v| %>
+ -
+ <%= radio_button_tag 'v1', v.version %>
+ <%= radio_button_tag 'v2', v.version %>
+ <%= link_to(_("Version #{v.version}"), @page.url.merge(:version => v.version)) %>
+ <%= @page.version == v.version ? _('(current)') : '' %>
+ <%= _('by %{author}') % {:author => link_to(@page.author_name(v.version), @page.author_url)} %>
+
<%= show_time(v.updated_at) %>
+
+ <% end %>
+
-<%= button_to "Show differences between selected versions", :id => "diff-versions",
- :class => "diff-versions", :method => :get %>
+ <%= submit_button(:search, _('Show differences between selected versions')) %>
+<% end %>
<%= pagination_links @versions, :param_name => 'npage' %>
diff --git a/config/routes.rb b/config/routes.rb
index e4b4f2c..68ed94e 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -129,6 +129,9 @@ ActionController::Routing::Routes.draw do |map|
map.connect ':profile/*page/versions', :controller => 'content_viewer', :action => 'article_versions', :profile => /#{Noosfero.identifier_format}/, :conditions => { :if => lambda { |env| !Domain.hosting_profile_at(env[:host]) } }
map.connect '*page/versions', :controller => 'content_viewer', :action => 'article_versions'
+ map.connect ':profile/*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff', :profile => /#{Noosfero.identifier_format}/, :conditions => { :if => lambda { |env| !Domain.hosting_profile_at(env[:host]) } }
+ map.connect '*page/versions_diff', :controller => 'content_viewer', :action => 'versions_diff'
+
# match requests for profiles that don't have a custom domain
map.homepage ':profile/*page', :controller => 'content_viewer', :action => 'view_page', :profile => /#{Noosfero.identifier_format}/, :conditions => { :if => lambda { |env| !Domain.hosting_profile_at(env[:host]) } }
--
libgit2 0.21.2