From 5f9da885ee6e0ffe1e26f05d47f6de762bafb473 Mon Sep 17 00:00:00 2001 From: Charles Cardinaux Date: Tue, 26 Nov 2013 16:38:19 -0800 Subject: [PATCH 1/2] add select all sites functionality --- includes/class-bulk-user-table.php | 10 ++++++++-- js/bulk-user-management-inline-edit.js | 12 +++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/includes/class-bulk-user-table.php b/includes/class-bulk-user-table.php index e92f9d0..cbc38b2 100644 --- a/includes/class-bulk-user-table.php +++ b/includes/class-bulk-user-table.php @@ -223,7 +223,10 @@ function inline_edit() {
- + + +    +
    get_blog_ids( 'promote_users' ) as $id ): ?> @@ -278,7 +281,10 @@ function bulk_remove() {
- + + +    +
    get_blog_ids( 'remove_users' ) as $id ): ?> diff --git a/js/bulk-user-management-inline-edit.js b/js/bulk-user-management-inline-edit.js index 27842cb..e82f611 100644 --- a/js/bulk-user-management-inline-edit.js +++ b/js/bulk-user-management-inline-edit.js @@ -150,7 +150,17 @@ inlineEditUser = { } }; -$(document).ready(function(){inlineEditUser.init();}); +$(document).ready(function(){ + inlineEditUser.init(); + $('.select-all-sites').on('click', function() { + if($(this).prop('checked')) { + $('.site-checklist input').prop('checked', true); + } + else { + $('.site-checklist input').prop('checked', false); + } + }); +}); })(jQuery); function getParameterByName(name, url) { From 6f8b47fe09730d9ffcadd7a8577f6f290ec1949f Mon Sep 17 00:00:00 2001 From: Charles Cardinaux Date: Thu, 5 Dec 2013 14:38:52 -0800 Subject: [PATCH 2/2] fix JS error, prevent trying to add or remove users who are already added/removed --- bulk-user-management.php | 8 ++++++++ js/bulk-user-management-inline-edit.js | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bulk-user-management.php b/bulk-user-management.php index 27d4853..048307a 100644 --- a/bulk-user-management.php +++ b/bulk-user-management.php @@ -297,6 +297,10 @@ public function handle_promote_users_form() { public function promote_users($blogids = array(), $userids = array(), $role) { foreach ( $userids as $id ) { foreach ( $blogids as $blogid ) { + // Is the current user already a member of the blog with the given `$role`? If so, continue. + if ( count ( get_users( array( 'blog_id' => $blogid, 'role' => $role, 'include' => array ( $id ) ) ) ) > 0 ) { + continue; + } add_user_to_blog( $blogid, $id, $role ); } } @@ -358,6 +362,10 @@ public function handle_remove_users_form() { public function remove_users($blogids = array(), $userids = array()) { foreach ( $userids as $userid ) { foreach ( $blogids as $blogid ) { + // Is the current user already not a member of the blog? If so, continue. + if ( count ( get_users( array( 'blog_id' => $blogid, 'include' => array ( $userid ) ) ) ) == 0 ) { + continue; + } remove_user_from_blog( $userid, $blogid ); } } diff --git a/js/bulk-user-management-inline-edit.js b/js/bulk-user-management-inline-edit.js index e82f611..cf88eef 100644 --- a/js/bulk-user-management-inline-edit.js +++ b/js/bulk-user-management-inline-edit.js @@ -154,10 +154,10 @@ $(document).ready(function(){ inlineEditUser.init(); $('.select-all-sites').on('click', function() { if($(this).prop('checked')) { - $('.site-checklist input').prop('checked', true); + $(this).parents('tr.bulk-edit-row').find('.site-checklist input').prop('checked', true); } else { - $('.site-checklist input').prop('checked', false); + $(this).parents('tr.bulk-edit-row').find('.site-checklist input').prop('checked', false); } }); });