|
|
@@ -62,7 +62,12 @@ class WikiController < ApplicationController |
|
|
|
|
|
|
|
# display a page (in editing mode if it doesn't exist) |
|
|
|
def show |
|
|
|
if @page.new_record? |
|
|
|
if params[:version] && !User.current.allowed_to?(:view_wiki_edits, @project) |
|
|
|
deny_access |
|
|
|
return |
|
|
|
end |
|
|
|
@content = @page.content_for_version(params[:version]) |
|
|
|
if @content.nil? |
|
|
|
if User.current.allowed_to?(:edit_wiki_pages, @project) && editable? && !api_request? |
|
|
|
edit |
|
|
|
render :action => 'edit' |
|
|
@@ -71,11 +76,6 @@ class WikiController < ApplicationController |
|
|
|
end |
|
|
|
return |
|
|
|
end |
|
|
|
if params[:version] && !User.current.allowed_to?(:view_wiki_edits, @project) |
|
|
|
deny_access |
|
|
|
return |
|
|
|
end |
|
|
|
@content = @page.content_for_version(params[:version]) |
|
|
|
if User.current.allowed_to?(:export_wiki_pages, @project) |
|
|
|
if params[:format] == 'pdf' |
|
|
|
send_data(wiki_page_to_pdf(@page, @project), :type => 'application/pdf', :filename => "#{@page.title}.pdf") |
|
|
@@ -104,19 +104,19 @@ class WikiController < ApplicationController |
|
|
|
def edit |
|
|
|
return render_403 unless editable? |
|
|
|
if @page.new_record? |
|
|
|
@page.content = WikiContent.new(:page => @page) |
|
|
|
if params[:parent].present? |
|
|
|
@page.parent = @page.wiki.find_page(params[:parent].to_s) |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
@content = @page.content_for_version(params[:version]) |
|
|
|
@content ||= WikiContent.new(:page => @page) |
|
|
|
@content.text = initial_page_content(@page) if @content.text.blank? |
|
|
|
# don't keep previous comment |
|
|
|
@content.comments = nil |
|
|
|
|
|
|
|
# To prevent StaleObjectError exception when reverting to a previous version |
|
|
|
@content.version = @page.content.version |
|
|
|
@content.version = @page.content.version if @page.content |
|
|
|
|
|
|
|
@text = @content.text |
|
|
|
if params[:section].present? && Redmine::WikiFormatting.supports_section_edit? |
|
|
@@ -130,10 +130,9 @@ class WikiController < ApplicationController |
|
|
|
def update |
|
|
|
return render_403 unless editable? |
|
|
|
was_new_page = @page.new_record? |
|
|
|
@page.content = WikiContent.new(:page => @page) if @page.new_record? |
|
|
|
@page.safe_attributes = params[:wiki_page] |
|
|
|
|
|
|
|
@content = @page.content |
|
|
|
@content = @page.content || WikiContent.new(:page => @page) |
|
|
|
content_params = params[:content] |
|
|
|
if content_params.nil? && params[:wiki_page].is_a?(Hash) |
|
|
|
content_params = params[:wiki_page].slice(:text, :comments, :version) |
|
|
@@ -152,7 +151,7 @@ class WikiController < ApplicationController |
|
|
|
end |
|
|
|
@content.author = User.current |
|
|
|
|
|
|
|
if @page.save_with_content |
|
|
|
if @page.save_with_content(@content) |
|
|
|
attachments = Attachment.attach_files(@page, params[:attachments]) |
|
|
|
render_attachment_warning_if_needed(@page) |
|
|
|
call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page}) |