From 72139167dc28b2cd5113202c769456de20888b61 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Tue, 26 Aug 2014 11:58:05 +0200 Subject: [PATCH 1/3] Mockup of shared group memeber list at project member page. --- .../projects/team_members_controller.rb | 1 + .../projects/team_members/index.html.haml | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/app/controllers/projects/team_members_controller.rb b/app/controllers/projects/team_members_controller.rb index 1de5bac9ee..518bad35f1 100644 --- a/app/controllers/projects/team_members_controller.rb +++ b/app/controllers/projects/team_members_controller.rb @@ -7,6 +7,7 @@ class Projects::TeamMembersController < Projects::ApplicationController def index @group = @project.group @users_projects = @project.users_projects.order('project_access DESC') + @project_group_links = @project.project_group_links end def new diff --git a/app/views/projects/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml index ddb3b9d4a9..c83dfb6752 100644 --- a/app/views/projects/team_members/index.html.haml +++ b/app/views/projects/team_members/index.html.haml @@ -14,3 +14,23 @@ = render "team", members: @users_projects - if @group = render "group_members" +- if @project_group_links.any? + - @project_group_links.each do |group_links| + - shared_group = group_links.group + - shared_group_users_count = group_links.group.users_groups.count + .panel.panel-default + .panel-heading + Shared with + %strong #{shared_group.name} + group, members with + %strong #{group_links.human_access} + role (#{shared_group_users_count}) + .pull-right + = link_to members_group_path(shared_group), class: 'btn btn-small' do + %i.icon-edit + %ul.well-list + - shared_group.users_groups.order('group_access DESC').limit(20).each do |member| + = render 'users_groups/users_group', member: member, show_controls: false, show_roles: false + - if shared_group_users_count > 20 + %li + and #{shared_group_users_count - 20} more. For full list visit #{link_to 'group members page', members_group_path(shared_group)} From 704b5b670ed88cb526c474f49453b4b64a600405 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Tue, 26 Aug 2014 12:39:19 +0200 Subject: [PATCH 2/3] Add shared group members listing feature. --- features/project/team_management.feature | 5 +++++ features/steps/project/team_management.rb | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/features/project/team_management.feature b/features/project/team_management.feature index e153978e04..9bdce042ed 100644 --- a/features/project/team_management.feature +++ b/features/project/team_management.feature @@ -35,3 +35,8 @@ Feature: Project Team management And I click link "Import team from another project" And I submit "Website" project for import team Then I should see "Mike" in team list as "Reporter" + + Scenario: See all members of projects shared group + Given I share project with group "OpenSource" + And I visit project "Shop" team page + Then I should see "Opensource" group user listing diff --git a/features/steps/project/team_management.rb b/features/steps/project/team_management.rb index ffc5016529..534721cc4f 100644 --- a/features/steps/project/team_management.rb +++ b/features/steps/project/team_management.rb @@ -104,4 +104,23 @@ class ProjectTeamManagement < Spinach::FeatureSteps click_link('Remove user from team') end end + + step 'I share project with group "OpenSource"' do + project = Project.find_by(name: 'Shop') + os_group = create(:group, name: 'OpenSource') + os_project = create(:project, group: os_group) + @os_user1 = create(:user) + @os_user2 = create(:user) + os_group.add_owner(@os_user1) + os_group.add_user(@os_user2, Gitlab::Access::DEVELOPER) + share_link = project.project_group_links.new(group_access: Gitlab::Access::MASTER) + share_link.group_id = os_group.id + share_link.save! + end + + step 'I should see "Opensource" group user listing' do + page.should have_content("Shared with OpenSource group, members with Master role (2)") + page.should have_content(@os_user1.name) + page.should have_content(@os_user2.name) + end end From 77156c0f0c787e5c92be69c4a0abf8afb1b6cc26 Mon Sep 17 00:00:00 2001 From: Marin Jankovski Date: Tue, 26 Aug 2014 12:44:10 +0200 Subject: [PATCH 3/3] Move to partial. --- .../_shared_group_members.html.haml | 19 ++++++++++++++++++ .../projects/team_members/index.html.haml | 20 +------------------ 2 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 app/views/projects/team_members/_shared_group_members.html.haml diff --git a/app/views/projects/team_members/_shared_group_members.html.haml b/app/views/projects/team_members/_shared_group_members.html.haml new file mode 100644 index 0000000000..d51750a4b2 --- /dev/null +++ b/app/views/projects/team_members/_shared_group_members.html.haml @@ -0,0 +1,19 @@ +- @project_group_links.each do |group_links| + - shared_group = group_links.group + - shared_group_users_count = group_links.group.users_groups.count + .panel.panel-default + .panel-heading + Shared with + %strong #{shared_group.name} + group, members with + %strong #{group_links.human_access} + role (#{shared_group_users_count}) + .pull-right + = link_to members_group_path(shared_group), class: 'btn btn-small' do + %i.icon-edit + %ul.well-list + - shared_group.users_groups.order('group_access DESC').limit(20).each do |member| + = render 'users_groups/users_group', member: member, show_controls: false, show_roles: false + - if shared_group_users_count > 20 + %li + and #{shared_group_users_count - 20} more. For full list visit #{link_to 'group members page', members_group_path(shared_group)} diff --git a/app/views/projects/team_members/index.html.haml b/app/views/projects/team_members/index.html.haml index c83dfb6752..944d4348bd 100644 --- a/app/views/projects/team_members/index.html.haml +++ b/app/views/projects/team_members/index.html.haml @@ -15,22 +15,4 @@ - if @group = render "group_members" - if @project_group_links.any? - - @project_group_links.each do |group_links| - - shared_group = group_links.group - - shared_group_users_count = group_links.group.users_groups.count - .panel.panel-default - .panel-heading - Shared with - %strong #{shared_group.name} - group, members with - %strong #{group_links.human_access} - role (#{shared_group_users_count}) - .pull-right - = link_to members_group_path(shared_group), class: 'btn btn-small' do - %i.icon-edit - %ul.well-list - - shared_group.users_groups.order('group_access DESC').limit(20).each do |member| - = render 'users_groups/users_group', member: member, show_controls: false, show_roles: false - - if shared_group_users_count > 20 - %li - and #{shared_group_users_count - 20} more. For full list visit #{link_to 'group members page', members_group_path(shared_group)} + = render "shared_group_members"