summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2021-03-10 00:56:15 +0000
committerGo MAEDA <maeda@farend.jp>2021-03-10 00:56:15 +0000
commit62c65afd0037e2ee3abe343e7ec7e6e8df116f92 (patch)
tree8c56994123de7295bfcaf9ed7562f1905502c333
parent58efae893c3861e9a68d50ecf785402eec7bf308 (diff)
downloadredmine-62c65afd0037e2ee3abe343e7ec7e6e8df116f92.tar.gz
redmine-62c65afd0037e2ee3abe343e7ec7e6e8df116f92.zip
Merged r20768 from trunk to 4.0-stable (#33459).
git-svn-id: http://svn.redmine.org/redmine/branches/4.0-stable@20770 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/helpers/journals_helper.rb2
-rw-r--r--test/helpers/journals_helper_test.rb26
2 files changed, 27 insertions, 1 deletions
diff --git a/app/helpers/journals_helper.rb b/app/helpers/journals_helper.rb
index 5e817e862..62c694c46 100644
--- a/app/helpers/journals_helper.rb
+++ b/app/helpers/journals_helper.rb
@@ -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
diff --git a/test/helpers/journals_helper_test.rb b/test/helpers/journals_helper_test.rb
index b9bec9200..14729694f 100644
--- a/test/helpers/journals_helper_test.rb
+++ b/test/helpers/journals_helper_test.rb
@@ -45,4 +45,30 @@ class JournalsHelperTest < Redmine::HelperTest
assert_kind_of Attachment, thumbnails.first
assert_equal 'image.png', thumbnails.first.filename
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