]> source.dussan.org Git - redmine.git/commitdiff
Fix `{{thumbnail}}` macro in an issue note cannot fetch an image attached in a differ...
authorGo MAEDA <maeda@farend.jp>
Fri, 30 Dec 2022 09:00:14 +0000 (09:00 +0000)
committerGo MAEDA <maeda@farend.jp>
Fri, 30 Dec 2022 09:00:14 +0000 (09:00 +0000)
Patch by Mizuki ISHIKAWA.

git-svn-id: https://svn.redmine.org/redmine/trunk@22012 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index 42096b9a3cd4e40b79a896e86c736d3fc0fa7dd4..9fbed6a6ed388f31f1903c0fcc6be2ce0970a3b8 100644 (file)
@@ -279,7 +279,8 @@ module Redmine
         size = size.to_i
         size = 200 unless size > 0
 
-        attachments = obj.attachments if obj.respond_to?(:attachments)
+        container = obj.is_a?(Journal) ? obj.journalized : obj
+        attachments = container.attachments if container.respond_to?(:attachments)
         if (controller_name == 'previews' || action_name == 'preview') && @attachments.present?
           attachments = (attachments.to_a + @attachments).compact
         end
index 58e51348a9fd52b9992897bee97cd6d222a2ffeb..9c387a3415feb5fc28c3e12b198f81409b61cfec 100644 (file)
@@ -8457,6 +8457,22 @@ class IssuesControllerTest < Redmine::ControllerTest
     end
   end
 
+  def test_show_with_thumbnail_macro_should_be_able_to_fetch_image_of_different_journal
+    @request.session[:user_id] = 1
+    issue = Issue.find(2)
+    attachment = Attachment.generate!(filename: 'foo.png', digest: Redmine::Utils.random_hex(32))
+    attachment.update(container: issue)
+
+    issue.init_journal(User.first, "{{thumbnail(#{attachment.filename})}}")
+    issue.save!
+    issue.reload
+
+    get :show, params: { id: issue.id }
+    assert_select "div#history div#journal-#{issue.journals.last.id}-notes" do
+      assert_select "a.thumbnail[title=?][href='/attachments/#{attachment.id}']", 'foo.png'
+    end
+  end
+
   def test_index_should_retrieve_default_query
     query = IssueQuery.find(4)
     IssueQuery.stubs(:default).returns query