@admin_project = Project.find_by_code(params[:id])
end
+ def team
+ @admin_project = Project.find_by_code(params[:id])
+ @users = User.not_in_project(@admin_project).all
+ end
+
+ def team_update
+ @admin_project = Project.find_by_code(params[:id])
+
+ UsersProject.bulk_import(
+ @admin_project,
+ params[:user_ids],
+ params[:project_access],
+ params[:repo_access]
+ )
+
+ redirect_to [:admin, @admin_project], notice: 'Project was successfully updated.'
+ end
+
def create
@admin_project = Project.new(params[:project])
@admin_project.owner = current_user
delegate :name, :email, :to => :user, :prefix => true
+ def self.bulk_import(project, user_ids, project_access, repo_access)
+ UsersProject.transaction do
+ user_ids.each do |user_id|
+ users_project = UsersProject.new(
+ :repo_access => repo_access,
+ :project_access => project_access,
+ :user_id => user_id
+ )
+ users_project.project = project
+ users_project.save
+ end
+ end
+ end
+
def update_repository
Gitlabhq::GitHost.system.new.configure do |c|
c.update_project(project.path, project)
%td= link_to 'Destroy', admin_team_member_path(tm), :confirm => 'Are you sure?', :method => :delete
= link_to 'New Team Member', new_admin_team_member_path(:team_member => {:project_id => @admin_project.id}), :class => "grey-button"
+ .right= link_to 'Bulk Import', team_admin_project_path(@admin_project), :class => "grey-button"
--- /dev/null
+= form_tag team_update_admin_project_path(@admin_project), :class => "bulk_import", :method => :put do
+ .span-6
+ %b Project Access:
+ .span-6
+ = select_tag :project_access, options_for_select(Project.access_options), :class => "project-access-select"
+
+ .span-6
+ %b Repository Access:
+ .span-6
+ = select_tag :repo_access, options_for_select(Repository.access_options), :class => "repo-access-select"
+
+ %br
+ = select_tag :user_ids, options_from_collection_for_select(@users , :id, :name), :multiple => true
+
+ %br
+ .clear
+ %br
+ .actions
+ = submit_tag 'Save', :class => "grey-button"
+
+:css
+ form select {
+ width:300px;
+ }
+
+
+:javascript
+ $('select#user_ids').chosen();
+ $('select#repo_access').chosen();
+ $('select#project_access').chosen();
namespace :admin do
resources :users
- resources :projects, :constraints => { :id => /[^\/]+/ }
+ resources :projects, :constraints => { :id => /[^\/]+/ } do
+ member do
+ get :team
+ put :team_update
+ end
+ end
resources :team_members
get 'emails', :to => 'mailer#preview'
get 'mailer/preview_note'