Revision 196
Added by Jean-Philippe Lang over 18 years ago
mail notifications added when:
- a document is added
- a file is added to the project
- an attachment is added to an issue or a document
trunk/app/controllers/documents_controller.rb | ||
---|---|---|
1 | 1 |
# redMine - project management software |
2 |
# Copyright (C) 2006 Jean-Philippe Lang |
|
2 |
# Copyright (C) 2006-2007 Jean-Philippe Lang
|
|
3 | 3 |
# |
4 | 4 |
# This program is free software; you can redistribute it and/or |
5 | 5 |
# modify it under the terms of the GNU General Public License |
... | ... | |
46 | 46 |
|
47 | 47 |
def add_attachment |
48 | 48 |
# Save the attachments |
49 |
params[:attachments].each { |a| |
|
50 |
Attachment.create(:container => @document, :file => a, :author => logged_in_user) unless a.size == 0 |
|
49 |
@attachments = [] |
|
50 |
params[:attachments].each { |file| |
|
51 |
next unless file.size > 0 |
|
52 |
a = Attachment.create(:container => @document, :file => file, :author => logged_in_user) |
|
53 |
@attachments << a unless a.new_record? |
|
51 | 54 |
} if params[:attachments] and params[:attachments].is_a? Array |
55 |
Mailer.deliver_attachments_add(@attachments) if [email protected]? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled? |
|
52 | 56 |
redirect_to :action => 'show', :id => @document |
53 | 57 |
end |
54 | 58 |
|
trunk/app/controllers/issues_controller.rb | ||
---|---|---|
1 | 1 |
# redMine - project management software |
2 |
# Copyright (C) 2006 Jean-Philippe Lang |
|
2 |
# Copyright (C) 2006-2007 Jean-Philippe Lang
|
|
3 | 3 |
# |
4 | 4 |
# This program is free software; you can redistribute it and/or |
5 | 5 |
# modify it under the terms of the GNU General Public License |
... | ... | |
115 | 115 |
|
116 | 116 |
def add_attachment |
117 | 117 |
# Save the attachments |
118 |
params[:attachments].each { |a| |
|
119 |
@attachment = @issue.attachments.build(:file => a, :author => self.logged_in_user) unless a.size == 0 |
|
120 |
@attachment.save |
|
118 |
@attachments = [] |
|
119 |
params[:attachments].each { |file| |
|
120 |
next unless file.size > 0 |
|
121 |
a = Attachment.create(:container => @issue, :file => file, :author => logged_in_user) |
|
122 |
@attachments << a unless a.new_record? |
|
121 | 123 |
} if params[:attachments] and params[:attachments].is_a? Array |
124 |
Mailer.deliver_attachments_add(@attachments) if [email protected]? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled? |
|
122 | 125 |
redirect_to :action => 'show', :id => @issue |
123 | 126 |
end |
124 | 127 |
|
trunk/app/controllers/projects_controller.rb | ||
---|---|---|
184 | 184 |
Attachment.create(:container => @document, :file => a, :author => logged_in_user) unless a.size == 0 |
185 | 185 |
} if params[:attachments] and params[:attachments].is_a? Array |
186 | 186 |
flash[:notice] = l(:notice_successful_create) |
187 |
Mailer.deliver_document_add(@document) if Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled? |
|
187 | 188 |
redirect_to :action => 'list_documents', :id => @project |
188 | 189 |
end |
189 | 190 |
end |
... | ... | |
385 | 386 |
if request.post? |
386 | 387 |
@version = @project.versions.find_by_id(params[:version_id]) |
387 | 388 |
# Save the attachments |
388 |
params[:attachments].each { |a| |
|
389 |
Attachment.create(:container => @version, :file => a, :author => logged_in_user) unless a.size == 0 |
|
389 |
@attachments = [] |
|
390 |
params[:attachments].each { |file| |
|
391 |
next unless file.size > 0 |
|
392 |
a = Attachment.create(:container => @version, :file => file, :author => logged_in_user) |
|
393 |
@attachments << a unless a.new_record? |
|
390 | 394 |
} if params[:attachments] and params[:attachments].is_a? Array |
395 |
Mailer.deliver_attachments_add(@attachments) if [email protected]? and Permission.find_by_controller_and_action(params[:controller], params[:action]).mail_enabled? |
|
391 | 396 |
redirect_to :controller => 'projects', :action => 'list_files', :id => @project |
392 | 397 |
end |
393 | 398 |
@versions = @project.versions |
trunk/app/models/mailer.rb | ||
---|---|---|
36 | 36 |
@body['journal']= journal |
37 | 37 |
end |
38 | 38 |
|
39 |
def document_add(document) |
|
40 |
@recipients = document.project.users.collect { |u| u.mail if u.mail_notification }.compact |
|
41 |
@from = Setting.mail_from |
|
42 |
@subject = "[#{document.project.name}] #{l(:label_document_new)}: #{document.title}" |
|
43 |
@body['document'] = document |
|
44 |
end |
|
45 |
|
|
46 |
def attachments_add(attachments) |
|
47 |
container = attachments.first.container |
|
48 |
url = "http://#{Setting.host_name}/" |
|
49 |
added_to = "" |
|
50 |
case container.class.to_s |
|
51 |
when 'Version' |
|
52 |
url << "projects/list_files/#{container.project_id}" |
|
53 |
added_to = "#{l(:label_version)}: #{container.name}" |
|
54 |
when 'Document' |
|
55 |
url << "documents/show/#{container.id}" |
|
56 |
added_to = "#{l(:label_document)}: #{container.title}" |
|
57 |
when 'Issue' |
|
58 |
url << "issues/show/#{container.id}" |
|
59 |
added_to = "#{container.tracker.name} ##{container.id}: #{container.subject}" |
|
60 |
end |
|
61 |
@recipients = container.project.users.collect { |u| u.mail if u.mail_notification }.compact |
|
62 |
@from = Setting.mail_from |
|
63 |
@subject = "[#{container.project.name}] #{l(:label_attachment_new)}" |
|
64 |
@body['attachments'] = attachments |
|
65 |
@body['url'] = url |
|
66 |
@body['added_to'] = added_to |
|
67 |
end |
|
68 |
|
|
39 | 69 |
def lost_password(token) |
40 | 70 |
@recipients = token.user.mail |
41 | 71 |
@from = Setting.mail_from |
trunk/app/views/mailer/attachments_add_de.rhtml | ||
---|---|---|
1 |
<%= @added_to %> |
|
2 |
<%= @attachments.size %> files(s) added. |
|
3 |
<% @attachments.each do |attachment | %> |
|
4 |
- <%= attachment.filename %><% end %> |
|
5 |
|
|
6 |
<%= @url %> |
trunk/app/views/mailer/attachments_add_en.rhtml | ||
---|---|---|
1 |
<%= @added_to %> |
|
2 |
<%= @attachments.size %> files(s) added. |
|
3 |
<% @attachments.each do |attachment | %> |
|
4 |
- <%= attachment.filename %><% end %> |
|
5 |
|
|
6 |
<%= @url %> |
trunk/app/views/mailer/attachments_add_es.rhtml | ||
---|---|---|
1 |
<%= @added_to %> |
|
2 |
<%= @attachments.size %> files(s) added. |
|
3 |
<% @attachments.each do |attachment | %> |
|
4 |
- <%= attachment.filename %><% end %> |
|
5 |
|
|
6 |
<%= @url %> |
trunk/app/views/mailer/attachments_add_fr.rhtml | ||
---|---|---|
1 |
<%= @added_to %> |
|
2 |
<%= @attachments.size %> fichier(s) ajouté(s). |
|
3 |
<% @attachments.each do |attachment | %> |
|
4 |
- <%= attachment.filename %><% end %> |
|
5 |
|
|
6 |
<%= @url %> |
trunk/app/views/mailer/document_add_de.rhtml | ||
---|---|---|
1 |
A document has been added to <%= @document.project.name %> (<%= @document.category.name %>): |
|
2 |
<%= l(:field_title) %>: <%= @document.title %> |
|
3 |
|
|
4 |
http://<%= Setting.host_name %>/documents/show/<%= @document.id %> |
trunk/app/views/mailer/document_add_en.rhtml | ||
---|---|---|
1 |
A document has been added to <%= @document.project.name %> (<%= @document.category.name %>): |
|
2 |
<%= l(:field_title) %>: <%= @document.title %> |
|
3 |
|
|
4 |
http://<%= Setting.host_name %>/documents/show/<%= @document.id %> |
trunk/app/views/mailer/document_add_es.rhtml | ||
---|---|---|
1 |
A document has been added to <%= @document.project.name %> (<%= @document.category.name %>): |
|
2 |
<%= l(:field_title) %>: <%= @document.title %> |
|
3 |
|
|
4 |
http://<%= Setting.host_name %>/documents/show/<%= @document.id %> |
trunk/app/views/mailer/document_add_fr.rhtml | ||
---|---|---|
1 |
Un document a été ajouté à <%= @document.project.name %> (<%= @document.category.name %>): |
|
2 |
<%= l(:field_title) %>: <%= @document.title %> |
|
3 |
|
|
4 |
http://<%= Setting.host_name %>/documents/show/<%= @document.id %> |
trunk/db/migrate/018_set_doc_and_files_notifications.rb | ||
---|---|---|
1 |
class SetDocAndFilesNotifications < ActiveRecord::Migration |
|
2 |
def self.up |
|
3 |
Permission.find_by_controller_and_action("projects", "add_file").update_attribute(:mail_option, true) |
|
4 |
Permission.find_by_controller_and_action("projects", "add_document").update_attribute(:mail_option, true) |
|
5 |
Permission.find_by_controller_and_action("documents", "add_attachment").update_attribute(:mail_option, true) |
|
6 |
Permission.find_by_controller_and_action("issues", "add_attachment").update_attribute(:mail_option, true) |
|
7 |
end |
|
8 |
|
|
9 |
def self.down |
|
10 |
Permission.find_by_controller_and_action("projects", "add_file").update_attribute(:mail_option, false) |
|
11 |
Permission.find_by_controller_and_action("projects", "add_document").update_attribute(:mail_option, false) |
|
12 |
Permission.find_by_controller_and_action("documents", "add_attachment").update_attribute(:mail_option, false) |
|
13 |
Permission.find_by_controller_and_action("issues", "add_attachment").update_attribute(:mail_option, false) |
|
14 |
end |
|
15 |
end |
Also available in: Unified diff