##// END OF EJS Templates
When copying issues, let the status be changed to default or left unchanged....
When copying issues, let the status be changed to default or left unchanged. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9404 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r9012:2c6ad7525aa7
r9270:09375960d69d
Show More
members_controller.rb
144 lines | 4.6 KiB | text/x-ruby | RubyLexer
/ app / controllers / members_controller.rb
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776 # Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776 #
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Philippe Lang
Initial commit...
r2 class MembersController < ApplicationController
Eric Davis
Refactor: Change the different find_object filters to share a common method....
r3483 model_object Member
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 before_filter :find_model_object, :except => [:index, :create, :autocomplete]
before_filter :find_project_from_association, :except => [:index, :create, :autocomplete]
before_filter :find_project_by_project_id, :only => [:index, :create, :autocomplete]
Jean-Philippe Lang
Added project module concept....
r714 before_filter :authorize
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 accept_api_auth :index, :show, :create, :update, :destroy
def index
@offset, @limit = api_offset_and_limit
@member_count = @project.member_principals.count
@member_pages = Paginator.new self, @member_count, @limit, params['page']
@offset ||= @member_pages.current.offset
@members = @project.member_principals.all(
:order => "#{Member.table_name}.id",
:limit => @limit,
:offset => @offset
)
respond_to do |format|
format.html { head 406 }
format.api
end
end
def show
respond_to do |format|
format.html { head 406 }
format.api
end
end
Jean-Philippe Lang
Initial commit...
r2
Jean-Philippe Lang
Resourcified project memberships....
r8669 def create
Jean-Philippe Lang
Ability to add multiple project members in a single action (#1556)....
r2546 members = []
Jean-Philippe Lang
Prevent mass-assignment when adding a project member (#10390)....
r9012 if params[:membership]
if params[:membership][:user_ids]
attrs = params[:membership].dup
user_ids = attrs.delete(:user_ids)
user_ids.each do |user_id|
members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => user_id)
end
else
members << Member.new(:role_ids => params[:membership][:role_ids], :user_id => params[:membership][:user_id])
Jean-Philippe Lang
Ability to add multiple project members in a single action (#1556)....
r2546 end
Jean-Philippe Lang
Prevent mass-assignment when adding a project member (#10390)....
r9012 @project.members << members
Jean-Philippe Lang
Ability to add multiple project members in a single action (#1556)....
r2546 end
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678
Jean-Philippe Lang
Added project module concept....
r714 respond_to do |format|
Eric Davis
Add error messages to MembersController#new so a user is informed of missing data....
r3635 if members.present? && members.all? {|m| m.valid? }
format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776 format.js {
render(:update) {|page|
Eric Davis
Add error messages to MembersController#new so a user is informed of missing data....
r3635 page.replace_html "tab-content-members", :partial => 'projects/settings/members'
Eric Davis
Hide the role forms when editing or adding Project members. #5452...
r3670 page << 'hideOnLoad()'
Eric Davis
Add error messages to MembersController#new so a user is informed of missing data....
r3635 members.each {|member| page.visual_effect(:highlight, "member-#{member.id}") }
}
Jean-Philippe Lang
Ability to add multiple project members in a single action (#1556)....
r2546 }
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 format.api {
@member = members.first
render :action => 'show', :status => :created, :location => membership_url(@member)
}
Eric Davis
Add error messages to MembersController#new so a user is informed of missing data....
r3635 else
format.js {
render(:update) {|page|
errors = members.collect {|m|
m.errors.full_messages
}.flatten.uniq
page.alert(l(:notice_failed_to_save_members, :errors => errors.join(', ')))
}
}
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 format.api { render_validation_errors(members.first) }
Eric Davis
Add error messages to MembersController#new so a user is informed of missing data....
r3635 end
Jean-Philippe Lang
Added project module concept....
r714 end
end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776
Jean-Philippe Lang
Resourcified project memberships....
r8669 def update
if params[:membership]
@member.role_ids = params[:membership][:role_ids]
end
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 saved = @member.save
respond_to do |format|
format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
format.js {
render(:update) {|page|
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
page << 'hideOnLoad()'
page.visual_effect(:highlight, "member-#{@member.id}")
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 }
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 }
format.api {
if saved
head :ok
else
render_validation_errors(@member)
end
}
Jean-Philippe Lang
* project settings split in 4 tabs...
r178 end
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
Jean-Philippe Lang
* project settings split in 4 tabs...
r178 def destroy
Jean-Philippe Lang
Resourcified project memberships....
r8669 if request.delete? && @member.deletable?
Jean-Philippe Lang
User groups branch merged....
r2755 @member.destroy
end
respond_to do |format|
Jean-Philippe Lang
Members management in project settings is now AJAXified...
r505 format.html { redirect_to :controller => 'projects', :action => 'settings', :tab => 'members', :id => @project }
Eric Davis
Hide the role forms when editing or adding Project members. #5452...
r3670 format.js { render(:update) {|page|
page.replace_html "tab-content-members", :partial => 'projects/settings/members'
page << 'hideOnLoad()'
}
}
Jean-Philippe Lang
REST API for project memberships (#7420)....
r8678 format.api {
if @member.destroyed?
head :ok
else
head :unprocessable_entity
end
}
Jean-Philippe Lang
Members management in project settings is now AJAXified...
r505 end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330 end
Toshi MARUYAMA
remove trailing white-spaces from app/controllers/members_controller.rb....
r6776
Jean-Philippe Lang
Resourcified project memberships....
r8669 def autocomplete
Jean-Philippe Lang
Fixed that the proposed users list may be empty when adding a project member (#10374)....
r9008 @principals = Principal.active.not_member_of(@project).like(params[:q]).all(:limit => 100)
Jean-Philippe Lang
Adds a user search field with autocompleter on project members screen....
r2549 render :layout => false
end
Jean-Philippe Lang
added svn:eol-style native property on /app files...
r330
Jean-Philippe Lang
Initial commit...
r2 end