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 17 end
18 18  
19 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 26 end
28 27  
29 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 3 %hr
3 4 = form_for @team_member, as: :team_member, url: project_team_members_path(@project, @team_member) do |f|
4 5 -if @team_member.errors.any?
... ... @@ -7,27 +8,23 @@
7 8 - @team_member.errors.full_messages.each do |msg|
8 9 %li= msg
9 10  
  11 + %h6 1. Choose people you want in the team
10 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 18 .clearfix
16 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 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 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 22 Given /^I select "(.*?)" as "(.*?)"$/ do |arg1, arg2|
23 23 user = User.find_by_name(arg1)
24 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 27 end
28 28 click_button "Save"
29 29 end
... ...