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