Index: admin_menu.css
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.css,v
retrieving revision 1.36
diff -u -p -r1.36 admin_menu.css
--- admin_menu.css 19 Feb 2010 23:19:00 -0000 1.36
+++ admin_menu.css 20 Feb 2010 00:53:06 -0000
@@ -197,3 +197,14 @@ html.js fieldset.collapsible div.fieldse
margin-top: 0 !important;
}
}
+
+/**
+ * Tweaks permissions, if enabled.
+ */
+tr.admin-menu-tweak-permissions-processed {
+ cursor: pointer;
+ cursor: hand;
+}
+tr.admin-menu-tweak-permissions-processed td.module {
+ border-top: 0;
+}
Index: admin_menu.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.inc,v
retrieving revision 1.73
diff -u -p -r1.73 admin_menu.inc
--- admin_menu.inc 19 Feb 2010 20:42:10 -0000 1.73
+++ admin_menu.inc 20 Feb 2010 00:53:13 -0000
@@ -247,6 +247,12 @@ function admin_menu_theme_settings() {
if (module_exists('util')) {
$form['tweaks']['admin_menu_tweak_modules']['#description'] .= '
' . t('If the Utility module was installed for this purpose, it can be safely disabled and uninstalled.') . '';
}
+ $form['tweaks']['admin_menu_tweak_permissions'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Collapse modules on permissions page'),
+ '#default_value' => 0,
+ '#description' => t('Collapses permissions by module on the permissions page.', array('@permissions-url' => url('admin/people/permissions'))),
+ );
$form['tweaks']['admin_menu_tweak_tabs'] = array(
'#type' => 'checkbox',
'#title' => t('Move local tasks into menu'),
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.29
diff -u -p -r1.29 admin_menu.js
--- admin_menu.js 20 Feb 2010 00:52:15 -0000 1.29
+++ admin_menu.js 20 Feb 2010 00:57:47 -0000
@@ -19,6 +19,7 @@ Drupal.behaviors.adminMenu = {
margin_top: false,
position_fixed: false,
tweak_modules: false,
+ tweak_permissions: false,
tweak_tabs: false,
destination: '',
basePath: settings.basePath,
@@ -62,6 +63,32 @@ Drupal.behaviors.adminMenuCollapseModule
};
/**
+ * Collapse modules on Permissions page.
+ */
+Drupal.behaviors.adminMenuCollapsePermissions = {
+ attach: function (context, settings) {
+ if (settings.admin_menu.tweak_permissions) {
+ // Freeze width of first column to prevent jumping.
+ $('#permissions th:first', context).css({ width: $('#permissions th:first', context).width() });
+ // Attach click handler.
+ $('#permissions tr:has(td.module)', context).once('admin-menu-tweak-permissions', function () {
+ var $module = $(this);
+ $module.bind('click.admin-menu', function () {
+ // @todo Replace with .nextUntil() in jQuery 1.4.
+ $module.nextAll().each(function () {
+ var $row = $(this);
+ if ($row.is(':has(td.module)')) {
+ return false;
+ }
+ $row.toggleClass('element-hidden');
+ });
+ });
+ }).trigger('click.admin-menu');
+ }
+ }
+};
+
+/**
* Apply margin to page.
*
* Note that directly applying marginTop does not work in IE. To prevent
Index: admin_menu.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/admin_menu/admin_menu.module,v
retrieving revision 1.110
diff -u -p -r1.110 admin_menu.module
--- admin_menu.module 19 Feb 2010 23:19:00 -0000 1.110
+++ admin_menu.module 20 Feb 2010 00:52:45 -0000
@@ -170,6 +170,9 @@ function admin_menu_init() {
if ($_GET['q'] == 'admin/modules' || strpos($_GET['q'], 'admin/modules/list') === 0) {
$settings['tweak_modules'] = variable_get('admin_menu_tweak_modules', 0);
}
+ if ($_GET['q'] == 'admin/people/permissions' || $_GET['q'] == 'admin/people/permissions/list') {
+ $settings['tweak_permissions'] = variable_get('admin_menu_tweak_permissions', 0);
+ }
drupal_add_js(array('admin_menu' => $settings), 'setting');
}