summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/groups_controller.rb7
-rw-r--r--app/controllers/team_members_controller.rb6
-rw-r--r--app/views/groups/_new_member.html.haml18
-rw-r--r--app/views/groups/_people_filter.html.haml14
-rw-r--r--app/views/groups/people.html.haml36
5 files changed, 66 insertions, 15 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 880092e48e1..93c495363d9 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -47,7 +47,12 @@ class GroupsController < ApplicationController
end
def people
- @users = group.users
+ @project = group.projects.find(params[:project_id]) if params[:project_id]
+ @users = @project ? @project.users : group.users
+
+ if @project
+ @team_member = @project.users_projects.new
+ end
end
protected
diff --git a/app/controllers/team_members_controller.rb b/app/controllers/team_members_controller.rb
index 37ed74b231f..311af62b8db 100644
--- a/app/controllers/team_members_controller.rb
+++ b/app/controllers/team_members_controller.rb
@@ -21,7 +21,11 @@ class TeamMembersController < ProjectResourceController
params[:project_access]
)
- redirect_to project_team_index_path(@project)
+ if params[:redirect_to]
+ redirect_to params[:redirect_to]
+ else
+ redirect_to project_team_index_path(@project)
+ end
end
def update
diff --git a/app/views/groups/_new_member.html.haml b/app/views/groups/_new_member.html.haml
new file mode 100644
index 00000000000..f48c2c23d83
--- /dev/null
+++ b/app/views/groups/_new_member.html.haml
@@ -0,0 +1,18 @@
+= form_for @team_member, as: :team_member, url: project_team_members_path(@project, @team_member) do |f|
+ %fieldset
+ %legend= "New Team member(s) for #{@project.name}"
+
+ %h6 1. Choose people you want in the team
+ .clearfix
+ = f.label :user_ids, "People"
+ .input= select_tag(:user_ids, options_from_collection_for_select(User.not_in_project(@project).all, :id, :name), {data: {placeholder: "Select users"}, class: "chosen xxlarge", multiple: true})
+
+ %h6 2. Set access level for them
+ .clearfix
+ = f.label :project_access, "Project Access"
+ .input= select_tag :project_access, options_for_select(Project.access_options, @team_member.project_access), class: "project-access-select chosen"
+
+ .form-actions
+ = hidden_field_tag :redirect_to, people_group_path(@group, project_id: @project.id)
+ = f.submit 'Add', class: "btn save-btn"
+
diff --git a/app/views/groups/_people_filter.html.haml b/app/views/groups/_people_filter.html.haml
new file mode 100644
index 00000000000..79a1b01a5fa
--- /dev/null
+++ b/app/views/groups/_people_filter.html.haml
@@ -0,0 +1,14 @@
+= form_tag people_group_path(@group), method: 'get' do
+ %fieldset
+ %legend Projects:
+ %ul.nav.nav-pills.nav-stacked
+ - @projects.each do |project|
+ %li{class: ("active" if params[:project_id] == project.id.to_s)}
+ = link_to people_group_path(@group, project_id: project.id) do
+ = project.name_with_namespace
+ %small.right= project.users.count
+
+ %fieldset
+ %hr
+ = link_to "Reset", people_group_path(@group), class: 'btn right'
+
diff --git a/app/views/groups/people.html.haml b/app/views/groups/people.html.haml
index 0d176e1e23b..c43b0d4176a 100644
--- a/app/views/groups/people.html.haml
+++ b/app/views/groups/people.html.haml
@@ -1,14 +1,24 @@
-.ui-box
- %h5
- People
- %small
- (#{@users.size})
- %ul.unstyled
- - @users.each do |user|
- %li.wll
- = image_tag gravatar_icon(user.email, 16), class: "avatar s16"
- %strong= user.name
- %span.cgray= user.email
- - if @group.owner == user
- %span.btn.btn-small.disabled.right Owner
+.row
+ .span3
+ = render 'people_filter'
+ .span9
+ - if @project && can?(current_user, :manage_group, @group)
+ = render "new_member"
+ .ui-box
+ %h5
+ Team
+ %small
+ (#{@users.size})
+ %ul.unstyled
+ - @users.each do |user|
+ %li.wll
+ = image_tag gravatar_icon(user.email, 16), class: "avatar s16"
+ %strong= user.name
+ %span.cgray= user.email
+ - if @project
+ - if @project.owner == user
+ %span.btn.btn-small.disabled.right Project Owner
+ - else
+ - if @group.owner == user
+ %span.btn.btn-small.disabled.right Group Owner