Commit a7667ffc14017732228058e34e1f724be08bf9a0

Authored by Andrey Kumanyaev
Committed by Dmitriy Zaporozhets
1 parent b7470440

Repair members management of teams

app/controllers/admin/teams/members_controller.rb
1 class Admin::Teams::MembersController < Admin::Teams::ApplicationController 1 class Admin::Teams::MembersController < Admin::Teams::ApplicationController
  2 + before_filter :team_member, only: [:edit, :destroy, :update]
  3 +
2 def new 4 def new
3 @users = User.active 5 @users = User.active
4 @users = @users.not_in_team(@team) if @team.members.any? 6 @users = @users.not_in_team(@team) if @team.members.any?
@@ -17,11 +19,9 @@ class Admin::Teams::MembersController &lt; Admin::Teams::ApplicationController @@ -17,11 +19,9 @@ class Admin::Teams::MembersController &lt; Admin::Teams::ApplicationController
17 end 19 end
18 20
19 def edit 21 def edit
20 - @member = @team.members.find(params[:id])  
21 end 22 end
22 23
23 def update 24 def update
24 - @member = @team.members.find(params[:id])  
25 options = {default_projects_access: params[:default_project_access], group_admin: params[:group_admin]} 25 options = {default_projects_access: params[:default_project_access], group_admin: params[:group_admin]}
26 if @team.update_membership(@member, options) 26 if @team.update_membership(@member, options)
27 redirect_to admin_team_path(@team), notice: 'Membership was successfully updated.' 27 redirect_to admin_team_path(@team), notice: 'Membership was successfully updated.'
@@ -31,5 +31,16 @@ class Admin::Teams::MembersController &lt; Admin::Teams::ApplicationController @@ -31,5 +31,16 @@ class Admin::Teams::MembersController &lt; Admin::Teams::ApplicationController
31 end 31 end
32 32
33 def destroy 33 def destroy
  34 + if @team.remove_member(@member)
  35 + redirect_to admin_team_path(@team), notice: "Member was successfully removed from team."
  36 + else
  37 + redirect_to admin_team_members(@team), notice: "Something wrong."
  38 + end
  39 + end
  40 +
  41 + private
  42 +
  43 + def team_member
  44 + @member = @team.members.find(params[:id])
34 end 45 end
35 end 46 end
app/views/admin/teams/members/new.html.haml
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 3
4 %fieldset 4 %fieldset
5 %legend Members (#{@team.members.count}) 5 %legend Members (#{@team.members.count})
6 - = form_tag add_members_admin_team_path(@team), id: "team_members", class: "bulk_import", method: :post do 6 + = form_tag admin_team_members_path(@team), id: "team_members", class: "bulk_import", method: :post do
7 %table#members_list 7 %table#members_list
8 %thead 8 %thead
9 %tr 9 %tr
app/views/admin/teams/show.html.haml
@@ -68,25 +68,26 @@ @@ -68,25 +68,26 @@
68 68
69 %fieldset 69 %fieldset
70 %legend Projects (#{@team.projects.count}) 70 %legend Projects (#{@team.projects.count})
71 - = form_tag delegate_projects_admin_team_path(@team), id: "assign_projects", class: "bulk_import", method: :post do  
72 - %table#projects_list  
73 - %thead  
74 - %tr  
75 - %th Project name  
76 - %th Max access  
77 - %th.cred Danger Zone!  
78 - - @team.projects.each do |project|  
79 - %tr.project  
80 - %td  
81 - = link_to project.name_with_namespace, [:admin, project]  
82 - %td  
83 - %span= @team.human_max_project_access(project)  
84 - %td.bgred  
85 - = link_to 'Relegate', relegate_project_admin_team_path(@team, project_id: project.id), confirm: 'Remove project from team and move to global namespace. Are you sure?', method: :delete, class: "btn danger small" 71 + %table#projects_list
  72 + %thead
86 %tr 73 %tr
87 - %td= select_tag :project_ids, options_from_collection_for_select(@projects , :id, :name_with_namespace), multiple: true, data: {placeholder: 'Select projects'}, class: 'chosen span5'  
88 - %td= select_tag :greatest_project_access, options_for_select(Project.access_options), {class: "project-access-select chosen span3" }  
89 - %td= submit_tag 'Add', class: "btn primary", id: :assign_projects_to_team 74 + %th Project name
  75 + %th Max access
  76 + %th.cred Danger Zone!
  77 + - @team.projects.each do |project|
  78 + %tr.project
  79 + %td
  80 + = link_to project.name_with_namespace, [:admin, project]
  81 + %td
  82 + %span= @team.human_max_project_access(project)
  83 + %td.bgred
  84 + = link_to 'Edit', edit_admin_team_project_path(@team, project), class: "btn small"
  85 + &nbsp;
  86 + = link_to 'Relegate', admin_team_project_path(@team, project), confirm: 'Remove project from team. Are you sure?', method: :delete, class: "btn danger small"
  87 + %tr
  88 + %td
  89 + %td
  90 + %td= link_to 'Add projects', new_admin_team_project_path(@team), class: "btn primary", id: :assign_projects_to_team
90 91
91 :javascript 92 :javascript
92 $(function(){ 93 $(function(){