merge_users.php 5.63 KB
<?php
namespace Tz\WordPress\Tools\UserManager;

use Tz, Tz\Common;
use Tz\WordPress\CBV;
use Tz\WordPress\CBV\User;
use Tz\WordPress\UAM;
use Tz\WordPress\Tools;
use Tz\WordPress\Tools\Auth;
use Exception, StdClass;
use WP_User;

// Make sure some defaults are set because we use these values as is in the input boxes
if (! isset($_POST['search_user_from'])) {
	$_POST['search_user_from'] = '';
}
if (! isset($_POST['search_user_to'])) {
	$_POST['search_user_to'] = '';
}

?>
<style>



h4 {
	float: left;
	padding-right: 1em;
}

.merge-users {
	float: left;
	padding-right: 2em;
}

.merge-users label {
	float: left;
	font-weight: bold;
	padding-right: 1em;
}

.merge-users input {
	float: left;
}

.clear {
	float: left;
	clear: both;
}

.user-list, .user-list li {
	float: left;
	clear: both;
}

.changed {
    margin-top: 5px;
	clear: both;
	display: none;
}

.changed h6 {
    padding: 0px;
    margin: 0px 0px 10px 0px;
    font-size: 11px;
    text-transform: uppercase;
}

.changed ul {
    margin: 0;
    padding: 0;
}

.changed ul li {
    margin: 0px 0px 3px 0px;
    padding: 0px;
    font-size: 11px;
	background: none;
}
.merge-table td { padding:10px;}
</style>

<div class="wrap">

    <div id="icon-users" class="icon32"><br /></div>
    <h2>Merge CBV Users...</h2>
    
    <div class="validation-errors" style="display:none; margin: 10px 0px 10px;">
    	<div class="error-wrap">
    		<ul></ul>
    	</div>
    </div>
    
    <div id="post-body" style="padding:10px 0px 15px 0px;">
        <form method="post" id="admin-search-merge-form">
            <table cellspacing="0" class="widefat post fixed merge-table">
                <thead>
                    <tr>
                        <th width="50%"><label for="search_user_from">Merge <strong><em>FROM</em></strong> User:</label></th> 
                        <th width="50%"><label for="search_user_to">Merge <strong><em>TO</em></strong> User:</label></th>               
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>
                            <div class="merge-users">                				
                				<input class="clear" type="text" name="search_user_from" value="<?php echo $_POST['search_user_from'] ?>" />
                				<input type="button" name="btn_user_from" value="Search" />&nbsp;<img id="search_user_from_spinner" class="spinners" src="/wp-content/tz-tools/com/Branding/images/spinner.gif" style="display:none;" />

                			</div>
                        </td>
                        <td>
                            <div class="merge-users">                				
                				<input class="clear" type="text" name="search_user_to" value="<?php echo $_POST['search_user_to'] ?>" />
                				<input type="button" name="btn_user_to" value="Search" />&nbsp;<img id="search_user_to_spinner" class="spinners" src="/wp-content/tz-tools/com/Branding/images/spinner.gif" style="display:none;" />
                			</div>
                        </td>
                    </tr>
                    <tr>
                        <td><div id="user-list-from"></div></td>
                        <td><div id="user-list-to"></div></td>
                    </tr>
                </tbody>
            </table>
    
    		<div id="field-list" class="changed">
    			<table cellspacing="0" class="widefat post fixed merge-table"></table>
    		</div>
    
            <div style="clear:both;"></div>
    
            <div style="margin-top:10px;">
    			<input type="hidden" value="from" name="which_user_search" />
    			<input type="hidden" value="no" name="do_search" />
    			<input type="hidden" value="no" name="do_merge" />
                <input type="button" value="Merge Users" name="btn_merge" />
            </div>
            
        </form>
    
    </div>

</div>

<script src="<?php echo Tools\url('../UserManager.js', __FILE__);?>" type="text/javascript"></script>
<script type="text/javascript">
var $ 				       = jQuery;
var $which_user_search     = $('[name=which_user_search]');
var $do_search		       = $('[name=do_search]');
var $do_merge		       = $('[name=do_merge]');
var $form                  = $('#admin-search-merge-form');
var $field_list            = $('#field-list');
var $error_container       = $('.validation-errors');

var $from_spinner          = $('#search_user_from_spinner');
var $to_spinner            = $('#search_user_to_spinner');

$('[name=btn_user_from]').click(function() {
    $from_spinner.show();
	$which_user_search.val("from");
	$do_search.val("yes");
	$form.submit();
});

$('[name=btn_user_to]').click(function() {
    $to_spinner.show();
	$which_user_search.val("to");
	$do_search.val("yes");
	$form.submit();
});

$('[name=btn_merge]').click(function() {
	$do_search.val("no");
	$do_merge.val("yes");
	
	if (confirm('Are you sure you want to merge users? This action is NOT reversible!')) {
		$form.submit();
	}
});

$(function() {

	var options = {
		url:         ajaxurl,
		dataType:   'json',
		type:       'post',
		data:       ({ajax:"yes", action: 'admin_search_merge_users'}),
		success: function(data) {
		    $('.spinners').hide();
			if (data.success == "false") {
				$('h6', $error_container).html("OOPS...");
				$('ul', $error_container).html(data.msg);
				$field_list.hide();
            	$error_container.show();
			} else {
				$error_container.hide();
				if (data.fields === undefined) {
					$('#user-list-' + data.direction).html(data.html);
					$field_list.hide();
				} else {
					$('#user-list-from').html("");
					$('#user-list-to').html("");
					$('table', $field_list).html(data.fields);
					$field_list.show();
				}
			}
		}
	};
	$form.ajaxForm(options);

});

</script>