Skip to content

Commit 21e12d0

Browse files
juno-nishizakiRedmine Patch Meetup
authored andcommitted
第16回作業分
1 parent 50770a9 commit 21e12d0

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,
@@ -82,6 +82,7 @@ def issue_add(user, issue)
8282
@author = issue.author
8383
@issue = issue
8484
@user = user
85+
@recipients = recipients
8586
@issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue)
8687
subject = "[#{issue.project.name} - #{issue.tracker.name} ##{issue.id}]"
8788
subject += " (#{issue.status.name})" if Setting.show_status_changes_in_mail_subject?
@@ -97,12 +98,12 @@ def issue_add(user, issue)
9798
def self.deliver_issue_add(issue)
9899
users = issue.notified_users | issue.notified_watchers | issue.notified_mentions
99100
users.each do |user|
100-
issue_add(user, issue).deliver_later
101+
issue_add(user, issue, users).deliver_later
101102
end
102103
end
103104

104105
# Builds a mail for notifying user about an issue update
105-
def issue_edit(user, journal)
106+
def issue_edit(user, journal, recipients)
106107
issue = journal.journalized
107108
redmine_headers 'Project' => issue.project.identifier,
108109
'Issue-Tracker' => issue.tracker.name,
@@ -118,6 +119,7 @@ def issue_edit(user, journal)
118119
s += issue.subject
119120
@issue = issue
120121
@user = user
122+
@recipients = recipients
121123
@journal = journal
122124
@journal_details = journal.visible_details
123125
@issue_url = url_for(:controller => 'issues', :action => 'show', :id => issue, :anchor => "change-#{journal.id}")
@@ -136,16 +138,17 @@ def self.deliver_issue_edit(journal)
136138
journal.notes? || journal.visible_details(user).any?
137139
end
138140
users.each do |user|
139-
issue_edit(user, journal).deliver_later
141+
issue_edit(user, journal, users).deliver_later
140142
end
141143
end
142144

143145
# Builds a mail to user about a new document.
144-
def document_added(user, document, author)
146+
def document_added(user, document, author, recipients)
145147
redmine_headers 'Project' => document.project.identifier
146148
@author = author
147149
@document = document
148150
@user = user
151+
@recipients = recipients
149152
@document_url = url_for(:controller => 'documents', :action => 'show', :id => document)
150153
mail :to => user,
151154
:subject => "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}"
@@ -158,7 +161,7 @@ def document_added(user, document, author)
158161
def self.deliver_document_added(document, author)
159162
users = document.notified_users
160163
users.each do |user|
161-
document_added(user, document, author).deliver_later
164+
document_added(user, document, author, users).deliver_later
162165
end
163166
end
164167

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
@@ -514,6 +514,8 @@ en:
514514
setting_timelog_max_hours_per_day: Maximum hours that can be logged per day and user
515515
setting_timelog_accept_future_dates: Accept time logs on future dates
516516
setting_show_status_changes_in_mail_subject: Show status changes in issue mail notifications subject
517+
setting_show_recipients_in_mail_footer: Show recipients in mail notifications footer
518+
setting_show_recipients_limit: Maximum number of recipients in mail notifications footer
517519
setting_project_list_defaults: Projects list defaults
518520
setting_twofa: Two-factor authentication
519521

@@ -1259,6 +1261,7 @@ en:
12591261
text_issues_ref_in_commit_messages: Referencing and fixing issues in commit messages
12601262
text_issue_added: "Issue %{id} has been reported by %{author}."
12611263
text_issue_updated: "Issue %{id} has been updated by %{author}."
1264+
text_sent_email_to_recipients: The following recipients have also received this email.
12621265
text_wiki_destroy_confirmation: Are you sure you want to delete this wiki and all its content?
12631266
text_issue_category_destroy_question: "Some issues (%{count}) are assigned to this category. What do you want to do?"
12641267
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
@@ -898,6 +898,7 @@ ja:
898898
text_issues_ref_in_commit_messages: コミットメッセージ内でチケットの参照/修正
899899
text_issue_added: "チケット %{id} を %{author} さんが作成しました。"
900900
text_issue_updated: "チケット %{id} を %{author} さんが更新しました。"
901+
text_sent_email_to_recipients: 次のユーザーにもこのメールを送信しました。
901902
text_wiki_destroy_confirmation: 本当にこのwikiとその内容のすべてを削除しますか?
902903
text_issue_category_destroy_question: "%{count}件のチケットがこのカテゴリに割り当てられています。"
903904
text_issue_category_destroy_assignments: カテゴリの割り当てを削除する
@@ -1260,6 +1261,8 @@ ja:
12601261
text_status_no_workflow: このステータスはどのトラッカーのワークフローでも使われていません
12611262
setting_mail_handler_preferred_body_part: マルチパート (HTML) メールの優先パート
12621263
setting_show_status_changes_in_mail_subject: 通知メールの題名にステータス変更の情報を挿入
1264+
setting_show_recipients_in_mail_footer: 通知メールのフッタに受信者の情報を挿入
1265+
setting_show_recipients_limit: 通知メールのフッタに挿入される受信者数の上限
12631266
label_inherited_from_parent_project: 親プロジェクトから継承
12641267
label_inherited_from_group: グループ %{name} から継承
12651268
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)