(function($) {
Drupal.admin = Drupal.admin || {};
Drupal.admin.behaviors = Drupal.admin.behaviors || {};
/**
* @ingroup admin_behaviors
* @{
*/
/**
* Apply active trail highlighting based on current path.
*
* @todo Not limited to toolbar; move into core?
*/
Drupal.admin.behaviors.toolbarActiveTrail = function (context, settings, $adminMenu) {
if (settings.admin_menu.toolbar && settings.admin_menu.toolbar.activeTrail) {
$adminMenu.find('> div > ul > li > a[href="' + settings.admin_menu.toolbar.activeTrail + '"]').addClass('active-trail');
}
};
/**
* Toggles the shortcuts bar.
*/
Drupal.admin.behaviors.shortcutToggle = function (context, settings, $adminMenu) {
var $shortcuts = $adminMenu.find('.shortcut-toolbar');
if (!$shortcuts.length) {
return;
}
var storage = window.localStorage || false;
var storageKey = 'Drupal.admin_menu.shortcut';
var $body = $(context).find('body');
var $toggle = $adminMenu.find('.shortcut-toggle');
$toggle.click(function () {
var enable = !$shortcuts.hasClass('active');
$shortcuts.toggleClass('active', enable);
$toggle.toggleClass('active', enable);
if (settings.admin_menu.margin_top) {
$body.toggleClass('admin-menu-with-shortcuts', enable);
}
// Persist toggle state across requests.
storage && enable ? storage.setItem(storageKey, 1) : storage.removeItem(storageKey);
this.blur();
return false;
});
if (!storage || storage.getItem(storageKey)) {
$toggle.trigger('click');
}
};
/**
* @} End of "ingroup admin_behaviors".
*/
})(jQuery);