summaryrefslogtreecommitdiff
path: root/app/mailers
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-03-01 17:33:13 +0100
committerRémy Coutable <remy@rymai.me>2016-03-15 18:22:02 +0100
commit54ec7e959900493b6e9174bf4dfe09ed0afd1e46 (patch)
tree22b79458e9d5ad2aa8ccf7ae00935c9a14aae33c /app/mailers
parent0444fa560acd07255960284f19b1de6499cd5910 (diff)
downloadgitlab-ce-54ec7e959900493b6e9174bf4dfe09ed0afd1e46.tar.gz
Improving the original label-subscribing implementation
1. Make the "subscribed" text in Issuable sidebar reflect the labels subscription status 2. Current user mut be logged-in to toggle issue/MR/label subscription
Diffstat (limited to 'app/mailers')
-rw-r--r--app/mailers/emails/issues.rb25
-rw-r--r--app/mailers/emails/merge_requests.rb55
2 files changed, 37 insertions, 43 deletions
diff --git a/app/mailers/emails/issues.rb b/app/mailers/emails/issues.rb
index 2838baa1b4e..160b6df0b97 100644
--- a/app/mailers/emails/issues.rb
+++ b/app/mailers/emails/issues.rb
@@ -20,10 +20,11 @@ module Emails
mail_answer_thread(@issue, issue_thread_options(updated_by_user_id, recipient_id))
end
- def relabeled_issue_email(recipient_id, issue_id, updated_by_user_id, label_names)
- setup_issue_mail(issue_id, recipient_id)
+ def relabeled_issue_email(recipient_id, issue_id, label_names, updated_by_user_id)
+ setup_issue_mail(issue_id, recipient_id, sent_notification: false)
+
@label_names = label_names
- @updated_by = User.find(updated_by_user_id)
+ @labels_url = namespace_project_labels_url(@project.namespace, @project)
mail_answer_thread(@issue, issue_thread_options(updated_by_user_id, recipient_id))
end
@@ -37,6 +38,16 @@ module Emails
private
+ def setup_issue_mail(issue_id, recipient_id, sent_notification: true)
+ @issue = Issue.find(issue_id)
+ @project = @issue.project
+ @target_url = namespace_project_issue_url(@project.namespace, @project, @issue)
+
+ if sent_notification
+ @sent_notification = SentNotification.record(@issue, recipient_id, reply_key)
+ end
+ end
+
def issue_thread_options(sender_id, recipient_id)
{
from: sender(sender_id),
@@ -44,13 +55,5 @@ module Emails
subject: subject("#{@issue.title} (##{@issue.iid})")
}
end
-
- def setup_issue_mail(issue_id, recipient_id)
- @issue = Issue.find(issue_id)
- @project = @issue.project
- @target_url = namespace_project_issue_url(@project.namespace, @project, @issue)
-
- @sent_notification = SentNotification.record(@issue, recipient_id, reply_key)
- end
end
end
diff --git a/app/mailers/emails/merge_requests.rb b/app/mailers/emails/merge_requests.rb
index 680ce975c79..334bad4e2f8 100644
--- a/app/mailers/emails/merge_requests.rb
+++ b/app/mailers/emails/merge_requests.rb
@@ -3,49 +3,35 @@ module Emails
def new_merge_request_email(recipient_id, merge_request_id)
setup_merge_request_mail(merge_request_id, recipient_id)
- mail_new_thread(@merge_request,
- from: sender(@merge_request.author_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ mail_new_thread(@merge_request, merge_request_thread_options(@merge_request.author_id, recipient_id))
end
def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id, updated_by_user_id)
setup_merge_request_mail(merge_request_id, recipient_id)
@previous_assignee = User.find_by(id: previous_assignee_id) if previous_assignee_id
- mail_answer_thread(@merge_request,
- from: sender(updated_by_user_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id))
end
- def relabeled_merge_request_email(recipient_id, merge_request_id, updated_by_user_id, label_names)
- setup_merge_request_mail(merge_request_id, recipient_id)
+ def relabeled_merge_request_email(recipient_id, merge_request_id, label_names, updated_by_user_id)
+ setup_merge_request_mail(merge_request_id, recipient_id, sent_notification: false)
+
@label_names = label_names
- @updated_by = User.find(updated_by_user_id)
- mail_answer_thread(@merge_request,
- from: sender(@merge_request.author_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ @labels_url = namespace_project_labels_url(@project.namespace, @project)
+ mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id))
end
def closed_merge_request_email(recipient_id, merge_request_id, updated_by_user_id)
setup_merge_request_mail(merge_request_id, recipient_id)
@updated_by = User.find(updated_by_user_id)
- mail_answer_thread(@merge_request,
- from: sender(updated_by_user_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id))
end
def merged_merge_request_email(recipient_id, merge_request_id, updated_by_user_id)
setup_merge_request_mail(merge_request_id, recipient_id)
- mail_answer_thread(@merge_request,
- from: sender(updated_by_user_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id))
end
def merge_request_status_email(recipient_id, merge_request_id, status, updated_by_user_id)
@@ -53,22 +39,27 @@ module Emails
@mr_status = status
@updated_by = User.find(updated_by_user_id)
- mail_answer_thread(@merge_request,
- from: sender(updated_by_user_id),
- to: recipient(recipient_id),
- subject: subject("#{@merge_request.title} (##{@merge_request.iid})"))
+ mail_answer_thread(@merge_request, merge_request_thread_options(updated_by_user_id, recipient_id))
end
private
- def setup_merge_request_mail(merge_request_id, recipient_id)
+ def setup_merge_request_mail(merge_request_id, recipient_id, sent_notification: true)
@merge_request = MergeRequest.find(merge_request_id)
@project = @merge_request.project
- @target_url = namespace_project_merge_request_url(@project.namespace,
- @project,
- @merge_request)
+ @target_url = namespace_project_merge_request_url(@project.namespace, @project, @merge_request)
+
+ if sent_notification
+ @sent_notification = SentNotification.record(@merge_request, recipient_id, reply_key)
+ end
+ end
- @sent_notification = SentNotification.record(@merge_request, recipient_id, reply_key)
+ def merge_request_thread_options(sender_id, recipient_id)
+ {
+ from: sender(sender_id),
+ to: recipient(recipient_id),
+ subject: subject("#{@merge_request.title} (##{@merge_request.iid})")
+ }
end
end
end