Commit 61c7449321c526fe3c36e899cead1ac11c39c466

Authored by Dmitriy Zaporozhets
1 parent 963746f9

Bulk user add on project -> new team member

app/controllers/team_members_controller.rb
@@ -17,13 +17,12 @@ class TeamMembersController < ApplicationController @@ -17,13 +17,12 @@ class TeamMembersController < ApplicationController
17 end 17 end
18 18
19 def create 19 def create
20 - @team_member = UsersProject.new(params[:team_member])  
21 - @team_member.project = project  
22 - if @team_member.save  
23 - redirect_to team_project_path(@project)  
24 - else  
25 - render "new"  
26 - end 20 + @project.add_users_ids_to_team(
  21 + params[:user_ids],
  22 + params[:project_access]
  23 + )
  24 +
  25 + redirect_to team_project_path(@project)
27 end 26 end
28 27
29 def update 28 def update
app/views/team_members/_form.html.haml
1 -%h3= "New Team member" 1 +%h3.page_title
  2 + = "New Team member(s)"
2 %hr 3 %hr
3 = form_for @team_member, as: :team_member, url: project_team_members_path(@project, @team_member) do |f| 4 = form_for @team_member, as: :team_member, url: project_team_members_path(@project, @team_member) do |f|
4 -if @team_member.errors.any? 5 -if @team_member.errors.any?
@@ -7,27 +8,23 @@ @@ -7,27 +8,23 @@
7 - @team_member.errors.full_messages.each do |msg| 8 - @team_member.errors.full_messages.each do |msg|
8 %li= msg 9 %li= msg
9 10
  11 + %h6 1. Choose people you want in the team
10 .clearfix 12 .clearfix
11 - = f.label :user_id, "Name"  
12 - .input= f.select(:user_id, User.not_in_project(@project).all.collect {|p| [ p.name, p.id ] }, { include_blank: "Select user" }, { style: "width:300px" }) 13 + = f.label :user_ids, "Peolpe"
  14 + .input= select_tag(:user_ids, options_from_collection_for_select(User.not_in_project(@project).all, :id, :name), { class: "xxlarge", multiple: true })
13 15
14 16
  17 + %h6 2. Set access level for them
15 .clearfix 18 .clearfix
16 = f.label :project_access, "Project Access" 19 = f.label :project_access, "Project Access"
17 - .input= f.select :project_access, options_for_select(Project.access_options, @team_member.project_access), {}, class: "project-access-select" 20 + .input= select_tag :project_access, options_for_select(Project.access_options, @team_member.project_access), class: "project-access-select"
18 21
19 22
20 .actions 23 .actions
21 - = f.submit 'Save', class: "btn primary"  
22 - = link_to "Cancel", team_project_path(@project), class: "btn" 24 + = f.submit 'Save', class: "btn save-btn"
  25 + = link_to "Cancel", team_project_path(@project), class: "btn cancel-btn"
23 26
24 -:css  
25 - form select {  
26 - width:300px;  
27 - }  
28 27
29 :javascript 28 :javascript
30 - $('select#team_member_user_id').chosen();  
31 - $('select#team_member_project_access').chosen();  
32 - //$('select#team_member_repo_access').chosen();  
33 - //$('select#team_member_project_access').chosen(); 29 + $('select#user_ids').chosen();
  30 + $('select#project_access').chosen();
features/step_definitions/project/project_team_steps.rb
@@ -22,8 +22,8 @@ end @@ -22,8 +22,8 @@ end
22 Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2| 22 Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2|
23 user = User.find_by_name(arg1) 23 user = User.find_by_name(arg1)
24 within "#new_team_member" do 24 within "#new_team_member" do
25 - select user.name, :from => "team_member_user_id"  
26 - select arg2, :from => "team_member_project_access" 25 + select user.name, :from => "user_ids"
  26 + select arg2, :from => "project_access"
27 end 27 end
28 click_button "Save" 28 click_button "Save"
29 end 29 end