This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
aktiv-web/wp-content/plugins/user-role-editor/js/ure-js.js
T
2014-09-15 21:54:26 +02:00

444 lines
14 KiB
JavaScript

// get/post via jQuery
(function($) {
$.extend({
ure_getGo: function(url, params) {
document.location = url + '?' + $.param(params);
},
ure_postGo: function(url, params) {
var $form = $("<form>")
.attr("method", "post")
.attr("action", url);
$.each(params, function(name, value) {
$("<input type='hidden'>")
.attr("name", name)
.attr("value", value)
.appendTo($form);
});
$form.appendTo("body");
$form.submit();
}
});
})(jQuery);
jQuery(function() {
jQuery("#ure_select_all").button({
label: ure_data.select_all
}).click(function(event){
event.preventDefault();
ure_select_all(1);
});
if (typeof ure_current_role === 'undefined' || 'administrator' !== ure_current_role ) {
jQuery("#ure_unselect_all").button({
label: ure_data.unselect_all
}).click(function(event){
event.preventDefault();
ure_select_all(0);
});
jQuery("#ure_reverse_selection").button({
label: ure_data.reverse
}).click(function(event){
event.preventDefault();
ure_select_all(-1);
});
}
jQuery("#ure_update_role").button({
label: ure_data.update
}).click(function(){
if (!confirm(ure_data.confirm_submit)) {
return false;
}
jQuery('#ure_form').submit();
});
function ui_button_text(caption) {
var wrapper = '<span class="ui-button-text">'+ caption +'</span>';
return wrapper;
}
function ure_show_add_role_dialog() {
jQuery(function($) {
$info = $('#ure_add_role_dialog');
$info.dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 400,
height: 230,
resizable: false,
title: ure_data.add_new_role_title,
'buttons' : {
'Add Role': function () {
var role_id = $('#user_role_id').val();
if (role_id == '') {
alert( ure_data.role_name_required );
return false;
}
if (!(/^[\w-]*$/.test(role_id))) {
alert( ure_data.role_name_valid_chars );
return false;
}
if ((/^[0-9]*$/.test(role_id))) {
alert( ure_data.numeric_role_name_prohibited );
return false;
}
var role_name = $('#user_role_name').val();
var role_copy_from = $('#user_role_copy_from').val();
$(this).dialog('close');
$.ure_postGo( ure_data.page_url,
{ action: 'add-new-role', user_role_id: role_id, user_role_name: role_name, user_role_copy_from: role_copy_from,
ure_nonce: ure_data.wp_nonce} );
},
Cancel: function() {
$(this).dialog('close');
return false;
}
}
});
$('.ui-dialog-buttonpane button:contains("Add Role")').attr("id", "dialog-add-role-button");
$('#dialog-add-role-button').html(ui_button_text(ure_data.add_role));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "add-role-dialog-cancel-button");
$('#add-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
});
}
jQuery("#ure_add_role").button({
label: ure_data.add_role
}).click(function(event) {
event.preventDefault();
ure_show_add_role_dialog();
});
function ure_show_rename_role_dialog() {
jQuery(function($) {
$('#ure_rename_role_dialog').dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 400,
height: 230,
resizable: false,
title: ure_data.rename_role_title,
'buttons' : {
'Rename Role': function () {
var role_id = $('#ren_user_role_id').val();
var role_name = $('#ren_user_role_name').val();
$(this).dialog('close');
$.ure_postGo( ure_data.page_url,
{ action: 'rename-role', user_role_id: role_id, user_role_name: role_name, ure_nonce: ure_data.wp_nonce}
);
},
Cancel: function() {
$(this).dialog('close');
return false;
}
}
});
$('.ui-dialog-buttonpane button:contains("Rename Role")').attr("id", "dialog-rename-role-button");
$('#dialog-rename-role-button').html(ui_button_text(ure_data.rename_role));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "rename-role-dialog-cancel-button");
$('#rename-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
$('#ren_user_role_id').val(ure_current_role);
$('#ren_user_role_name').val(ure_current_role_name);
});
}
jQuery("#ure_rename_role").button({
label: ure_data.rename_role
}).click(function(event) {
event.preventDefault();
ure_show_rename_role_dialog();
});
jQuery("#ure_delete_role").button({
label: ure_data.delete_role
}).click(function(event){
event.preventDefault();
jQuery(function($) {
$('#ure_delete_role_dialog').dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 320,
height: 190,
resizable: false,
title: ure_data.delete_role,
buttons: {
'Delete Role': function() {
var user_role_id = $('#del_user_role').val();
if (!confirm(ure_data.delete_role)) {
return false;
}
$(this).dialog('close');
$.ure_postGo(ure_data.page_url,
{action: 'delete-role', user_role_id: user_role_id, ure_nonce: ure_data.wp_nonce});
},
Cancel: function() {
$(this).dialog('close');
}
}
});
// translate buttons caption
$('.ui-dialog-buttonpane button:contains("Delete Role")').attr("id", "dialog-delete-button");
$('#dialog-delete-button').html(ui_button_text(ure_data.delete_role));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "delete-role-dialog-cancel-button");
$('#delete-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
});
});
jQuery("#ure_add_capability").button({
label: ure_data.add_capability
}).click(function(event){
event.preventDefault();
jQuery(function($) {
$info = $('#ure_add_capability_dialog');
$info.dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 350,
height: 190,
resizable: false,
title: ure_data.add_capability,
'buttons' : {
'Add Capability': function () {
var capability_id = $('#capability_id').val();
if (capability_id == '') {
alert( ure_data.capability_name_required );
return false;
}
if (!(/^[\w-]*$/.test(capability_id))) {
alert( ure_data.capability_name_valid_chars );
return false;
}
$(this).dialog('close');
$.ure_postGo( ure_data.page_url,
{ action: 'add-new-capability', capability_id: capability_id, ure_nonce: ure_data.wp_nonce} );
},
Cancel: function() {
$(this).dialog('close');
}
}
});
$('.ui-dialog-buttonpane button:contains("Add Capability")').attr("id", "dialog-add-capability-button");
$('#dialog-add-capability-button').html(ui_button_text(ure_data.add_capability));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "add-capability-dialog-cancel-button");
$('#add-capability-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
});
});
jQuery("#ure_delete_capability").button({
label: ure_data.delete_capability
}).click(function(event){
event.preventDefault();
jQuery(function($) {
$('#ure_delete_capability_dialog').dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 320,
height: 190,
resizable: false,
title: ure_data.delete_capability,
buttons: {
'Delete Capability': function() {
if (!confirm(ure_data.delete_capability +' - '+ ure_data.delete_capability_warning)) {
return;
}
$(this).dialog('close');
var user_capability_id = $('#remove_user_capability').val();
$.ure_postGo(ure_data.page_url,
{action: 'delete-user-capability', user_capability_id: user_capability_id, ure_nonce: ure_data.wp_nonce});
},
Cancel: function() {
$(this).dialog('close');
}
}
});
// translate buttons caption
$('.ui-dialog-buttonpane button:contains("Delete Capability")').attr("id", "dialog-delete-capability-button");
$('#dialog-delete-capability-button').html(ui_button_text(ure_data.delete_capability));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "delete-capability-dialog-cancel-button");
$('#delete-capability-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
});
});
jQuery("#ure_default_role").button({
label: ure_data.default_role
}).click(function(event){
event.preventDefault();
jQuery(function($) {
$('#ure_default_role_dialog').dialog({
dialogClass: 'wp-dialog',
modal: true,
autoOpen: true,
closeOnEscape: true,
width: 320,
height: 190,
resizable: false,
title: ure_data.default_role,
buttons: {
'Set New Default Role': function() {
$(this).dialog('close');
var user_role_id = $('#default_user_role').val();
$.ure_postGo(ure_data.page_url,
{action: 'change-default-role', user_role_id: user_role_id, ure_nonce: ure_data.wp_nonce});
},
Cancel: function() {
$(this).dialog('close');
}
}
});
// translate buttons caption
$('.ui-dialog-buttonpane button:contains("Set New Default Role")').attr("id", "dialog-default-role-button");
$('#dialog-default-role-button').html(ui_button_text(ure_data.set_new_default_role));
$('.ui-dialog-buttonpane button:contains("Cancel")').attr("id", "default-role-dialog-cancel-button");
$('#default-role-dialog-cancel-button').html(ui_button_text(ure_data.cancel));
});
});
jQuery("#ure_reset_roles").button({
label: ure_data.reset
}).click(function(){
event.preventDefault();
if (!confirm( ure_data.reset_warning )) {
return false;
}
jQuery.ure_postGo(ure_data.page_url, {action: 'reset', ure_nonce: ure_data.wp_nonce});
});
});
// change color of apply to all check box - for multi-site setup only
function ure_applyToAllOnClick(cb) {
el = document.getElementById('ure_apply_to_all_div');
if (cb.checked) {
el.style.color = '#FF0000';
} else {
el.style.color = '#000000';
}
}
// end of ure_applyToAllOnClick()
// turn on checkbox back if clicked to turn off
function turn_it_back(control) {
control.checked = true;
}
// end of turn_it_back()
/**
* Manipulate mass capability checkboxes selection
* @param {bool} selected
* @returns {none}
*/
function ure_select_all(selected) {
var qfilter = jQuery('#quick_filter').val();
var form = document.getElementById('ure_form');
for (i = 0; i < form.elements.length; i++) {
el = form.elements[i];
if (el.type !== 'checkbox') {
continue;
}
if (el.name === 'ure_caps_readable' || el.name === 'ure_show_deprecated_caps' ||
el.name === 'ure_apply_to_all' || el.disabled ||
el.name.substr(0, 8) === 'wp_role_') {
continue;
}
if (qfilter!=='' && !form.elements[i].parentNode.ure_tag) {
continue;
}
if (selected >= 0) {
form.elements[i].checked = selected;
} else {
form.elements[i].checked = !form.elements[i].checked;
}
}
}
// end of ure_select_all()
function ure_turn_caps_readable(user_id) {
if (user_id === 0) {
var ure_object = 'role';
} else {
var ure_object = 'user';
}
jQuery.ure_postGo(ure_data.page_url, {action: 'caps-readable', object: ure_object, user_id: user_id, ure_nonce: ure_data.wp_nonce});
}
// end of ure_turn_caps_readable()
function ure_turn_deprecated_caps(user_id) {
var ure_object = '';
if (user_id === 0) {
ure_object = 'role';
} else {
ure_object = 'user';
}
jQuery.ure_postGo(ure_data.page_url, {action: 'show-deprecated-caps', object: ure_object, user_id: user_id, ure_nonce: ure_data.wp_nonce});
}
// ure_turn_deprecated_caps()
function ure_role_change(role_name) {
jQuery.ure_postGo(ure_data.page_url, {action: 'role-change', object: 'role', user_role: role_name, ure_nonce: ure_data.wp_nonce});
}
// end of ure_role_change()
function ure_filter_capabilities(cap_id) {
var div_list = jQuery("div[id^='ure_div_cap_']");
for (i=0; i<div_list.length; i++) {
if (cap_id!=='' && div_list[i].id.substr(11).indexOf(cap_id)!==-1) {
div_list[i].ure_tag = true;
div_list[i].style.color = '#27CF27';
} else {
div_list[i].style.color = '#000000';
div_list[i].ure_tag = false;
}
};
}
// end of ure_filter_capabilities()
function ure_hide_pro_banner() {
jQuery.ure_postGo(ure_data.page_url, {action: 'hide-pro-banner', ure_nonce: ure_data.wp_nonce});
}
// end of ure_hide_this_banner()