]> source.dussan.org Git - redmine.git/commitdiff
Merged r21716 and r21719 from trunk to 5.0-stable (#37379).
authorGo MAEDA <maeda@farend.jp>
Thu, 21 Jul 2022 14:31:16 +0000 (14:31 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 21 Jul 2022 14:31:16 +0000 (14:31 +0000)
git-svn-id: https://svn.redmine.org/redmine/branches/5.0-stable@21735 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/wiki_formatting/macros.rb
test/functional/previews_controller_test.rb

index 0727d6e2652a1fca58b95eb86b25c0843ed6fb39..42096b9a3cd4e40b79a896e86c736d3fc0fa7dd4 100644 (file)
@@ -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',
index aa282f36450c252bff2bb5130e5de37bfb743ad3..a3446a3022e7fce47ca1175af32da83fe9127dfd 100644 (file)
@@ -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,