diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index d8f23cfd..f85c719b 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -60,14 +60,18 @@ class WikiController < ApplicationController redirect_to :action => 'index', :id => @project, :page => @page.title return end - @content.text = params[:content][:text] - @content.comments = params[:content][:comments] + #@content.text = params[:content][:text] + #@content.comments = params[:content][:comments] + @content.attributes = params[:content] @content.author = logged_in_user # if page is new @page.save will also save content, but not if page isn't a new record if (@page.new_record? ? @page.save : @content.save) redirect_to :action => 'index', :id => @project, :page => @page.title end end + rescue ActiveRecord::StaleObjectError + # Optimistic locking exception + flash[:notice] = l(:notice_locking_conflict) end # show page history diff --git a/app/models/wiki_content.rb b/app/models/wiki_content.rb index b0382cfa..5b2e7c34 100644 --- a/app/models/wiki_content.rb +++ b/app/models/wiki_content.rb @@ -18,6 +18,7 @@ require 'zlib' class WikiContent < ActiveRecord::Base + set_locking_column :version belongs_to :page, :class_name => 'WikiPage', :foreign_key => 'page_id' belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' validates_presence_of :text diff --git a/app/views/wiki/edit.rhtml b/app/views/wiki/edit.rhtml index 1c0139e7..43f2ba5f 100644 --- a/app/views/wiki/edit.rhtml +++ b/app/views/wiki/edit.rhtml @@ -5,6 +5,7 @@