Просмотр исходного кода

added bulk removing of users to group admin panel

Henry Oswald 12 лет назад
Родитель
Сommit
a0805f97e0

+ 16 - 8
services/web/app/views/subscriptions/group_admin.jade

@@ -14,6 +14,7 @@ block content
 		table.table-striped.table.table-striped
 		table.table-striped.table.table-striped
 			thead 
 			thead 
 				tr
 				tr
+					th
 					th email
 					th email
 					th Name
 					th Name
 					th Registered
 					th Registered
@@ -21,20 +22,27 @@ block content
 			tbody#userList
 			tbody#userList
 				-each user in users
 				-each user in users
 					tr
 					tr
+						td 
+							input(type="checkbox")
 						td #{user.email}
 						td #{user.email}
 						td #{user.first_name} #{user.last_name}
 						td #{user.first_name} #{user.last_name}
 						td #{!user.holdingAccount}
 						td #{!user.holdingAccount}
 						td
 						td
-							button.btn.btn-danger(id=user._id) Remove
+							input(type="hidden", name="user_id", value=user._id).user_id {{user._id}}
 
 
 
 
-		form.well.form-inline#addUserToGroup
-			div
-				input(name="_csrf", type="hidden", value=csrfToken)
-				input(name="email", type="email", placeholder="someone@email.com")#newEmail.email.input-large  
-				button.btn.btn-primary.addUser Add
-			div  
-			div Add multiple emails seperated with commas or space.
+		div
+			button.btn.btn-danger#deleteUsers Delete Selected
+		div  
+		div
+			form.well.form-inline#addUserToGroup
+				div
+					input(name="_csrf", type="hidden", value=csrfToken)
+					input(name="email", type="email", placeholder="someone@email.com")#newEmail.email.input-large  
+					button.btn.btn-primary.addUser Add
+				div  
+				div Add multiple emails seperated with commas or space.
+
 
 
 	- locals.supressDefaultJs = true
 	- locals.supressDefaultJs = true
 	script(data-main='/js/SubscriptionGroupsManager.js', src='/js/libs/require.js')
 	script(data-main='/js/SubscriptionGroupsManager.js', src='/js/libs/require.js')

+ 18 - 12
services/web/public/coffee/SubscriptionGroupsManager.coffee

@@ -7,10 +7,13 @@ require [
 
 
 		tableRowTemplate = '''
 		tableRowTemplate = '''
 			<tr>
 			<tr>
+				<td> <input type="checkbox"></td>
 				<td> {{ email }} </td>
 				<td> {{ email }} </td>
 				<td> {{ first_name }} {{ last_name }} </td>
 				<td> {{ first_name }} {{ last_name }} </td>
 				<td> {{ !holdingAccount }} </td>
 				<td> {{ !holdingAccount }} </td>
-				<td><button id="{{_id}}"" class="btn btn-danger">Remove</button></td>
+				<td>
+					<input type="hidden" name="user_id" value="{{user_id}}" class="user_id">
+				</td>
 			</tr>
 			</tr>
 		'''
 		'''
 
 
@@ -54,16 +57,19 @@ require [
 				sendNewUserToServer(email)
 				sendNewUserToServer(email)
 			$form.find("input").val('')
 			$form.find("input").val('')
 
 
-		removeUser = (e)->
-			button = $(e.target)
-			user_id = button.attr("id")
-			$.ajax
-				url: "/subscription/group/user/#{user_id}"
-				type: 'DELETE'
-				data:
-					_csrf: csrfToken
-				success: ->
-					button.parents("tr").fadeOut(250)
+		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)
+
+
 
 
 		$form.on 'keypress', (e)->
 		$form.on 'keypress', (e)->
 			if(e.keyCode == 13)
 			if(e.keyCode == 13)
@@ -71,4 +77,4 @@ require [
 
 
 		$form.find(".addUser").on 'click', addUser
 		$form.find(".addUser").on 'click', addUser
 
 
-		$('table').on 'click', '.btn-danger', removeUser
+		$('#deleteUsers').on 'click', removeUsers