Link to attachment should return latest attachment (#7510).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11196 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2013-01-15 21:08:27 +00:00
parent 48c3785991
commit 93e0885b64
3 changed files with 22 additions and 1 deletions

View File

@ -774,7 +774,7 @@ module ApplicationHelper
end end
when 'attachment' when 'attachment'
attachments = options[:attachments] || (obj && obj.respond_to?(:attachments) ? obj.attachments : nil) attachments = options[:attachments] || (obj && obj.respond_to?(:attachments) ? obj.attachments : nil)
if attachments && attachment = attachments.detect {|a| a.filename == name } if attachments && attachment = Attachment.latest_attach(attachments, name)
link = link_to_attachment(attachment, :only_path => only_path, :download => true, :class => 'attachment') link = link_to_attachment(attachment, :only_path => only_path, :download => true, :class => 'attachment')
end end
when 'project' when 'project'

View File

@ -129,4 +129,16 @@ module ObjectHelpers
board.save! board.save!
board board
end end
def Attachment.generate!(attributes={})
@generated_filename ||= 'testfile0'
@generated_filename.succ!
attributes = attributes.dup
attachment = Attachment.new(attributes)
attachment.container ||= Issue.find(1)
attachment.author ||= User.find(2)
attachment.filename = @generated_filename if attachment.filename.blank?
attachment.save!
attachment
end
end end

View File

@ -555,6 +555,15 @@ RAW
to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" } to_test.each { |text, result| assert_equal "<p>#{result}</p>", textilizable(text, :attachments => Issue.find(3).attachments), "#{text} failed" }
end end
def test_attachment_link_should_link_to_latest_attachment
set_tmp_attachments_directory
a1 = Attachment.generate!(:filename => "test.txt", :created_on => 1.hour.ago)
a2 = Attachment.generate!(:filename => "test.txt")
assert_equal %(<p><a href="/attachments/download/#{a2.id}/test.txt" class="attachment">test.txt</a></p>),
textilizable('attachment:test.txt', :attachments => [a1, a2])
end
def test_wiki_links def test_wiki_links
to_test = { to_test = {
'[[CookBook documentation]]' => '<a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a>', '[[CookBook documentation]]' => '<a href="/projects/ecookbook/wiki/CookBook_documentation" class="wiki-page">CookBook documentation</a>',