Index: admin_menu_toolbar/admin_menu_toolbar.css =================================================================== RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.css,v retrieving revision 1.7 diff -u -r1.7 admin_menu_toolbar.css --- admin_menu_toolbar/admin_menu_toolbar.css 30 Jan 2011 03:40:54 -0000 1.7 +++ admin_menu_toolbar/admin_menu_toolbar.css 21 Feb 2011 08:48:26 -0000 @@ -150,7 +150,12 @@ #admin-menu li.admin-menu-shortcuts ul li a:hover { background: #555; } -#admin-menu li.admin-menu-shortcuts ul li a.active:hover, -#admin-menu li.admin-menu-shortcuts ul li a.active { - background: url(toolbar.png) 0 -20px repeat-x; +#admin-menu li#edit-shortcuts { + float: right; +} +#admin-menu li#edit-shortcuts a { + text-decoration: underline; +} +#admin-menu li#edit-shortcuts a:hover { + background: #666; } Index: admin_menu_toolbar/admin_menu_toolbar.js =================================================================== RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.js,v retrieving revision 1.3 diff -u -r1.3 admin_menu_toolbar.js --- admin_menu_toolbar/admin_menu_toolbar.js 19 Feb 2010 23:19:00 -0000 1.3 +++ admin_menu_toolbar/admin_menu_toolbar.js 21 Feb 2011 08:48:26 -0000 @@ -20,6 +20,22 @@ } }; +Drupal.admin.behaviors.click = function (context, settings, $adminMenu) { + $('li.admin-menu-shortcuts', $adminMenu).click( + function () { + var drawer = $('li.admin-menu-shortcuts > ul'); + if ( drawer.hasClass('opened') ) { + drawer.removeClass('opened'); + drawer.css({left: '-999em', display: 'none'}); + } + else { + drawer.addClass('opened'); + drawer.css({left: 'auto', display: 'block'}); + } + } + ); +} + /** * @} End of "defgroup admin_behaviors". */ Index: admin_menu_toolbar/admin_menu_toolbar.module =================================================================== RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.module,v retrieving revision 1.4 diff -u -r1.4 admin_menu_toolbar.module --- admin_menu_toolbar/admin_menu_toolbar.module 19 Feb 2010 23:19:00 -0000 1.4 +++ admin_menu_toolbar/admin_menu_toolbar.module 21 Feb 2011 08:48:26 -0000 @@ -13,7 +13,7 @@ * * @todo Add another admin_menu hook to avoid cluttering hook_init(). */ -function admin_menu_toolbar_init() { +function admin_menu_toolbar_init() { if (!user_access('access administration menu') || admin_menu_suppress(FALSE)) { return; } @@ -37,6 +37,10 @@ $settings['activeTrail'] = url(''); } drupal_add_js(array('admin_menu' => array('toolbar' => $settings)), 'setting'); + + // This is here so that the shortcut toolbar links are refreshed when the shortcut set is changed + // @todo flush cache whenever the default (or any?) shortcut set is changed instead of every time as below + admin_menu_flush_caches(); } /** @@ -62,6 +66,7 @@ '#theme' => 'admin_menu_links', '#weight' => -200, ); + $content['shortcuts']['shortcuts'] = array( '#title' => t('Show shortcuts'), // @todo How do we want to trigger/store state? @@ -71,15 +76,32 @@ 'attributes' => array('class' => 'toggle'), ), ); - // @todo *Move* this from $content['menu'] instead. - $content['shortcuts']['shortcuts']['node-add'] = array( - '#title' => t('Add content'), - '#href' => 'node/add', - ); - $content['shortcuts']['shortcuts']['admin-content-node'] = array( - '#title' => t('Find content'), - '#href' => 'admin/content/node', - '#access' => user_access('administer nodes'), - ); + + if( module_exists('shortcut')) { + $shortcut_set = shortcut_current_displayed_set(); + $content['shortcuts']['shortcuts']['edit-shortcuts'] = array( + '#title' => t('Edit Shortcuts'), + '#href' => 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name, + '#attributes' => array('id' => 'edit-shortcuts'), + ); + foreach ($shortcut_set->links as $index => $link) { + $content['shortcuts']['shortcuts'][$link['link_path']] = array( + '#title' => $link['link_title'], + '#href' => $link['link_path'], + '#access' => TRUE, + ); + } + } + else { + // @todo *Move* this from $content['menu'] instead. + $content['shortcuts']['shortcuts']['node-add'] = array( + '#title' => t('Add content'), + '#href' => 'node/add', + ); + $content['shortcuts']['shortcuts']['admin-content-node'] = array( + '#title' => t('Find content'), + '#href' => 'admin/content/node', + '#access' => user_access('administer nodes'), + ); + } } - Index: admin_menu.js =================================================================== RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu.js,v retrieving revision 1.32 diff -u -r1.32 admin_menu.js --- admin_menu.js 20 Feb 2010 23:44:00 -0000 1.32 +++ admin_menu.js 21 Feb 2011 08:48:25 -0000 @@ -215,12 +215,14 @@ .css({left: 'auto', display: 'block'}) // Immediately hide nephew lists. .parent().siblings('li').children('ul').css({left: '-999em', display: 'none'}); + Drupal.admin.openDrawer($adminMenu); }, function () { // Start the timer. var uls = $('> ul', this); this.sfTimer = setTimeout(function () { uls.css({left: '-999em', display: 'none'}); + Drupal.admin.openDrawer($adminMenu); }, 400); } ); @@ -229,5 +231,12 @@ /** * @} End of "defgroup admin_behaviors". */ + +Drupal.admin.openDrawer = function($adminMenu) { + var drawer = $('li.admin-menu-shortcuts > ul', $adminMenu); + if ( drawer.hasClass('opened') ) { + drawer.css({left: 'auto', display: 'block'}); + } +} })(jQuery);