]> source.dussan.org Git - redmine.git/commitdiff
Adds #current_version? method to wiki content.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Nov 2011 20:12:03 +0000 (20:12 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 28 Nov 2011 20:12:03 +0000 (20:12 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7972 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/wiki_controller.rb
app/models/wiki_content.rb
app/views/wiki/show.html.erb
test/fixtures/wiki_content_versions.yml
test/unit/wiki_content_test.rb

index 8713e91c4c258b6f2ab98069652db0c2d91a6fcd..2f4724f38e7df52113687b6613eaf403233c31b8 100644 (file)
@@ -86,7 +86,7 @@ class WikiController < ApplicationController
     end
     @editable = editable?
     @sections_editable = @editable && User.current.allowed_to?(:edit_wiki_pages, @page.project) &&
-      @content.version == @page.content.version &&
+      @content.current_version? &&
       Redmine::WikiFormatting.supports_section_edit?
 
     render :action => 'show'
index b1fe60fec7407c9c1794c1899f029863dae1bf95..430e9a50eeb4849224076de6c8a847341a11e261 100644 (file)
@@ -45,6 +45,11 @@ class WikiContent < ActiveRecord::Base
     notified.collect(&:mail)
   end
 
+  # Return true if the content is the current page content
+  def current_version?
+    true
+  end
+
   class Version
     belongs_to :page, :class_name => '::WikiPage', :foreign_key => 'page_id'
     belongs_to :author, :class_name => '::User', :foreign_key => 'author_id'
@@ -101,6 +106,11 @@ class WikiContent < ActiveRecord::Base
       page.project
     end
 
+    # Return true if the content is the current page content
+    def current_version?
+      page.content.version == self.version
+    end
+
     # Returns the previous version or nil
     def previous
       @previous ||= WikiContent::Version.find(:first,
index 22f3bab72d35816168fced787369da419c5e28fb..25dfc1062448c5b4a25edd0f7ffae8bd9a074144 100644 (file)
@@ -1,19 +1,19 @@
 <div class="contextual">
 <% if @editable %>
-<%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) if @content.version == @page.content.version %>
+<%= link_to_if_authorized(l(:button_edit), {:action => 'edit', :id => @page.title}, :class => 'icon icon-edit', :accesskey => accesskey(:edit)) if @content.current_version? %>
 <%= watcher_tag(@page, User.current) %>
 <%= link_to_if_authorized(l(:button_lock), {:action => 'protect', :id => @page.title, :protected => 1}, :method => :post, :class => 'icon icon-lock') if !@page.protected? %>
 <%= link_to_if_authorized(l(:button_unlock), {:action => 'protect', :id => @page.title, :protected => 0}, :method => :post, :class => 'icon icon-unlock') if @page.protected? %>
-<%= link_to_if_authorized(l(:button_rename), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') if @content.version == @page.content.version %>
+<%= link_to_if_authorized(l(:button_rename), {:action => 'rename', :id => @page.title}, :class => 'icon icon-move') if @content.current_version? %>
 <%= link_to_if_authorized(l(:button_delete), {:action => 'destroy', :id => @page.title}, :method => :delete, :confirm => l(:text_are_you_sure), :class => 'icon icon-del') %>
-<%= link_to_if_authorized(l(:button_rollback), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') if @content.version < @page.content.version %>
+<%= link_to_if_authorized(l(:button_rollback), {:action => 'edit', :id => @page.title, :version => @content.version }, :class => 'icon icon-cancel') unless @content.current_version? %>
 <% end %>
 <%= link_to_if_authorized(l(:label_history), {:action => 'history', :id => @page.title}, :class => 'icon icon-history') %>
 </div>
 
 <%= wiki_page_breadcrumb(@page) %>
 
-<% if @content.version != @page.content.version %>
+<% unless @content.current_version? %>
     <p>
     <%= link_to(("\xc2\xab " + l(:label_previous)),
                 :action => 'show', :id => @page.title, :project_id => @page.project,
index cdfeadd9499ac32f9e20c83721d6541e2b6b78b1..e7c0d4832a370a96e1fa44eb1ea1896696bb64bc 100644 (file)
@@ -64,6 +64,8 @@ wiki_content_versions_005:
     @WHATEVER@
     
     Maecenas sed elit sit amet mi accumsan vestibulum non nec velit. Proin porta tincidunt lorem, consequat rhoncus dolor fermentum in.
+
+    Cras ipsum felis, ultrices at porttitor vel, faucibus eu nunc.
     
     h2. Heading 2
 
@@ -75,4 +77,26 @@ wiki_content_versions_005:
   version: 2
   author_id: 1
   comments: 
+wiki_content_versions_006: 
+  data: |-
+    h1. Title
+    
+    Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas sed libero.
+    
+    h2. Heading 1
+    
+    @WHATEVER@
+    
+    Maecenas sed elit sit amet mi accumsan vestibulum non nec velit. Proin porta tincidunt lorem, consequat rhoncus dolor fermentum in.
+    
+    h2. Heading 2
+
+    Morbi facilisis accumsan orci non pharetra.
+  updated_on: 2007-03-08 00:18:07 +01:00
+  page_id: 11
+  wiki_content_id: 11
+  id: 6
+  version: 3
+  author_id: 1
+  comments: 
   
index 97c6b8ade31445b032989c38e5406916dbf2136c..4900f48e2bbedb7f33b557255239febd6e1744c2 100644 (file)
@@ -85,4 +85,11 @@ class WikiContentTest < ActiveSupport::TestCase
     page.reload
     assert_equal 500.kilobyte, page.content.text.size
   end
+  
+  def test_current_version
+    content = WikiContent.find(11)
+    assert_equal true, content.current_version?
+    assert_equal true, content.versions.first(:order => 'version DESC').current_version?
+    assert_equal false, content.versions.first(:order => 'version ASC').current_version?
+  end
 end