Mercurial > hg > soundsoftware-site
comparison app/controllers/members_controller.rb @ 931:ec1c49528f36 cannam_integration
Merge from branch "redmine-1.3"
author | Chris Cannam |
---|---|
date | Wed, 27 Jun 2012 15:04:58 +0100 |
parents | 5e80956cc792 5f33065ddc4b |
children | bb32da3bea34 |
comparison
equal
deleted
inserted
replaced
930:027cc0f5d4a2 | 931:ec1c49528f36 |
---|---|
37 members = [] | 37 members = [] |
38 if params[:member] && request.post? | 38 if params[:member] && request.post? |
39 attrs = params[:member].dup | 39 attrs = params[:member].dup |
40 if (user_ids = attrs.delete(:user_ids)) | 40 if (user_ids = attrs.delete(:user_ids)) |
41 user_ids.each do |user_id| | 41 user_ids.each do |user_id| |
42 @new_member = Member.new(attrs.merge(:user_id => user_id)) | 42 @new_member = Member.new(:role_ids => params[:member][:role_ids], :user_id => user_id) |
43 members << @new_member | 43 members << @new_member |
44 | 44 |
45 # send notification to member | 45 # send notification to member |
46 Mailer.deliver_added_to_project(@new_member, @project) | 46 Mailer.deliver_added_to_project(@new_member, @project) |
47 | 47 |
48 end | 48 end |
49 else | 49 else |
50 @new_member = Member.new(attrs) | 50 @new_member = Member.new(:role_ids => params[:member][:role_ids], :user_id => params[:member][:user_id]) |
51 members << @new_member | 51 members << @new_member |
52 | 52 |
53 # send notification to member | 53 # send notification to member |
54 Mailer.deliver_added_to_project(@new_member, @project) | 54 Mailer.deliver_added_to_project(@new_member, @project) |
55 | 55 |
85 end | 85 end |
86 end | 86 end |
87 end | 87 end |
88 | 88 |
89 def edit | 89 def edit |
90 if request.post? and @member.update_attributes(params[:member]) | 90 if params[:member] |
91 @member.role_ids = params[:member][:role_ids] | |
92 end | |
93 if request.post? and @member.save | |
91 respond_to do |format| | 94 respond_to do |format| |
92 format.html { redirect_to :action => 'index', :project_id => @project } | 95 format.html { redirect_to :action => 'index', :project_id => @project } |
93 format.js { | 96 format.js { |
94 render(:update) {|page| | 97 render(:update) {|page| |
95 page.replace_html "memberlist", :partial => 'editlist' | 98 page.replace_html "memberlist", :partial => 'editlist' |
114 } | 117 } |
115 end | 118 end |
116 end | 119 end |
117 | 120 |
118 def autocomplete_for_member | 121 def autocomplete_for_member |
119 @principals = Principal.active.like(params[:q]).find(:all, :limit => 100) - @project.principals | 122 @principals = Principal.active.not_member_of(@project).like(params[:q]).all(:limit => 100) |
120 logger.debug "Query for #{params[:q]} returned #{@principals.size} results" | 123 logger.debug "Query for #{params[:q]} returned #{@principals.size} results" |
121 render :layout => false | 124 render :layout => false |
122 end | 125 end |
123 | 126 |
124 end | 127 end |