diff --git a/app/controllers/my_profile/cms_controller.rb b/app/controllers/my_profile/cms_controller.rb index 5349636..c7a635d 100644 --- a/app/controllers/my_profile/cms_controller.rb +++ b/app/controllers/my_profile/cms_controller.rb @@ -343,7 +343,7 @@ class CmsController < MyProfileController def media_upload files_uploaded = [] parent = check_parent(params[:parent_id]) - files = [:file1,:file2, :file3].map { |f| params[f] } + files = [:file1,:file2, :file3].map { |f| params[f] }.compact if request.post? files.each do |file| files_uploaded << UploadedFile.create(:uploaded_data => file, :profile => profile, :parent => parent) unless file == '' @@ -401,7 +401,7 @@ class CmsController < MyProfileController list.map do |item| { 'title' => item.title, - 'url' => url_for(item.url), + 'url' => item.image? ? item.public_filename(:uploaded) : url_for(item.url), :icon => icon_for_article(item), :content_type => item.mime_type } diff --git a/lib/delayed_attachment_fu.rb b/lib/delayed_attachment_fu.rb index 312bf92..00f62fa 100644 --- a/lib/delayed_attachment_fu.rb +++ b/lib/delayed_attachment_fu.rb @@ -38,7 +38,11 @@ module DelayedAttachmentFu end def public_filename(size=nil) - if !self.thumbnailable? || self.thumbnails_processed + force = (size == :uploaded) + if force + size = nil + end + if !self.thumbnailable? || self.thumbnails_processed || force super(size) else size ||= 'thumb' diff --git a/test/functional/cms_controller_test.rb b/test/functional/cms_controller_test.rb index 555150a..dae4d5d 100644 --- a/test/functional/cms_controller_test.rb +++ b/test/functional/cms_controller_test.rb @@ -1632,7 +1632,7 @@ class CmsControllerTest < Test::Unit::TestCase end should 'upload media by AJAX' do - post :media_upload, :profile => profile.identifier, :uploaded_files => [fixture_file_upload('/files/test.txt', 'text/plain'), fixture_file_upload('/files/rails.png', 'image/png')] + post :media_upload, :profile => profile.identifier, :file1 => fixture_file_upload('/files/test.txt', 'text/plain'), :file2 => fixture_file_upload('/files/rails.png', 'image/png'), :file3 => '' assert_match 'test.txt', @response.body assert_equal 'application/json', @response.content_type @@ -1644,10 +1644,14 @@ class CmsControllerTest < Test::Unit::TestCase assert_match /text/, data[0]['content_type'] assert_equal 'rails.png', data[1]['title'] - assert_match /\/testinguser\/rails.png$/, data[1]['url'] + assert_no_match /\/public\/articles\/.*\/rails.png$/, data[1]['url'] assert_match /png$/, data[1]['icon'] assert_match /image/, data[1]['content_type'] end + should 'not when media upload via AJAX contains empty files' do + post :media_upload, :profile => @profile.identifier + end + end -- libgit2 0.21.2