annotate modules/admin_menu/admin_menu.admin.js @ 13:134d4b2e75f6

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