update plugins
This commit is contained in:
166
wp/wp-content/plugins/user-role-editor/js/users-grant-roles.js
Normal file
166
wp/wp-content/plugins/user-role-editor/js/users-grant-roles.js
Normal file
@@ -0,0 +1,166 @@
|
||||
|
||||
/*
|
||||
* User Role Editor: support of 'Grant Roles' button for Users page (wp-admin/users.php)
|
||||
*/
|
||||
|
||||
jQuery(function() {
|
||||
jQuery('#ure_grant_roles').click(function() {
|
||||
ure_prepare_grant_roles_dialog();
|
||||
});
|
||||
jQuery('#ure_grant_roles_2').click(function() {
|
||||
ure_prepare_grant_roles_dialog();
|
||||
});
|
||||
|
||||
if (ure_users_grant_roles_data.show_wp_change_role!=1) {
|
||||
jQuery('#new_role').hide();
|
||||
jQuery('#new_role2').hide();
|
||||
jQuery('#changeit').hide();
|
||||
jQuery('[id=changeit]:eq(1)').hide(); // for 2nd 'Change' button with the same ID.
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function ure_get_selected_checkboxes(item_name) {
|
||||
var items = jQuery('input[type="checkbox"][name="'+ item_name +'\\[\\]"]:checked').map(function() { return this.value; }).get();
|
||||
|
||||
return items;
|
||||
}
|
||||
|
||||
|
||||
function ure_show_grant_roles_dialog_pre_selected(response) {
|
||||
jQuery('#ure_task_status').hide();
|
||||
if (response!==null && response.result=='error') {
|
||||
alert(response.message);
|
||||
return;
|
||||
}
|
||||
if (response.primary_role!==null && response.primary_role.length>0 && jQuery('#primary_role').length>0) {
|
||||
jQuery('#primary_role').val(response.primary_role);
|
||||
}
|
||||
|
||||
if (response.other_roles!==null && response.other_roles.length>0) {
|
||||
for(i=0;i<response.other_roles.length;i++) {
|
||||
jQuery('#wp_role_'+ response.other_roles[i]).prop('checked', true);
|
||||
}
|
||||
}
|
||||
|
||||
ure_show_grant_roles_dialog();
|
||||
|
||||
}
|
||||
|
||||
|
||||
function ure_get_selected_user_roles(users) {
|
||||
jQuery('#ure_task_status').show();
|
||||
var user_id = users.shift();
|
||||
var data = {
|
||||
'action': 'ure_ajax',
|
||||
'sub_action':'get_user_roles',
|
||||
'user_id': user_id,
|
||||
'wp_nonce': ure_users_grant_roles_data.wp_nonce};
|
||||
jQuery.post(ajaxurl, data, ure_show_grant_roles_dialog_pre_selected, 'json');
|
||||
}
|
||||
|
||||
|
||||
function ure_unselect_roles() {
|
||||
jQuery('#primary_role').val([]);
|
||||
|
||||
// uncheck all checked checkboxes if there are any
|
||||
jQuery('input[type="checkbox"][name="ure_roles\\[\\]"]:checked').map(function() {
|
||||
this.checked = false;
|
||||
});
|
||||
}
|
||||
|
||||
function ure_prepare_grant_roles_dialog() {
|
||||
var users = ure_get_selected_checkboxes('users');
|
||||
if (users.length==0) {
|
||||
alert(ure_users_grant_roles_data.select_users_first);
|
||||
return;
|
||||
}
|
||||
|
||||
if (users.length==1) {
|
||||
ure_get_selected_user_roles(users);
|
||||
} else {
|
||||
ure_unselect_roles();
|
||||
ure_show_grant_roles_dialog();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
function ure_show_grant_roles_dialog() {
|
||||
|
||||
jQuery('#ure_grant_roles_dialog').dialog({
|
||||
dialogClass: 'wp-dialog',
|
||||
modal: true,
|
||||
autoOpen: true,
|
||||
closeOnEscape: true,
|
||||
width: 600,
|
||||
height: 400,
|
||||
resizable: false,
|
||||
title: ure_users_grant_roles_data.dialog_title,
|
||||
'buttons': {
|
||||
'OK': function () {
|
||||
ure_grant_roles();
|
||||
jQuery(this).dialog('close');
|
||||
return true;
|
||||
},
|
||||
Cancel: function () {
|
||||
jQuery(this).dialog('close');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function ure_grant_roles() {
|
||||
var primary_role = jQuery('#primary_role').val();
|
||||
var other_roles = ure_get_selected_checkboxes('ure_roles');
|
||||
jQuery('#ure_task_status').show();
|
||||
var users = ure_get_selected_checkboxes('users');
|
||||
var data = {
|
||||
'action': 'ure_ajax',
|
||||
'sub_action':'grant_roles',
|
||||
'users': users,
|
||||
'primary_role': primary_role,
|
||||
'other_roles': other_roles,
|
||||
'wp_nonce': ure_users_grant_roles_data.wp_nonce};
|
||||
jQuery.post(ajaxurl, data, ure_page_reload, 'json');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
function ure_set_url_arg(arg_name, arg_value) {
|
||||
var url = window.location.href;
|
||||
var hash = location.hash;
|
||||
url = url.replace(hash, '');
|
||||
if (url.indexOf(arg_name + "=")>=0) {
|
||||
var prefix = url.substring(0, url.indexOf(arg_name));
|
||||
var suffix = url.substring(url.indexOf(arg_name));
|
||||
suffix = suffix.substring(suffix.indexOf("=") + 1);
|
||||
suffix = (suffix.indexOf("&") >= 0) ? suffix.substring(suffix.indexOf("&")) : "";
|
||||
url = prefix + arg_name + "=" + arg_value + suffix;
|
||||
} else {
|
||||
if (url.indexOf("?") < 0) {
|
||||
url += "?" + arg_name + "=" + arg_value;
|
||||
} else {
|
||||
url += "&" + arg_name + "=" + arg_value;
|
||||
}
|
||||
}
|
||||
url = url + hash;
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
|
||||
function ure_page_reload(response) {
|
||||
|
||||
if (response!==null && response.result=='error') {
|
||||
jQuery('#ure_task_status').hide();
|
||||
alert(response.message);
|
||||
return;
|
||||
}
|
||||
|
||||
var url = ure_set_url_arg('update', 'promote');
|
||||
document.location = url;
|
||||
}
|
||||
Reference in New Issue
Block a user