File "users-grant-roles.js"
Full Path: /home/mba/public_html/wp-content-20250804013034-20250807183448/plugins/user-role-editor/js/users-grant-roles.js
File size: 4.66 KB
MIME-type: text/plain
Charset: utf-8
/*
* 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;
}