From bf80644ccec9f4c62e0b96c7b0442be57925b3d6 Mon Sep 17 00:00:00 2001 From: Ana Losnak Date: Thu, 10 Oct 2013 00:29:39 +0400 Subject: [PATCH] Add new template to display versioned article --- app/controllers/public/content_viewer_controller.rb | 10 ++++++---- app/models/article.rb | 4 +++- app/views/content_viewer/versioned_article.rhtml | 32 ++++++++++++++++++++++++++++++++ test/unit/article_test.rb | 5 +++++ 4 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 app/views/content_viewer/versioned_article.rhtml diff --git a/app/controllers/public/content_viewer_controller.rb b/app/controllers/public/content_viewer_controller.rb index dd2bbcc..0317963 100644 --- a/app/controllers/public/content_viewer_controller.rb +++ b/app/controllers/public/content_viewer_controller.rb @@ -23,10 +23,6 @@ class ContentViewerController < ApplicationController redirect_to profile.url.merge(:page => page_from_old_path.explode_path) return end - else - if version - @page = @page.versions.find_by_version version - end end end @@ -48,6 +44,12 @@ class ContentViewerController < ApplicationController return end + if version + @versioned_article = @page.versions.find_by_version(version) + render :template => 'content_viewer/versioned_article.rhtml' + return + end + if request.xhr? && params[:toolbar] render :partial => 'article_toolbar' return diff --git a/app/models/article.rb b/app/models/article.rb index 6671888..99cc99f 100644 --- a/app/models/article.rb +++ b/app/models/article.rb @@ -631,7 +631,9 @@ class Article < ActiveRecord::Base (allow_post_content?(the_profile) ? "-owner" : '') + (params[:npage] ? "-npage-#{params[:npage]}" : '') + (params[:year] ? "-year-#{params[:year]}" : '') + - (params[:month] ? "-month-#{params[:month]}" : '') + (params[:month] ? "-month-#{params[:month]}" : '') + + (params[:rev] ? "-rev-#{params[:rev]}" : '') + end def first_paragraph diff --git a/app/views/content_viewer/versioned_article.rhtml b/app/views/content_viewer/versioned_article.rhtml new file mode 100644 index 0000000..02c3370 --- /dev/null +++ b/app/views/content_viewer/versioned_article.rhtml @@ -0,0 +1,32 @@ +
+ +
<%= _("This is the revision %s of this content") % @versioned_article.version %>
+ +<% if @page.display_hits? || @page.license.present? %> +
+ <% if @versioned_article.license.present? %> +
+ <%= _('Licensed under %s') % (@versioned_article.license.url.present? ? link_to(@versioned_article.license.name, @versioned_article.license.url, :target => '_blank') : @versioned_article.license.name) %> +
+ <% end %> +
+<% end %> + +<% cache(@page.cache_key(params, user, language)) do %> +
"> + <% options = @page.image? ? {:gallery_view => true} : {} %> + <%= article_to_html(@page, options) %> +
+
+<% end %> + + +
+ <%= #TODO Review this %> + <%= @page.versions.map {|v| link_to("r#{v.version}", @page.url.merge(:rev => v.version))} %> +
+ +<%= display_source_info(@versioned_article) %> + +
+<%= add_zoom_to_article_images %> diff --git a/test/unit/article_test.rb b/test/unit/article_test.rb index 8eb8246..8b91391 100644 --- a/test/unit/article_test.rb +++ b/test/unit/article_test.rb @@ -740,6 +740,11 @@ class ArticleTest < ActiveSupport::TestCase assert_match(/-year-2009-month-04/, a.cache_key(:year => '2009', :month => '04')) end + should 'use revision number to compose cache key' do + a = fast_create(Article, :name => 'Versioned article', :profile_id => profile.id) + assert_match(/-rev-2/,a.cache_key(:rev => 2)) + end + should 'not be highlighted by default' do a = Article.new assert !a.highlighted -- libgit2 0.21.2