]> source.dussan.org Git - redmine.git/commitdiff
The order of thumbnails in journals does not match the order of file name list (...
authorGo MAEDA <maeda@farend.jp>
Tue, 9 Mar 2021 14:21:55 +0000 (14:21 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 9 Mar 2021 14:21:55 +0000 (14:21 +0000)
Patch by Mizuki ISHIKAWA.

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

app/helpers/journals_helper.rb
test/helpers/journals_helper_test.rb

index a6cb9763225d3d03a9ee5f4941f8f1c39855c449..4c3d410ecc2ed41d92fc045ac83057b9653bda12 100644 (file)
@@ -22,7 +22,7 @@ module JournalsHelper
   # Returns the attachments of a journal that are displayed as thumbnails
   def journal_thumbnail_attachments(journal)
     ids = journal.details.select {|d| d.property == 'attachment' && d.value.present?}.map(&:prop_key)
-    ids.any? ? Attachment.where(:id => ids).select(&:thumbnailable?) : []
+    ids.any? ? Attachment.where(:id => ids).select(&:thumbnailable?).sort_by{|a| ids.index(a.id.to_s)} : []
   end
 
   # Returns the action links for an issue journal
index 218b9498a7c9d9e7546f9a5abb0e435ceae0cd63..a75992c41f83565cdb98f484f6554828b32a0f75 100644 (file)
@@ -60,4 +60,30 @@ class JournalsHelperTest < Redmine::HelperTest
     assert_select_in journal_actions, 'a[title=?][class="icon-only icon-edit"]', 'Edit'
     assert_select_in journal_actions, 'div[class="drdn-items"] a[class="icon icon-del"]'
   end
+
+  def test_journal_thumbnail_attachments_should_be_in_the_same_order_as_the_journal_details
+    skip unless convert_installed?
+    set_tmp_attachments_directory
+    issue = Issue.generate!
+
+    # Thumbnails should be displayed in the same order as Journal.detail, not in attachment id order.
+    attachment1 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image1.png'), :author => User.find(1))
+    attachment2 = Attachment.generate!(:file => mock_file_with_options(:original_filename => 'image2.png'), :author => User.find(1))
+    journal = Journal.create!(:journalized => issue, :user_id => 1)
+    JournalDetail.create!(
+      :journal => journal, :property => 'attachment',
+      :prop_key => attachment2.id.to_s,
+      :value => 'image2.png'
+    )
+    JournalDetail.create!(
+      :journal => journal, :property => 'attachment',
+      :prop_key => attachment1.id.to_s,
+      :value => 'image1.png'
+    )
+    journal.reload
+    thumbnails = journal_thumbnail_attachments(journal)
+    assert_equal 2, thumbnails.count
+    assert_equal 2, journal.details.count
+    assert_equal journal.details.map(&:value), thumbnails.map(&:filename)
+  end
 end