Skip to content

Commit cdbbe28

Browse files
juno-nishizakiRedmine Patch Meetup
authored andcommitted
第16回作業分
1 parent c287f07 commit cdbbe28

File tree

7 files changed

+40
-6
lines changed

7 files changed

+40
-6
lines changed

app/models/mailer.rb

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def self.default_url_options
7070
end
7171

7272
# Builds a mail for notifying user about a new issue
73-
def issue_add(user, issue)
73+
def issue_add(user, issue, recipients)
7474
redmine_headers 'Project' => issue.project.identifier,
7575
'Issue-Tracker' => issue.tracker.name,
7676
'Issue-Id' => issue.id,
@@ -81,6 +81,7 @@ def issue_add(user, issue)
8181
@author = issue.author
8282
@issue = issue
8383
@user = user
84+
@recipients = recipients
8485
@issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue)
8586
subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}]"
8687
subject += " (#{issue.status.name})" if Setting.show_status_changes_in_mail_subject?
@@ -96,12 +97,12 @@ def issue_add(user, issue)
9697
def self.deliver_issue_add(issue)
9798
users = issue.notified_users | issue.notified_watchers
9899
users.each do |user|
99-
issue_add(user, issue).deliver_later
100+
issue_add(user, issue, users).deliver_later
100101
end
101102
end
102103

103104
# Builds a mail for notifying user about an issue update
104-
def issue_edit(user, journal)
105+
def issue_edit(user, journal, recipients)
105106
issue = journal.journalized
106107
redmine_headers 'Project' => issue.project.identifier,
107108
'Issue-Tracker' => issue.tracker.name,
@@ -116,6 +117,7 @@ def issue_edit(user, journal)
116117
s += issue.subject
117118
@issue = issue
118119
@user = user
120+
@recipients = recipients
119121
@journal = journal
120122
@journal_details = journal.visible_details
121123
@issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue, :anchor => "change-#{journal.id}")
@@ -134,16 +136,17 @@ def self.deliver_issue_edit(journal)
134136
journal.notes? || journal.visible_details(user).any?
135137
end
136138
users.each do |user|
137-
issue_edit(user, journal).deliver_later
139+
issue_edit(user, journal, users).deliver_later
138140
end
139141
end
140142

141143
# Builds a mail to user about a new document.
142-
def document_added(user, document, author)
144+
def document_added(user, document, author, recipients)
143145
redmine_headers 'Project' => document.project.identifier
144146
@author = author
145147
@document = document
146148
@user = user
149+
@recipients = recipients
147150
@document_url = url_for(:controller => 'documents', :action => 'show', :id => document)
148151
mail :to => user,
149152
:subject => "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}"
@@ -156,7 +159,7 @@ def document_added(user, document, author)
156159
def self.deliver_document_added(document, author)
157160
users = document.notified_users
158161
users.each do |user|
159-
document_added(user, document, author).deliver_later
162+
document_added(user, document, author, users).deliver_later
160163
end
161164
end
162165

app/views/layouts/mailer.html.erb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ span.footer {
2525
font-size: 0.8em;
2626
font-style: italic;
2727
}
28+
span.recipients {
29+
font-size: 0.8em;
30+
font-style: italic;
31+
color: #959595;
32+
}
2833
blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 0;}
2934
blockquote blockquote { margin-left: 0;}
3035
pre, code {font-family: Consolas, Menlo, "Liberation Mono", Courier, monospace;}
@@ -78,5 +83,11 @@ table, td, th {
7883
<% if Setting.emails_footer.present? -%>
7984
<span class="footer"><%= Redmine::WikiFormatting.to_html(Setting.text_formatting, Setting.emails_footer).html_safe %></span>
8085
<% end -%>
86+
<% if Setting.show_recipients_in_mail_footer? && @recipients.present? %>
87+
<span class="recipients">
88+
<%= l(:text_sent_email_to_recipients) %><br>
89+
<%= @recipients.take(Setting.show_recipients_limit.to_i).map(&:name).join(', ') %><%= '...' if @recipients.size > Setting.show_recipients_limit.to_i %>
90+
</span>
91+
<% end %>
8192
</body>
8293
</html>

app/views/layouts/mailer.text.erb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,8 @@
66
--
77
<%= Setting.emails_footer %>
88
<% end -%>
9+
<% if Setting.show_recipients_in_mail_footer? && @recipients.present? %>
10+
11+
<%= l(:text_sent_email_to_recipients) %>
12+
<%= @recipients.take(Setting.show_recipients_limit.to_i).map(&:name).join(', ') %><%= '...' if @recipients.size > Setting.show_recipients_limit.to_i %>
13+
<% end -%>

app/views/settings/_notifications.html.erb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
<p><%= setting_check_box :plain_text_mail %></p>
88

99
<p><%= setting_check_box :show_status_changes_in_mail_subject %></p>
10+
11+
<p><%= setting_check_box :show_recipients_in_mail_footer, :data => {:enables => '#settings_show_recipients_limit'} %></p>
12+
13+
<p><%= setting_text_field :show_recipients_limit, :size => 6%></p>
1014
</div>
1115

1216
<fieldset class="box" id="notified_events"><legend><%=l(:text_select_mail_notifications)%></legend>

config/locales/en.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,8 @@ en:
506506
setting_timelog_max_hours_per_day: Maximum hours that can be logged per day and user
507507
setting_timelog_accept_future_dates: Accept time logs on future dates
508508
setting_show_status_changes_in_mail_subject: Show status changes in issue mail notifications subject
509+
setting_show_recipients_in_mail_footer: Show recipients in mail notifications footer
510+
setting_show_recipients_limit: Maximum number of recipients in mail notifications footer
509511
setting_project_list_defaults: Projects list defaults
510512
setting_twofa: Two-factor authentication
511513

@@ -1230,6 +1232,7 @@ en:
12301232
text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
12311233
text_issue_added: "Issue %{id} has been reported by %{author}."
12321234
text_issue_updated: "Issue %{id} has been updated by %{author}."
1235+
text_sent_email_to_recipients: The following recipients have also received this email.
12331236
text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
12341237
text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
12351238
text_issue_category_destroy_assignments: Remove category assignments

config/locales/ja.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -903,6 +903,7 @@ ja:
903903
text_issues_ref_in_commit_messages: コミットメッセージ内でチケットの参照/修正
904904
text_issue_added: "チケット %{id} を %{author} さんが作成しました。"
905905
text_issue_updated: "チケット %{id} を %{author} さんが更新しました。"
906+
text_sent_email_to_recipients: 次のユーザーにもこのメールを送信しました。
906907
text_wiki_destroy_confirmation: 本当にこのwikiとその内容のすべてを削除しますか?
907908
text_issue_category_destroy_question: "%{count}件のチケットがこのカテゴリに割り当てられています。"
908909
text_issue_category_destroy_assignments: カテゴリの割り当てを削除する
@@ -1265,6 +1266,8 @@ ja:
12651266
text_status_no_workflow: このステータスはどのトラッカーのワークフローでも使われていません
12661267
setting_mail_handler_preferred_body_part: マルチパート (HTML) メールの優先パート
12671268
setting_show_status_changes_in_mail_subject: 通知メールの題名にステータス変更の情報を挿入
1269+
setting_show_recipients_in_mail_footer: 通知メールのフッタに受信者の情報を挿入
1270+
setting_show_recipients_limit: 通知メールのフッタに挿入される受信者数の上限
12681271
label_inherited_from_parent_project: 親プロジェクトから継承
12691272
label_inherited_from_group: グループ %{name} から継承
12701273
label_trackers_description: トラッカーの説明

config/settings.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,8 @@ timelog_accept_future_dates:
341341
default: 1
342342
show_status_changes_in_mail_subject:
343343
default: 1
344+
show_recipients_in_mail_footer:
345+
default: 0
346+
show_recipients_limit:
347+
format: int
348+
default: 15

0 commit comments

Comments
 (0)