# HG changeset patch # User Chris Cannam # Date 1301331857 -3600 # Node ID 862e47cc1e09cad7f65cbfbc93e562e39a6dd259 # Parent 8019c250165b2ffe50e1a4bde19b287821f2dd25# Parent 76c548e4e6e4d1d25fb48fe55f7004e064317566 Merge from branch "bug_97" diff -r 8019c250165b -r 862e47cc1e09 app/controllers/members_controller.rb --- a/app/controllers/members_controller.rb Mon Mar 28 17:50:50 2011 +0100 +++ b/app/controllers/members_controller.rb Mon Mar 28 18:04:17 2011 +0100 @@ -28,12 +28,24 @@ attrs = params[:member].dup if (user_ids = attrs.delete(:user_ids)) user_ids.each do |user_id| - members << Member.new(attrs.merge(:user_id => user_id)) + @new_member = Member.new(attrs.merge(:user_id => user_id)) + members << @new_member + + # send notification to member + Mailer.deliver_added_to_project(@new_member, @project) + end else - members << Member.new(attrs) + @new_member = Member.new(attrs) + members << @new_member + + # send notification to member + Mailer.deliver_added_to_project(@new_member, @project) + end + @project.members << members + end respond_to do |format| if members.present? && members.all? {|m| m.valid? } diff -r 8019c250165b -r 862e47cc1e09 app/models/mailer.rb --- a/app/models/mailer.rb Mon Mar 28 17:50:50 2011 +0100 +++ b/app/models/mailer.rb Mon Mar 28 18:04:17 2011 +0100 @@ -31,6 +31,27 @@ h = h.to_s.gsub(%r{\/.*$}, '') unless Redmine::Utils.relative_url_root.blank? { :host => h, :protocol => Setting.protocol } end + + + + # Builds a tmail object used to email the specified user that he was added to a project + # + # Example: + # add_to_project(user) => tmail object + # Mailer.deliver_add_to_project(user) => sends an email to the registered user + def added_to_project(member, project) + + user = User.find(member.user_id) + + set_language_if_valid user.language + recipients user.mail + subject l(:mail_subject_added_to_project, Setting.app_title) + body :project_url => url_for(:controller => 'projects', :action => 'show', :id => project.id), + :project_name => project.name + render_multipart('added_to_project', body) + end + + # Builds a tmail object used to email recipients of the added issue. # @@ -440,3 +461,7 @@ end end end + + + + diff -r 8019c250165b -r 862e47cc1e09 app/views/mailer/added_to_project.text.html.rhtml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/mailer/added_to_project.text.html.rhtml Mon Mar 28 18:04:17 2011 +0100 @@ -0,0 +1,3 @@ +

<%= l(:notice_added_to_project, :project_name => @project_name) %>

+

<%= l(:notice_project_homepage, :project_url => @project_url) %>

+ diff -r 8019c250165b -r 862e47cc1e09 app/views/mailer/added_to_project.text.plain.rhtml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/app/views/mailer/added_to_project.text.plain.rhtml Mon Mar 28 18:04:17 2011 +0100 @@ -0,0 +1,2 @@ +<%= l(:notice_added_to_project, :project_name => @project_name) %> +<%= l(:notice_project_homepage, :project_url => @project_url) %> diff -r 8019c250165b -r 862e47cc1e09 config/locales/en-GB.yml --- a/config/locales/en-GB.yml Mon Mar 28 17:50:50 2011 +0100 +++ b/config/locales/en-GB.yml Mon Mar 28 18:04:17 2011 +0100 @@ -482,7 +482,6 @@ label_information_plural: Information label_please_login: Please log in label_register: Register - label_terms_and_conditions: Terms & Conditions for use of code.soundsoftware.ac.uk label_login_with_open_id_option: or login with OpenID label_password_lost: Lost password label_home: Home @@ -973,4 +972,8 @@ label_developer_description: Can commit to repository and carry out most project editing tasks label_reporter_description: Can submit bug reports; has read access for private projects - label_set_role_plural: Choose roles for new member \ No newline at end of file + label_set_role_plural: Choose roles for new member + notice_added_to_project: 'You have been added to the project "{{project_name}}".' + notice_project_homepage: "You can visit the project using the following link: {{project_url}}" + mail_subject_added_to_project: "You've been added to a project on {{value}}" + \ No newline at end of file diff -r 8019c250165b -r 862e47cc1e09 config/locales/en.yml --- a/config/locales/en.yml Mon Mar 28 17:50:50 2011 +0100 +++ b/config/locales/en.yml Mon Mar 28 18:04:17 2011 +0100 @@ -493,8 +493,6 @@ label_information_plural: Information label_please_login: Please log in label_register: Register - label_terms_and_conditions: Terms & Conditions for use of code.soundsoftware.ac.uk - label_accept_terms_and_conditions: I have read the terms and conditions and fully accept them label_login_with_open_id_option: or login with OpenID label_password_lost: Lost password label_home: Home @@ -972,3 +970,11 @@ label_set_role_plural: Choose roles for new member + label_manager_description: All powers including adding and removing members and adjusting project settings + label_developer_description: Can commit to repository and carry out most project editing tasks + label_reporter_description: Can submit bug reports; has read access for private projects + + label_set_role_plural: Choose roles for new member + notice_added_to_project: 'You have been added to the project "{{project_name}}".' + notice_project_homepage: "You can visit the project using the following link: {{project_url}}" + mail_subject_added_to_project: "You've been added to a project on {{value}}"