adding bulk-user-management by betzster

git-svn-id: http://plugins.svn.wordpress.org/bulk-user-management/trunk@570200 b8457f37-d9ea-0310-8a92-e5e31aec5664
Squashed commit of the following:

commit 165e8e67ed433170a57d30d925b9086df91dc581
Merge: fbee987 4bac99c
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jul 11 11:57:42 2012 -0500

    Merge branch 'master' into develop

commit 4bac99c029f1dddb55f4b3cd9c26d303de92f1ac
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jul 11 11:57:24 2012 -0500

    Update plugin info

commit 1033ed16c938e22773ecacfc6121f5cde9a618fb
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jul 11 11:50:35 2012 -0500

    Set javascript variables in `admin_print_scripts`, not `admin_init`

commit fbee987c14ae0d510e4c620c0eb40b63497fac19
Author: Josh Betz <j@joshbetz.com>
Date:   Tue Jul 10 09:59:36 2012 -0500

    Set up README for WordPress.org plugin repository

commit 7092b3d995e7ca5f8c16785c6f178a6dd0a63669
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 9 14:40:38 2012 -0500

    If `current_user_can_bulk_edit()` and they're editing a valid blog, don't worry about their permissions on the target blog because that means they've been whitelisted for that blog.

commit 82db25047876a4c3b840cc17eee132ae665aade8
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 9 10:51:57 2012 -0500

    Add ability to limit plugin activation to specific users.

commit f2308944a181ab1f7ebea6d0921f69773442e8c0
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 9 10:47:58 2012 -0500

    Instead of limiting the array of blogs, we'll just replace the array that is used.

commit 4cd371293097a912c66e973c5bc55eace51ac54f
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 9 10:46:49 2012 -0500

    More secure redirects. Props @danielbachhuber

commit 8ee5c43e1e1e7414035dd54a606fe0ad5cb7b4f7
Author: Daniel Bachhuber <d@danielbachhuber.com>
Date:   Fri Jul 6 13:34:56 2012 -0700

    Sanitize just to be safe

commit a283959f7ad6f3f471d658c29ed3d33a1f85bbdd
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 14:15:06 2012 -0500

    Only enqueue scripts if we're on the right page

commit b25e3d0bb1a9122d2952b7e20b654dc6362e22c4
Merge: 08c2ee4 36f0879
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:44:45 2012 -0500

    Merge branch 'develop'

commit 36f0879165105b04a433c3097158ce862c303c12
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:44:31 2012 -0500

    Make sure the ID in the database is an integer

commit c6544763adf183bd714365442bd33dfa35e40561
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:44:14 2012 -0500

    Properly escape display_name

commit 08c2ee48e6c87aaba4e24d18d5793332a457dd2c
Merge: d4eec47 fc82987
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:34:09 2012 -0500

    Merge branch 'develop'

commit fc829875dc9249f0cf7f8314213250989830a077
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:33:26 2012 -0500

    Enqueue and register scripts & styles in `admin_enqueue_scripts`

commit e2cf8aee38bdbcf17dca03cdc86fa6f2dbc2074f
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:31:21 2012 -0500

    Use `wp_safe_redirect` for all redirects

commit 3d977d02e8abf6962996ef0a0281a43c1d57df79
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:29:21 2012 -0500

    Enqueue scripts in `admin_enqueue_scripts`

commit 3d60354edad36fa82d666c11e2792a9901b921cb
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:26:14 2012 -0500

    Prefix JS variables to avoid conflicts

commit 6af1c1e4154a4d6d637d1d92883aa2152292cd59
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:25:11 2012 -0500

    Run output through correct function

commit bcd75c18837be0b4dd2b60d4117798a4407d3c99
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 11:01:12 2012 -0500

    Convert tabs to spaces

commit 8bf3c030639f139fc75233d72666a479565972d4
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jul 6 10:19:35 2012 -0500

    Remove `process_bulk_action()` since it's not being used

commit 790ebdc2fc09ca886ae5588cc6b7efae25b0525f
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jul 5 11:53:06 2012 -0500

    Remove per page screen option for now

commit c887fc404aeb3f050657648f36f7b3a3c9e05a99
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jul 5 09:09:36 2012 -0500

    Remove add user form

    For less confusion, we're removing the add users form and putting a
    link to the standard add user form.

commit fd8151640c6eb18eb93176101540a954f9b89c99
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jul 5 09:08:42 2012 -0500

    Cache and display results with ajax

commit adc5bd027db323c367f3e8daf6bd5ad8cd184f5a
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jul 5 09:06:01 2012 -0500

    Use constants instead of private variables if they're not going to change

commit 63bff7598d152080671c839aea2c6bd374256129
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 2 20:47:48 2012 -0500

    Display the list of users with ajax after the initial page load.

commit 8a56fcf9f0ed763a565d094935ffc7cb0ab818d2
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jul 2 11:51:54 2012 -0500

    Instead of one giant query, do smaller queries and put them in an array.

    * Cache results for each blog
    * Clear cache for a specific blog if users are added or removed from it
    * Sort the results with `usort()` and a callback that compares the
    objects' `display_name`, `user_email`, or `user_login` depending on
    what is set as the `orderby` request variable.
    * Split into `$per_page` sized pages with `arary_slice()`

commit b0f8d8fd19c3f4fe9ce86bc8ff83d4e5b56163ea
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 29 10:12:24 2012 -0500

    Remove undefined variables

commit f8d7e79a9a5d56308b44ca36d82af62a02e5f424
Merge: 6916119 d4eec47
Author: Josh Betz <j@joshbetz.com>
Date:   Tue Jun 26 08:49:03 2012 -0500

    Merge branch 'master' into develop

commit d4eec47732c78c34d7cf88a3f70b3b8b8cb5b581
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 20:48:32 2012 -0500

    Only allow network enable

commit 9f1ecfcb042a40ab41f8e79d05977368081ef3f4
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 20:29:01 2012 -0500

    Add `$cap` parameter to `get_blog_ids()` to enable flexibility for checking caps depending on the situation i.e.) Only list site in the remove form if the current user can actually remove users from those sites

commit 69161196847379f9c53bb186560af48d8293b54c
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 14:43:14 2012 -0500

    Bug fix for adding exisiting users

commit 361bf2b64ab77747848476e6c17466432099b592
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 14:25:31 2012 -0500

    Add missing "]"

commit 344baba6a015632e1a4967421a71924a454641b3
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 13:55:31 2012 -0500

    Expand comments

commit 5f57a336a8c51bcff993fd37353ab6922b17dab6
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 10:25:36 2012 -0500

    Notify user if any users were already members of the specified sites.

commit 5f2e6f0946698d2086e6d7b2e462e36c4501f098
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 10:04:25 2012 -0500

    Remove any username/email combinations from the form that were successfully added.

commit b3b372345f135336f03323d16f869464e1ad56af
Author: Josh Betz <j@joshbetz.com>
Date:   Mon Jun 25 09:06:00 2012 -0500

    Allow invite of current users by email or username

    Look through the array of emails and move any users that already exist
    to an `$invites` array. Do the same for the array of usernames. Then
    add everyone in `$invites` directly before continuing with the invite
    process.

commit 03492516656512bc3f198e0a3d404b1f02eb870c
Author: Josh Betz <j@joshbetz.com>
Date:   Sun Jun 24 15:11:17 2012 -0500

    Remove "+" symbol from "Add more users" button.

commit 79ebb63585f2edc9c02f03c6e54e3b157c280a35
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 12:58:03 2012 -0500

    More precise error messages if only a username or email address is specified on a given line

commit 9cf97a899a9dd3d81e6e668e30d7d5411c33704b
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 12:44:59 2012 -0500

    Add documentation for filters and actions

commit 1df7b25f943aa9537df7b97f2a3ba6efbb270119
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 11:28:58 2012 -0500

    Clean up `get_blog_ids()`

commit aabfe9bd0809d95c36aba1fbaea041536c44c732
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 11:11:23 2012 -0500

    Make site checkboxes in the "Add New User" form styled like the one in the "Modify" bulk action (in 2 columns).

commit d14866453f43f12aaae19a3766dbfe63f1ddf48d
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 10:46:40 2012 -0500

    Remove redundant checks and reorder code to avoid notices in the error log.

commit e315426db4d60e0fd10f35221ce349a8f2ac6942
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 10:43:36 2012 -0500

    Secure `handle_remove_users_form()` by checking for permission to remove users on all target blogs.

commit da0204ebecc421df9a0b4f667877ba909ab4ac69
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 10:42:11 2012 -0500

    Expand method comments and fix formatting.

commit 63aeb5770ec63b702ec2d61e5c6532e3ee35e1d4
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 09:49:39 2012 -0500

    Not using any settings so remove for now

commit 58690a2d70c03330c4a240f6df92d4f41d8e1ed0
Author: Josh Betz <j@joshbetz.com>
Date:   Fri Jun 22 09:04:06 2012 -0500

    Make `.site-checklist` into 2 columns and move the role selection for the "Modify" bulk action to the right of the sites checklist

commit 958b0111920c588e025cba80fbb77330aa2f88d6
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 15:56:38 2012 -0500

    Instead of just printing 4 rows OR returning what was entered, print valid rows and then print empty rows up to 4 depending on how many were already filled

commit f273f806a3437fcc2260f07d4cd5fd3672f18f3b
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 15:24:15 2012 -0500

    Cancel first when the bulk edit button is clicked so two different bulk action boxes can't be open at the same time.

commit 8c2841a094e3574d30a8b0c4116a9fc832b18442
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 15:21:47 2012 -0500

    Move styles from inline out to a CSS file and move the "Add more users" button to append the h3.

commit 2476d9c77e290581b44a8a6d7a0441e37fd74121
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 13:52:38 2012 -0500

    Make the text boxes as close to the normal width as possible and align the "Add" button to the right

    Normally `input`s are 95% width, so these are 47%

commit eff468bc06c3b5b221eb29f68f7b9eb3fcc7e830
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 12:31:04 2012 -0500

    Add `button` class to "Add more" button and fix some formatting for the list of username and email textboxes

commit 94f66874582750edf9f84d2f119bbf96191faf3f
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 12:14:52 2012 -0500

    Make the hidden field at the top used to `clone()` from the same width as the ones that are already visible

commit 76592bf8080961b5ac12526d0bd6912642c01591
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 12:13:22 2012 -0500

    Fill username and email fields if they exist when an error is returned to allow fixing

commit 8d87979441b7fa2c2b3e27025d23f92bad1b0d4b
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 11:45:26 2012 -0500

    Add a hidden blank `<div>` to the top of the "Add New User" form to `clone()` from.

commit ae5b5aa6f481533db04d05f14484cb2704b58f24
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 11:41:59 2012 -0500

    Validate email addresses

commit a914e51496668fb3b09cd4ad61ee00b5bcf40790
Author: Josh Betz <j@joshbetz.com>
Date:   Thu Jun 21 11:23:38 2012 -0500

    Makes "Add New User" form work for emails that are already on the network, but don't belong to any of yours sites

commit 76b802d3eb3e46f3486eb6d27e15c3a3b38d716e
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 15:38:40 2012 -0500

    Show roles in list of sites

commit b18da56d517605fa4fdbf9e1f4eaaf5a502fef3b
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 13:15:51 2012 -0500

    Show the pointer cursor for the add more users button

commit 545eb6e46e0cfc1d0f525d2d1766cf9f4e37af7e
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 13:09:24 2012 -0500

    Changed name to "Multisite Bulk User Management"

commit 3b7905c759b3c4231e63a9ad8e8f821eff9d8307
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 12:08:19 2012 -0500

    Add two forms for usernames and email addresses in the invite user form. Also, jQuery to create more rows if needed.

commit 4d122319faefd3af9dc43511e136952c0ca09972
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 11:08:56 2012 -0500

    Add hook for `invite_users_form()`

commit fd22351d61020282060b111969bcccede06c6ee3
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 10:03:03 2012 -0500

    Rename `blog_ids()` to `get_blog_ids()`

commit 166c447bd3055cfc890b226fd61a7f7fc2378aea
Author: Josh Betz <j@joshbetz.com>
Date:   Wed Jun 20 10:01:41 2012 -0500

    Check that the current user can "promote_users" on the target blog

    In the case that `$blogids` contains something it shouldn't, just throw
    an error because there should be no way to select an illegal blog
    anyway. i.e.) Somebody cheated.

commit bd1881e35ff3340ac934b8c3eba4caf1e50c1a2a
Author: Josh Betz <j@joshbetz.com>
Date:   Tue Jun 19 17:37:00 2012 -0500

    Add "remove" bulk action to replace the "none" role in the modify bulk action - close #2

commit cc1a57018cc7cf7128e05c54b1d58bdee94e0511
Author: Josh Betz <j@joshbetz.com>
Date:   Tue Jun 19 11:06:59 2012 -0500

    Show an error if multisite is not enabled.

commit 6b0b5ef9b63cb58bc00381dae29d4550360cee13
Author: Josh Betz <j@joshbetz.com>
Date:   Tue Jun 19 11:00:39 2012 -0500

    Change redirects to use `$page_slug` and `$parent_page` with `add_query_arg()` instead of just concatenating strings

commit 5630863e212ed845792e9e4f8a97c9755effc413
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 18 15:14:23 2012 -0500

    Pass errors back to UI on a failed attempt to add users

commit df325f8c336c59aaeedf3430c7465c0a7a488685
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 18 14:55:11 2012 -0500

    Keep form field values for the add user form if it fails so they can fix it.

commit a79d12ab58c64963428dd840f4b77fdf578e8402
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 18 08:52:45 2012 -0500

    verify `$_REQUEST['page']` is the `$page_slug` when a form is submitted

commit e8d0dbc340063d8bd231cfc450e4bd1f15e0e751
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 18 08:38:06 2012 -0500

    Allow current user to edit a user if they can `edit_users`

commit 7db52f3d175d603722b3678bfa599f30bfd868e2
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 11:06:04 2012 -0500

    Send forms by `POST`

commit ac697de90308885059b5bcece9e91a6863d62b18
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:32:36 2012 -0500

    Use PHP5 style object references

commit 35d5a6731edc2830ee58f722f5e6d004a2eb1ac4
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:30:58 2012 -0500

    Properly escape attributes and request variables

commit 3ed03f8526fbec8bc21b0151055d21310367f7be
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:18:25 2012 -0500

    Don't check the "Skip Confirmation" box when WP_DEBUG is checked

    I had it checked while I was testing the feature so I wouldn't keep
    getting confirmations for every user.

commit d1ce239455e978aa7570525ef0b6c551d2967f2b
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:11:57 2012 -0500

    Use the users screen icon

commit 1a50f2965149128113e34bb8064ae3a02686a2f4
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:10:12 2012 -0500

    Rename `$users_slug` to `$page_slug` because each part will be its own plugin

commit da3163b40f3855b5af3564e51ae743851a035985
Author: Josh Betz <betzster@gmail.com>
Date:   Sat Jun 16 10:00:28 2012 -0500

    Run the `vip_dashboard_users_invite` action directly

commit 435f4183eef2d44947fe0e15ce80ac9ec3df4db3
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 15 15:31:36 2012 -0500

    Bring all redirects back to the same page

commit b5c130c6683a74e8da83ee4031511bec17a43e1f
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 15 13:51:28 2012 -0500

    Limit `blog_ids()` only to sites the user can 'list_users'

commit 64b5a5d0e741950aae0f51f17603b06d8e9a9944
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 15 13:27:21 2012 -0500

    Clean code around `wp_redirect`'s

commit 335fdee315301e8b842a8d9bc78c683d5126abfb
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 15 13:25:24 2012 -0500

    Remove ID from username column

commit 3609f7dd64afa86ddf8615afbf10ccc29338b078
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 15 12:28:04 2012 -0500

    Use WP_Error and begin adding responses when forms are submitted.

commit 34c069cf0123858a1d58e1e4153bde04ebacaad4
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 15:51:52 2012 -0500

    Add comments for most of the methods

commit 154ff68fae0a09042d1d7eb6066cd89d20f295e5
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 14:49:47 2012 -0500

    Change submit button to "Add Users" instead of "Add User"

commit d0393ccd72d11e3e0f2180b3ea5fce22972de7b6
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 14:36:16 2012 -0500

    Added actions for handling GET and POST requests

commit b41aea1490ca27457c1c30701d4cfb181e04e117
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 13:47:36 2012 -0500

    Add screen option to set the number of users per page because we were previously using the same value that's set on the regular Users page

commit 1b465e17b32d0ad25df8eb38913b10dd41fee4b9
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 13:17:05 2012 -0500

    Format list of checkboxes for adding new users to sites.

commit 8f29394039c4d52859341cc0815c05fb4202d484
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 12:53:13 2012 -0500

    Link sites to the `siteurl`

commit c0fede674e2fc1edef319475cf324ab92cd182ec
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 12:37:35 2012 -0500

    Fix double indents

commit 3eecdd5933801f4e8b7446ad0926ca54ad3363cc
Author: Josh Betz <betzster@gmail.com>
Date:   Thu Jun 14 12:37:22 2012 -0500

    Add `create_users()` to send out invites and create users if `vip_dashboard_users_invite` action doesn't exist

    Also add actions for `wpmu_activate_user` to add user to multiple sites
    when they are activated and `wpmu_signup_user_notification_email` to
    customize invite message

commit 9ae51dd49a007e05259024127d5ef905a8c02e00
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 14:38:16 2012 -0500

    Fix spacing in `VIP_Dashboard` setup

commit c2c8043e356dd98ac9d7f687e6164f52a90c3caa
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 14:34:48 2012 -0500

    Add a hook that can be used for invites on wp.com

commit 24da075285c2388c4dc562f7e4dc2d6b633d5435
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 11:19:11 2012 -0500

    Change available edit actions on a row to be consistent with other user managment

commit bc96db731b530fc76e282a64894b647750836a5a
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 10:17:33 2012 -0500

    Fully handle validation in `handle_promote_users_form()`

commit d49392f1124414353b2019d17eaaf0bace71360f
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 10:12:48 2012 -0500

    Add placeholder for `handle_create_users_form()`

commit 6624f400e47405f33fb8a1916a434d60650b1804
Author: Josh Betz <betzster@gmail.com>
Date:   Wed Jun 13 10:11:46 2012 -0500

    Fix WP_User_Query

    It was actually just pulling every user because the `meta_query` was
    wrong. When I fixed the `meta_query` I also had to specify the `OR`
    relation because it defaults to `AND`.

commit 247823af37d1e53a8d278a564483fd0435ab9eca
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 14:06:58 2012 -0500

    Add search form

commit c8a367398a4b1b6af06539cca94f1dd8dd5974b1
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 13:00:07 2012 -0500

    Added `handle_promote_users_form` to handle form validation

commit f852573aeaa920a7d829223bc19438452e6dc1a6
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 12:54:13 2012 -0500

    Renamed `VIP_User_Table.php`

commit 1d54d165d6d18e68001c213675ea3112210ba134
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 12:38:05 2012 -0500

    Rename `VIP_User_Table.php` to follow coding standards

commit 0552d6631f87529f1d830510bed5dc85a43db8a3
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 12:33:23 2012 -0500

    Properly sanitize and escape `$blog->blog_id` and `$role`. Also naming nonce specifically for the plugin.

commit e2620bb96877ba60ce757e333335be82402901ad
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 12:19:36 2012 -0500

    Move `vip_dashboard_users_parent_page` filter to `init()`

commit 787661e9de3876a6f6fa30cbd66d2693f9c2e203
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 12:06:11 2012 -0500

    Make parent page filterable

commit 877e3c303ecd75beec00170a792edc5e07fb0f43
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 11:39:31 2012 -0500

    Add the Users page as a submenu of the Dashboard and remove the top level menu

commit a01eb63df56edb05bf3b8df837aedd67044bf315
Author: Josh Betz <betzster@gmail.com>
Date:   Tue Jun 12 11:01:59 2012 -0500

    Added bulk edit via ajax

    * Removed functions for generating the temporary table
    * Added function to generate bulk edit box
    * Added javascript to display bulk edit box with ajax
    * Modified the form to use `add_user_to_blog()` and
    `remove_user_from_blog()`

commit f91d50c59b4f7d7cf1a160f3834fa97fcd96d958
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 11 18:43:58 2012 -0500

    Fix line indenting - e.g.) :retab

commit d6ffac21fa1cfc7d49e592aa2a3e592d3310e5a1
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 11 18:42:27 2012 -0500

    Add text domain

commit a2313ce230ab9c97edc30c814910ff938c9e2454
Author: Josh Betz <betzster@gmail.com>
Date:   Mon Jun 11 18:37:25 2012 -0500

    Wrap table in `form` and add search box

commit f6729dbc3cf64972ba800627c611f10aa8126338
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 8 15:58:38 2012 -0500

    Link email addresses

commit 6de43f64475a98f5335f8ed334bb5de765608e6d
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 8 15:48:32 2012 -0500

    Added a class class that extends `WP_List_Table` instead of building the HTML manually. Also using `WP_User_Query` once instead of a call to `get_users()` for every blog

commit 07f329d37cb2a896ea753129b113d6853c9351cc
Author: Josh Betz <betzster@gmail.com>
Date:   Fri Jun 8 10:28:06 2012 -0500

    Initial commit