diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
commit | 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch) | |
tree | 11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /app/helpers/emails_helper.rb | |
parent | ec73467c23693d0db63a797d10194da9e72a74af (diff) | |
download | gitlab-ce-05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2.tar.gz |
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'app/helpers/emails_helper.rb')
-rw-r--r-- | app/helpers/emails_helper.rb | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/app/helpers/emails_helper.rb b/app/helpers/emails_helper.rb index cad39854c0e..f6de405cecb 100644 --- a/app/helpers/emails_helper.rb +++ b/app/helpers/emails_helper.rb @@ -284,23 +284,38 @@ module EmailsHelper end def change_reviewer_notification_text(new_reviewers, previous_reviewers, html_tag = nil) - new = new_reviewers.any? ? users_to_sentence(new_reviewers) : s_('ChangeReviewer|Unassigned') - old = previous_reviewers.any? ? users_to_sentence(previous_reviewers) : nil + if new_reviewers.empty? + s_('ChangeReviewer|All reviewers were removed.') + else + added_reviewers = new_reviewers - previous_reviewers + removed_reviewers = previous_reviewers - new_reviewers - if html_tag.present? - new = content_tag(html_tag, new) - old = content_tag(html_tag, old) if old.present? - end + added_reviewers_template_text = added_reviewers.size > 1 ? "were added as reviewers.<br>" : "was added as a reviewer.<br>" + removed_reviewers_template_text = removed_reviewers.size > 1 ? "were removed from reviewers." : "was removed from reviewers." - if old.present? - s_('ChangeReviewer|Reviewer changed from %{old} to %{new}').html_safe % { old: old, new: new } - else - s_('ChangeReviewer|Reviewer changed to %{new}').html_safe % { new: new } + added = format_reviewers_string(added_reviewers, html_tag) + removed = format_reviewers_string(removed_reviewers, html_tag) + + added_reviewers_text = added ? "#{added} #{added_reviewers_template_text}".html_safe : '' + removed_reviewers_text = removed ? "#{removed} #{removed_reviewers_template_text}".html_safe : '' + s_('ChangeReviewer|%{added_reviewers_text}%{removed_reviewers_text}').html_safe % { added_reviewers_text: added_reviewers_text, removed_reviewers_text: removed_reviewers_text } end end private + def format_reviewers_string(reviewers, html_tag = nil) + return unless reviewers.any? + + formatted_reviewers = users_to_sentence(reviewers) + + if html_tag.present? + content_tag(html_tag, formatted_reviewers) + else + formatted_reviewers + end + end + def users_to_sentence(users) sanitize_name(users.map(&:name).to_sentence) end |