From 31f39dada1f6348c8ad9ee04f2a895ec198808d2 Mon Sep 17 00:00:00 2001 From: James Allen Date: Fri, 28 Mar 2014 12:07:30 +0000 Subject: [PATCH] Allow multi select of users in group page --- .../app/views/subscriptions/group_admin.jade | 3 +- .../coffee/SubscriptionGroupsManager.coffee | 34 ++++++++++++------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/services/web/app/views/subscriptions/group_admin.jade b/services/web/app/views/subscriptions/group_admin.jade index a910312120..823b57beeb 100644 --- a/services/web/app/views/subscriptions/group_admin.jade +++ b/services/web/app/views/subscriptions/group_admin.jade @@ -15,6 +15,7 @@ block content thead tr th + input(type="checkbox").select-all th email th Name th Registered @@ -23,7 +24,7 @@ block content -each user in users tr td - input(type="checkbox") + input(type="checkbox").select-one td #{user.email} td #{user.first_name} #{user.last_name} td #{!user.holdingAccount} diff --git a/services/web/public/coffee/SubscriptionGroupsManager.coffee b/services/web/public/coffee/SubscriptionGroupsManager.coffee index 75460535d9..5a95b5803a 100644 --- a/services/web/public/coffee/SubscriptionGroupsManager.coffee +++ b/services/web/public/coffee/SubscriptionGroupsManager.coffee @@ -7,12 +7,12 @@ require [ tableRowTemplate = ''' - + {{ email }} {{ first_name }} {{ last_name }} {{ !holdingAccount }} - + ''' @@ -58,16 +58,19 @@ require [ $form.find("input").val('') removeUsers = (e)-> - selectedUserRows = $('td input:checked').closest('tr').find(".user_id") - selectedUserRows.each (index, userRow)-> - user_id = $(userRow).val() - $.ajax - url: "/subscription/group/user/#{user_id}" - type: 'DELETE' - data: - _csrf: csrfToken - success: -> - $(userRow).parents("tr").fadeOut(250) + selectedUserRows = $('td input.select-one:checked').closest('tr').find(".user_id").toArray() + do deleteNext = () -> + row = selectedUserRows.pop() + if row? + user_id = $(row).val() + $.ajax + url: "/subscription/group/user/#{user_id}" + type: 'DELETE' + data: + _csrf: csrfToken + success: -> + $(row).parents("tr").fadeOut(250) + deleteNext() $form.on 'keypress', (e)-> if(e.keyCode == 13) @@ -76,3 +79,10 @@ require [ $form.find(".addUser").on 'click', addUser $('#deleteUsers').on 'click', removeUsers + + $('input.select-all').on "change", () -> + if $(@).is(":checked") + $("input.select-one").prop( "checked", true ) + else + $("input.select-one").prop( "checked", false ) +