diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-07-28 21:00:32 -0600 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-07-28 21:00:32 -0600 |
commit | ac6b634d9e1afb36c8ebb0d84cd23465fe4b0f84 (patch) | |
tree | bde86426b2dbfc059c4c27d770f4b9d3187c7da6 | |
parent | fa4a613517a4a236ea5e98a1964e52c8b4eef595 (diff) | |
download | gitlab-ce-ac6b634d9e1afb36c8ebb0d84cd23465fe4b0f84.tar.gz |
Send notification email when all discussions are resolved
5 files changed, 22 insertions, 1 deletions
diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb index 9dd11d20ea6..3c507c53fa9 100644 --- a/app/mailers/emails/merge_requests.rb +++ b/app/mailers/emails/merge_requests.rb @@ -42,6 +42,13 @@ module Emails mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id)) end + def resolved_all_discussions_email(recipient_id, merge_request_id, resolved_by_user_id) + setup_merge_request_mail(merge_request_id, recipient_id) + + @resolved_by = User.find(resolved_by_user_id) + mail_answer_thread(@merge_request, merge_request_thread_options(resolved_by_user_id, recipient_id)) + end + private def setup_merge_request_mail(merge_request_id, recipient_id) diff --git a/app/services/merge_requests/all_discussions_resolved_service.rb b/app/services/merge_requests/all_discussions_resolved_service.rb index d0fe226c196..c686b23335b 100644 --- a/app/services/merge_requests/all_discussions_resolved_service.rb +++ b/app/services/merge_requests/all_discussions_resolved_service.rb @@ -4,6 +4,7 @@ module MergeRequests return unless merge_request.discussions_resolved? SystemNoteService.resolve_all_discussions(merge_request, project, current_user) + notification_service.resolve_all_discussions(merge_request, current_user) end end end diff --git a/app/services/notification_service.rb b/app/services/notification_service.rb index ab6e51209ee..69871883afb 100644 --- a/app/services/notification_service.rb +++ b/app/services/notification_service.rb @@ -120,6 +120,14 @@ class NotificationService ) end + def resolve_all_discussions(merge_request, current_user) + recipients = build_recipients(merge_request, merge_request.target_project, current_user, action: "resolve_all_discussions") + + recipients.each do |recipient| + mailer.resolved_all_discussions_email(recipient.id, merge_request.id, current_user.id).deliver_later + end + end + # Notify new user with email after creation def new_user(user, token = nil) # Don't email omniauth created users @@ -177,7 +185,7 @@ class NotificationService # build notify method like 'note_commit_email' notify_method = "note_#{note.noteable_type.underscore}_email".to_sym - + recipients.each do |recipient| mailer.send(notify_method, recipient.id, note.id).deliver_later end diff --git a/app/views/notify/resolved_all_discussions_email.html.haml b/app/views/notify/resolved_all_discussions_email.html.haml new file mode 100644 index 00000000000..522421b7cc3 --- /dev/null +++ b/app/views/notify/resolved_all_discussions_email.html.haml @@ -0,0 +1,2 @@ +%p + All discussions on Merge Request #{@merge_request.to_reference} were resolved by #{@resolved_by.name} diff --git a/app/views/notify/resolved_all_discussions_email.text.erb b/app/views/notify/resolved_all_discussions_email.text.erb new file mode 100644 index 00000000000..b0d380af8fc --- /dev/null +++ b/app/views/notify/resolved_all_discussions_email.text.erb @@ -0,0 +1,3 @@ +All discussions on Merge Request <%= @merge_request.to_reference %> were resolved by <%= @resolved_by.name %> + +<%= url_for(namespace_project_merge_request_url(@merge_request.target_project.namespace, @merge_request.target_project, @merge_request)) %> |