From 73c4da1780c5086543eb998d5bc9cbd632ef6576 Mon Sep 17 00:00:00 2001
From: Phil Hughes <me@iamphill.com>
Date: Tue, 6 Sep 2016 16:20:20 +0100
Subject: [PATCH] Fixed removing groups

---
 app/controllers/projects/group_links_controller.rb | 7 ++++++-
 app/views/shared/members/_group.html.haml          | 3 ++-
 spec/features/projects/members/group_links_spec.rb | 9 +++++++++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/app/controllers/projects/group_links_controller.rb b/app/controllers/projects/group_links_controller.rb
index 7b4c39cdb8f..7b6f07465e0 100644
--- a/app/controllers/projects/group_links_controller.rb
+++ b/app/controllers/projects/group_links_controller.rb
@@ -29,7 +29,12 @@ class Projects::GroupLinksController < Projects::ApplicationController
   def destroy
     project.project_group_links.find(params[:id]).destroy
 
-    redirect_to namespace_project_group_links_path(project.namespace, project)
+    respond_to do |format|
+      format.html do
+        redirect_to namespace_project_group_links_path(project.namespace, project)
+      end
+      format.js { head :ok }
+    end
   end
 
   protected
diff --git a/app/views/shared/members/_group.html.haml b/app/views/shared/members/_group.html.haml
index 56d31a949ff..171a388b233 100644
--- a/app/views/shared/members/_group.html.haml
+++ b/app/views/shared/members/_group.html.haml
@@ -1,6 +1,6 @@
 - group = local_assigns[:group]
 - group_link = local_assigns[:group_link]
-%li.member{ class: dom_class(group), id: dom_id(group) }
+%li.member.group_member{ id: "group_member_#{group_link.id}" }
   %span{ class: "list-item-name" }
     = image_tag group_icon(group), class: "avatar s40", alt: ''
     %strong
@@ -21,6 +21,7 @@
       = link_to namespace_project_group_link_path(@project.namespace, @project, group_link),
         remote: true,
         method: :delete,
+        data: { confirm: "Are you sure you want to remove #{group.name}?" },
         class: 'btn btn-remove prepend-left-10' do
         %span.visible-xs-block
           Delete
diff --git a/spec/features/projects/members/group_links_spec.rb b/spec/features/projects/members/group_links_spec.rb
index 2085e875f12..7870bc663b1 100644
--- a/spec/features/projects/members/group_links_spec.rb
+++ b/spec/features/projects/members/group_links_spec.rb
@@ -34,4 +34,13 @@ feature 'Projects > Members > Anonymous user sees members', feature: true, js: t
       expect(page).to have_content('Expires in')
     end
   end
+
+  it 'deletes group link' do
+    page.within(first('.group_member')) do
+      find('.btn-remove').click
+    end
+    wait_for_ajax
+
+    expect(page).not_to have_selector('.group_member')
+  end
 end
-- 
GitLab