From e33cda96cb20f47fdde4314f6bb00e43bbf5aeb4 Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Thu, 1 Sep 2016 15:27:42 +0100
Subject: [PATCH] Fixed group members not deleting Combine both group members &
 project members in project members list

---
 app/assets/javascripts/project_members.js.es6          | 7 ++++---
 app/controllers/projects/project_members_controller.rb | 9 +++++----
 app/views/projects/project_members/_team.html.haml     | 6 ++++--
 app/views/projects/project_members/index.html.haml     | 1 +
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/app/assets/javascripts/project_members.js.es6 b/app/assets/javascripts/project_members.js.es6
index 659c57d8b6c..8b5cb17ac2d 100644
--- a/app/assets/javascripts/project_members.js.es6
+++ b/app/assets/javascripts/project_members.js.es6
@@ -8,12 +8,12 @@
     }
 
     removeListeners() {
-      $('.project_member').off('ajax:success');
+      $('.project_member, .group_member').off('ajax:success');
       $('.js-member-update-control').off('change');
     }
 
     addListeners() {
-      $('.project_member').on('ajax:success', this.removeRow);
+      $('.project_member, .group_member').on('ajax:success', this.removeRow);
       $('.js-member-update-control').on('change', function () {
         $(this).closest('form')
           .trigger("submit.rails");
@@ -24,7 +24,8 @@
       const $target = $(e.target);
 
       if ($target.hasClass('btn-remove')) {
-        $target.fadeOut();
+        console.log('a');
+        $target.closest('.member').fadeOut();
       }
     }
 
diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb
index 6060ddf025b..abb92938211 100644
--- a/app/controllers/projects/project_members_controller.rb
+++ b/app/controllers/projects/project_members_controller.rb
@@ -6,15 +6,16 @@ class Projects::ProjectMembersController < Projects::ApplicationController
 
   def index
     @groups = @project.project_group_links.all
-    @project_members = @project.project_members
+    @project_members = @project.team.members.all
+    @project_members_size = @project_members.size
+    @group_members = @project.group.group_members
     @project_members = @project_members.non_invite unless can?(current_user, :admin_project, @project)
 
     if params[:search].present?
-      users = @project.users.search(params[:search]).to_a
-      @project_members = @project_members.where(user_id: users)
+      @project_members = @project_members.search(params[:search])
     end
 
-    @project_members = @project_members.order('access_level DESC')
+    @project_members = @project_members.page(params[:page])
 
     @requesters = @project.requesters if can?(current_user, :admin_project, @project)
 
diff --git a/app/views/projects/project_members/_team.html.haml b/app/views/projects/project_members/_team.html.haml
index 6a8b28d3886..23c35f91b6b 100644
--- a/app/views/projects/project_members/_team.html.haml
+++ b/app/views/projects/project_members/_team.html.haml
@@ -2,6 +2,8 @@
   .panel-heading
     Users with access to
     %strong #{@project.name}
-    %span.badge= members.size
+    %span.badge= @project_members_size
   %ul.content-list
-    = render partial: 'shared/members/member', collection: members, as: :member
+    - members.each do |user|
+      - member = @project.team.find_member(user.id)
+      = render 'shared/members/member', member: member
diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml
index 42a23057ff1..85e512a75f4 100644
--- a/app/views/projects/project_members/index.html.haml
+++ b/app/views/projects/project_members/index.html.haml
@@ -25,3 +25,4 @@
     = render 'groups', groups: @groups
 
   = render 'team', members: @project_members
+  = paginate @project_members, theme: "gitlab"
-- 
GitLab