From 2253cc6652cb77781b7cd71fd9dfa2773858a1db Mon Sep 17 00:00:00 2001 From: Junior Silva Date: Thu, 30 Jan 2014 17:59:39 -0300 Subject: [PATCH] diff-article-versions: display differences between two article versions AI2822 --- app/controllers/public/content_viewer_controller.rb | 7 +++++-- app/views/content_viewer/article_versions.rhtml | 29 +++++++++++++++-------------- config/routes.rb | 3 +++ 3 files changed, 23 insertions(+), 16 deletions(-) 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.') %>.

- +<% form_tag({:controller => 'content_viewer', :action => 'versions_diff', :profile => profile.identifier, :page => @page.path.split('/')}) do %> + -<%= 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