git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3500 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.0.0
@content.version = @page.content.version | @content.version = @page.content.version | ||||
else | else | ||||
if !@page.new_record? && @content.text == params[:content][:text] | if !@page.new_record? && @content.text == params[:content][:text] | ||||
attach_files(@page, params[:attachments]) | |||||
# don't save if text wasn't changed | # don't save if text wasn't changed | ||||
redirect_to :action => 'index', :id => @project, :page => @page.title | redirect_to :action => 'index', :id => @project, :page => @page.title | ||||
return | return | ||||
@content.author = User.current | @content.author = User.current | ||||
# if page is new @page.save will also save content, but not if page isn't a new record | # 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) | if (@page.new_record? ? @page.save : @content.save) | ||||
attach_files(@page, params[:attachments]) | |||||
call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page}) | call_hook(:controller_wiki_edit_after_save, { :params => params, :page => @page}) | ||||
redirect_to :action => 'index', :id => @project, :page => @page.title | redirect_to :action => 'index', :id => @project, :page => @page.title | ||||
end | end |
<h2><%=h @page.pretty_title %></h2> | <h2><%=h @page.pretty_title %></h2> | ||||
<% form_for :content, @content, :url => {:action => 'edit', :page => @page.title}, :html => {:id => 'wiki_form'} do |f| %> | |||||
<% form_for :content, @content, :url => {:action => 'edit', :page => @page.title}, :html => {:multipart => true, :id => 'wiki_form'} do |f| %> | |||||
<%= f.hidden_field :version %> | <%= f.hidden_field :version %> | ||||
<%= error_messages_for 'content' %> | <%= error_messages_for 'content' %> | ||||
<p><%= f.text_area :text, :cols => 100, :rows => 25, :class => 'wiki-edit', :accesskey => accesskey(:edit) %></p> | <p><%= f.text_area :text, :cols => 100, :rows => 25, :class => 'wiki-edit', :accesskey => accesskey(:edit) %></p> | ||||
<p><label><%= l(:field_comments) %></label><br /><%= f.text_field :comments, :size => 120 %></p> | <p><label><%= l(:field_comments) %></label><br /><%= f.text_field :comments, :size => 120 %></p> | ||||
<p><label><%=l(:label_attachment_plural)%></label><br /><%= render :partial => 'attachments/form' %></p> | |||||
<p><%= submit_tag l(:button_save) %> | <p><%= submit_tag l(:button_save) %> | ||||
<%= link_to_remote l(:label_preview), | <%= link_to_remote l(:label_preview), | ||||
{ :url => { :controller => 'wiki', :action => 'preview', :id => @project, :page => @page.title }, | { :url => { :controller => 'wiki', :action => 'preview', :id => @project, :page => @page.title }, |
assert_equal 'Created the page', page.content.comments | assert_equal 'Created the page', page.content.comments | ||||
end | end | ||||
def test_create_page_with_attachments | |||||
@request.session[:user_id] = 2 | |||||
assert_difference 'WikiPage.count' do | |||||
assert_difference 'Attachment.count' do | |||||
post :edit, :id => 1, | |||||
:page => 'New page', | |||||
:content => {:comments => 'Created the page', | |||||
:text => "h1. New page\n\nThis is a new page", | |||||
:version => 0}, | |||||
:attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}} | |||||
end | |||||
end | |||||
page = Project.find(1).wiki.find_page('New page') | |||||
assert_equal 1, page.attachments.count | |||||
assert_equal 'testfile.txt', page.attachments.first.filename | |||||
end | |||||
def test_preview_routing | def test_preview_routing | ||||
assert_routing( | assert_routing( | ||||
{:method => :post, :path => '/projects/567/wiki/CookBook_documentation/preview'}, | {:method => :post, :path => '/projects/567/wiki/CookBook_documentation/preview'}, |