diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index e1e0fc559..ac39a1ffa 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -82,7 +82,7 @@ module IssuesHelper
s << '
'
subject = h(issue.subject)
if issue.is_private?
- subject = subject + ' ' + content_tag('span', l(:field_is_private), :class => 'private')
+ subject = subject + ' ' + content_tag('span', l(:field_is_private), :class => 'private')
end
s << content_tag('h3', subject)
s << '
' * (ancestors.size + 1)
@@ -309,18 +309,22 @@ module IssuesHelper
items = []
%w(author status priority assigned_to category fixed_version).each do |attribute|
unless issue.disabled_core_fields.include?(attribute+"_id")
+ attr_value = "#{issue.send attribute}"
+ next if attr_value.blank?
if html
- items << content_tag('strong', "#{l("field_#{attribute}")}: ") + (issue.send attribute)
+ items << content_tag('strong', "#{l("field_#{attribute}")}: ") + attr_value
else
- items << "#{l("field_#{attribute}")}: #{issue.send attribute}"
+ items << "#{l("field_#{attribute}")}: #{attr_value}"
end
end
end
issue.visible_custom_field_values(user).each do |value|
+ cf_value = show_value(value, false)
+ next if cf_value.blank?
if html
- items << content_tag('strong', "#{value.custom_field.name}: ") + show_value(value, false)
+ items << content_tag('strong', "#{value.custom_field.name}: ") + cf_value
else
- items << "#{value.custom_field.name}: #{show_value(value, false)}"
+ items << "#{value.custom_field.name}: #{cf_value}"
end
end
items
diff --git a/test/unit/mailer_test.rb b/test/unit/mailer_test.rb
index da259beea..b5f34d516 100644
--- a/test/unit/mailer_test.rb
+++ b/test/unit/mailer_test.rb
@@ -450,6 +450,26 @@ class MailerTest < ActiveSupport::TestCase
end
end
+ def test_issue_should_send_email_notification_with_suppress_empty_fields
+ ActionMailer::Base.deliveries.clear
+ with_settings :notified_events => %w(issue_added) do
+ cf = IssueCustomField.generate!
+ issue = Issue.generate!
+
+ assert_not_equal 0, ActionMailer::Base.deliveries.size
+
+ mail = last_email
+ assert_mail_body_match /^\* Author: /, mail
+ assert_mail_body_match /^\* Status: /, mail
+ assert_mail_body_match /^\* Priority: /, mail
+
+ assert_mail_body_no_match /^\* Assignee: /, mail
+ assert_mail_body_no_match /^\* Category: /, mail
+ assert_mail_body_no_match /^\* Target version: /, mail
+ assert_mail_body_no_match /^\* #{cf.name}: /, mail
+ end
+ end
+
def test_version_file_added
attachements = [ Attachment.find_by_container_type('Version') ]
assert Mailer.deliver_attachments_added(attachements)