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)