size = size.to_i
size = 200 unless size > 0
- if obj && obj.respond_to?(:attachments) &&
- attachment = Attachment.latest_attach(obj.attachments, filename)
+
+ attachments = obj.attachments if obj.respond_to?(:attachments)
+ if (controller_name == 'previews' || action_name == 'preview') && @attachments.present?
+ attachments = (attachments.to_a + @attachments).compact
+ end
+ if attachments.present? && (attachment = Attachment.latest_attach(attachments, filename))
title = options[:title] || attachment.title
thumbnail_url =
url_for(:controller => 'attachments', :action => 'thumbnail',
assert_select 'a.attachment', :text => 'foo.bar'
end
+ def test_preview_issue_notes_should_show_thumbnail_of_file_immidiately_after_attachment
+ attachment = Attachment.generate!(filename: 'foo.png', digest: Redmine::Utils.random_hex(32))
+ attachment.update(container: nil)
+
+ @request.session[:user_id] = 2
+ post(
+ :issue,
+ params: {
+ project_id: '1',
+ issue_id: 1,
+ field: 'notes',
+ text: '{{thumbnail(foo.png)}}',
+ attachments: {'1': { token: attachment.token }}
+ }
+ )
+ assert_response :success
+ assert_select 'a.thumbnail[title=?]', 'foo.png'
+ end
+
def test_preview_new_news
get(
:news,