From fe61a173802141c0a4026c6ad052bcb071b62861 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Thu, 21 Jul 2022 14:52:14 +0000 Subject: [PATCH] Merged r21716 and r21719 from trunk to 4.2-stable (#37379). git-svn-id: https://svn.redmine.org/redmine/branches/4.2-stable@21736 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/wiki_formatting/macros.rb | 8 ++++++-- test/functional/previews_controller_test.rb | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/redmine/wiki_formatting/macros.rb b/lib/redmine/wiki_formatting/macros.rb index f0ac94e20..c62eaba13 100644 --- a/lib/redmine/wiki_formatting/macros.rb +++ b/lib/redmine/wiki_formatting/macros.rb @@ -278,8 +278,12 @@ module Redmine 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', diff --git a/test/functional/previews_controller_test.rb b/test/functional/previews_controller_test.rb index a8c1e8585..ccda60923 100644 --- a/test/functional/previews_controller_test.rb +++ b/test/functional/previews_controller_test.rb @@ -88,6 +88,25 @@ class PreviewsControllerTest < Redmine::ControllerTest 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, -- 2.39.5