diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-05 14:45:44 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-05 14:45:44 +0000 |
commit | f3a1b4e38c25fd34ef19d9b04567d327c34f6713 (patch) | |
tree | 32509daacaca872a21ccbbc806caee2fb2cde6f3 /app | |
parent | 7eb4abae80d7bd0b3b95c67b09f7b58b0b3ed031 (diff) | |
download | redmine-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.rb | 5 | ||||
-rw-r--r-- | app/models/wiki_page.rb | 6 | ||||
-rw-r--r-- | app/views/wiki/show.rhtml | 1 |
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> |