first import
This commit is contained in:
62
sites/all/modules/admin_menu/admin_menu.admin.js
Normal file
62
sites/all/modules/admin_menu/admin_menu.admin.js
Normal file
@@ -0,0 +1,62 @@
|
||||
(function($) {
|
||||
|
||||
/**
|
||||
* Live preview of Administration menu components.
|
||||
*/
|
||||
Drupal.behaviors.adminMenuLivePreview = {
|
||||
attach: function (context, settings) {
|
||||
$('input[name^="admin_menu_components"]', context).once('admin-menu-live-preview')
|
||||
.change(function () {
|
||||
var target = $(this).attr('rel');
|
||||
$(target).toggle(this.checked);
|
||||
})
|
||||
.trigger('change');
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Automatically enables required permissions on demand.
|
||||
*
|
||||
* Many users do not understand that two permissions are required for the
|
||||
* administration menu to appear. Since Drupal core provides no facility for
|
||||
* this, we implement a simple manual confirmation for automatically enabling
|
||||
* the "other" permission.
|
||||
*/
|
||||
Drupal.behaviors.adminMenuPermissionsSetupHelp = {
|
||||
attach: function (context, settings) {
|
||||
$('#permissions', context).once('admin-menu-permissions-setup', function () {
|
||||
// Retrieve matrix/mapping - these need to use the same indexes for the
|
||||
// same permissions and roles.
|
||||
var $roles = $(this).find('th:not(:first)');
|
||||
var $admin = $(this).find('input[name$="[access administration pages]"]');
|
||||
var $menu = $(this).find('input[name$="[access administration menu]"]');
|
||||
|
||||
// Retrieve the permission label - without description.
|
||||
var adminPermission = $.trim($admin.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
|
||||
var menuPermission = $.trim($menu.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
|
||||
|
||||
$admin.each(function (index) {
|
||||
// Only proceed if both are not enabled already.
|
||||
if (!(this.checked && $menu[index].checked)) {
|
||||
// Stack both checkboxes and attach a click event handler to both.
|
||||
$(this).add($menu[index]).click(function () {
|
||||
// Do nothing when disabling a permission.
|
||||
if (this.checked) {
|
||||
// Figure out which is the other, check whether it still disabled,
|
||||
// and if so, ask whether to auto-enable it.
|
||||
var other = (this == $admin[index] ? $menu[index] : $admin[index]);
|
||||
if (!other.checked && confirm(Drupal.t('Also allow !name role to !permission?', {
|
||||
'!name': $roles[index].textContent,
|
||||
'!permission': (this == $admin[index] ? menuPermission : adminPermission)
|
||||
}))) {
|
||||
other.checked = 'checked';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user