summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2007-04-05 14:45:44 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2007-04-05 14:45:44 +0000
commitf3a1b4e38c25fd34ef19d9b04567d327c34f6713 (patch)
tree32509daacaca872a21ccbbc806caee2fb2cde6f3 /app
parent7eb4abae80d7bd0b3b95c67b09f7b58b0b3ed031 (diff)
downloadredmine-f3a1b4e38c25fd34ef19d9b04567d327c34f6713.tar.gz
redmine-f3a1b4e38c25fd34ef19d9b04567d327c34f6713.zip
Added the ability to easily rollback to a previous version of a wiki page.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@424 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/controllers/wiki_controller.rb5
-rw-r--r--app/models/wiki_page.rb6
-rw-r--r--app/views/wiki/show.rhtml1
3 files changed, 10 insertions, 2 deletions
diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb
index 552565668..5931a93ad 100644
--- a/app/controllers/wiki_controller.rb
+++ b/app/controllers/wiki_controller.rb
@@ -27,7 +27,7 @@ class WikiController < ApplicationController
edit
render :action => 'edit' and return
end
- @content = (params[:version] ? @page.content.versions.find_by_version(params[:version]) : @page.content)
+ @content = @page.content_for_version(params[:version])
if params[:export] == 'html'
export = render_to_string :action => 'export', :layout => false
send_data(export, :type => 'text/html', :filename => "#{@page.title}.html")
@@ -43,7 +43,8 @@ class WikiController < ApplicationController
def edit
@page = @wiki.find_or_new_page(params[:page])
@page.content = WikiContent.new(:page => @page) if @page.new_record?
- @content = @page.content
+
+ @content = @page.content_for_version(params[:version])
@content.text = "h1. #{@page.pretty_title}" if @content.text.blank?
# don't keep previous comment
@content.comment = nil
diff --git a/app/models/wiki_page.rb b/app/models/wiki_page.rb
index 19961cb0b..f2ea8fd59 100644
--- a/app/models/wiki_page.rb
+++ b/app/models/wiki_page.rb
@@ -32,6 +32,12 @@ class WikiPage < ActiveRecord::Base
WikiPage.pretty_title(title)
end
+ def content_for_version(version=nil)
+ result = content.versions.find_by_version(version.to_i) if version
+ result ||= content
+ result
+ end
+
def self.pretty_title(str)
(str && str.is_a?(String)) ? str.tr('_', ' ') : str
end
diff --git a/app/views/wiki/show.rhtml b/app/views/wiki/show.rhtml
index 2e8ee4089..e4e1bc38d 100644
--- a/app/views/wiki/show.rhtml
+++ b/app/views/wiki/show.rhtml
@@ -1,5 +1,6 @@
<div class="contextual">
<%= link_to(l(:button_edit), {:action => 'edit', :page => @page.title}, :class => 'icon icon-edit') if @content.version == @page.content.version %>
+<%= link_to(l(:button_rollback), {:action => 'edit', :page => @page.title, :version => @content.version }, :class => 'icon icon-cancel') if @content.version < @page.content.version %>
<%= link_to(l(:label_history), {:action => 'history', :page => @page.title}, :class => 'icon icon-history') %>
<%= link_to(l(:label_page_index), {:action => 'special', :page => 'Page_index'}, :class => 'icon icon-index') %>
</div>