OSDN Git Service

Added the ability to easily rollback to a previous version of a wiki page.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 5 Apr 2007 14:45:44 +0000 (14:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 5 Apr 2007 14:45:44 +0000 (14:45 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@424 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/wiki_controller.rb
app/models/wiki_page.rb
app/views/wiki/show.rhtml
lang/de.yml
lang/en.yml
lang/es.yml
lang/fr.yml
lang/it.yml
lang/ja.yml
lang/zh.yml

index 5525656..5931a93 100644 (file)
@@ -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
index 19961cb..f2ea8fd 100644 (file)
@@ -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
index 2e8ee40..e4e1bc3 100644 (file)
@@ -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>
index c08b4af..c8d0aed 100644 (file)
@@ -380,6 +380,7 @@ button_cancel: Abbrechen
 button_activate: Aktivieren
 button_sort: Sortieren
 button_log_time: Log time
+button_rollback: Rollback to this version
 
 status_active: aktiv
 status_registered: angemeldet
index 4ce8bcb..8c56811 100644 (file)
@@ -380,6 +380,7 @@ button_cancel: Cancel
 button_activate: Activate
 button_sort: Sort
 button_log_time: Log time
+button_rollback: Rollback to this version
 
 status_active: active
 status_registered: registered
index a201484..8272cfe 100644 (file)
@@ -380,6 +380,7 @@ button_cancel: Cancelar
 button_activate: Activar
 button_sort: Clasificar
 button_log_time: Log time
+button_rollback: Rollback to this version
 
 status_active: active
 status_registered: registered
index 8b52ac5..b3efeeb 100644 (file)
@@ -380,6 +380,7 @@ button_cancel: Annuler
 button_activate: Activer
 button_sort: Trier
 button_log_time: Saisir temps
+button_rollback: Revenir à cette version
 
 status_active: actif
 status_registered: enregistré
index daaed6b..0900a2a 100644 (file)
@@ -380,6 +380,7 @@ button_cancel: Annulla
 button_activate: Attiva
 button_sort: Ordina
 button_log_time: Log time
+button_rollback: Rollback to this version
 
 status_active: active
 status_registered: registered
index bbeb6d4..babb212 100644 (file)
@@ -381,6 +381,7 @@ button_cancel: キャンセル
 button_activate: 有効にする
 button_sort: ソート
 button_log_time: 時間を記録
+button_rollback: Rollback to this version
 
 status_active: 有効
 status_registered: 登録
index 6301b82..42d6975 100644 (file)
@@ -383,6 +383,7 @@ button_cancel: 取消
 button_activate: 激活
 button_sort: 排序
 button_log_time: 登记工时
+button_rollback: Rollback to this version
 
 status_active: 激活
 status_registered: 已注册