annotate sites/all/modules/admin_menu/admin_menu.admin.js @ 11:b0ee71395280

deleted .DS_Store files
author danieleb <danielebarchiesi@me.com>
date Mon, 28 Oct 2013 16:12:13 +0000
parents ce11bbd8f642
children
rev   line source
danielebarchiesi@4 1 (function($) {
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * Live preview of Administration menu components.
danielebarchiesi@4 5 */
danielebarchiesi@4 6 Drupal.behaviors.adminMenuLivePreview = {
danielebarchiesi@4 7 attach: function (context, settings) {
danielebarchiesi@4 8 $('input[name^="admin_menu_components"]', context).once('admin-menu-live-preview')
danielebarchiesi@4 9 .change(function () {
danielebarchiesi@4 10 var target = $(this).attr('rel');
danielebarchiesi@4 11 $(target).toggle(this.checked);
danielebarchiesi@4 12 })
danielebarchiesi@4 13 .trigger('change');
danielebarchiesi@4 14 }
danielebarchiesi@4 15 };
danielebarchiesi@4 16
danielebarchiesi@4 17 /**
danielebarchiesi@4 18 * Automatically enables required permissions on demand.
danielebarchiesi@4 19 *
danielebarchiesi@4 20 * Many users do not understand that two permissions are required for the
danielebarchiesi@4 21 * administration menu to appear. Since Drupal core provides no facility for
danielebarchiesi@4 22 * this, we implement a simple manual confirmation for automatically enabling
danielebarchiesi@4 23 * the "other" permission.
danielebarchiesi@4 24 */
danielebarchiesi@4 25 Drupal.behaviors.adminMenuPermissionsSetupHelp = {
danielebarchiesi@4 26 attach: function (context, settings) {
danielebarchiesi@4 27 $('#permissions', context).once('admin-menu-permissions-setup', function () {
danielebarchiesi@4 28 // Retrieve matrix/mapping - these need to use the same indexes for the
danielebarchiesi@4 29 // same permissions and roles.
danielebarchiesi@4 30 var $roles = $(this).find('th:not(:first)');
danielebarchiesi@4 31 var $admin = $(this).find('input[name$="[access administration pages]"]');
danielebarchiesi@4 32 var $menu = $(this).find('input[name$="[access administration menu]"]');
danielebarchiesi@4 33
danielebarchiesi@4 34 // Retrieve the permission label - without description.
danielebarchiesi@4 35 var adminPermission = $.trim($admin.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
danielebarchiesi@4 36 var menuPermission = $.trim($menu.eq(0).parents('td').prev().children().get(0).firstChild.textContent);
danielebarchiesi@4 37
danielebarchiesi@4 38 $admin.each(function (index) {
danielebarchiesi@4 39 // Only proceed if both are not enabled already.
danielebarchiesi@4 40 if (!(this.checked && $menu[index].checked)) {
danielebarchiesi@4 41 // Stack both checkboxes and attach a click event handler to both.
danielebarchiesi@4 42 $(this).add($menu[index]).click(function () {
danielebarchiesi@4 43 // Do nothing when disabling a permission.
danielebarchiesi@4 44 if (this.checked) {
danielebarchiesi@4 45 // Figure out which is the other, check whether it still disabled,
danielebarchiesi@4 46 // and if so, ask whether to auto-enable it.
danielebarchiesi@4 47 var other = (this == $admin[index] ? $menu[index] : $admin[index]);
danielebarchiesi@4 48 if (!other.checked && confirm(Drupal.t('Also allow !name role to !permission?', {
danielebarchiesi@4 49 '!name': $roles[index].textContent,
danielebarchiesi@4 50 '!permission': (this == $admin[index] ? menuPermission : adminPermission)
danielebarchiesi@4 51 }))) {
danielebarchiesi@4 52 other.checked = 'checked';
danielebarchiesi@4 53 }
danielebarchiesi@4 54 }
danielebarchiesi@4 55 });
danielebarchiesi@4 56 }
danielebarchiesi@4 57 });
danielebarchiesi@4 58 });
danielebarchiesi@4 59 }
danielebarchiesi@4 60 };
danielebarchiesi@4 61
danielebarchiesi@4 62 })(jQuery);