admin_menu_toolbar.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. (function($) {
  2. Drupal.admin = Drupal.admin || {};
  3. Drupal.admin.behaviors = Drupal.admin.behaviors || {};
  4. /**
  5. * @ingroup admin_behaviors
  6. * @{
  7. */
  8. /**
  9. * Apply active trail highlighting based on current path.
  10. *
  11. * @todo Not limited to toolbar; move into core?
  12. */
  13. Drupal.admin.behaviors.toolbarActiveTrail = function (context, settings, $adminMenu) {
  14. if (settings.admin_menu.toolbar && settings.admin_menu.toolbar.activeTrail) {
  15. $adminMenu.find('> div > ul > li > a[href="' + settings.admin_menu.toolbar.activeTrail + '"]').addClass('active-trail');
  16. }
  17. };
  18. /**
  19. * Toggles the shortcuts bar.
  20. */
  21. Drupal.admin.behaviors.shortcutToggle = function (context, settings, $adminMenu) {
  22. var $shortcuts = $adminMenu.find('.shortcut-toolbar');
  23. if (!$shortcuts.length) {
  24. return;
  25. }
  26. var storage = window.localStorage || false;
  27. var storageKey = 'Drupal.admin_menu.shortcut';
  28. var $body = $(context).find('body');
  29. var $toggle = $adminMenu.find('.shortcut-toggle');
  30. $toggle.click(function () {
  31. var enable = !$shortcuts.hasClass('active');
  32. $shortcuts.toggleClass('active', enable);
  33. $toggle.toggleClass('active', enable);
  34. if (settings.admin_menu.margin_top) {
  35. $body.toggleClass('admin-menu-with-shortcuts', enable);
  36. }
  37. // Persist toggle state across requests.
  38. storage && enable ? storage.setItem(storageKey, 1) : storage.removeItem(storageKey);
  39. this.blur();
  40. return false;
  41. });
  42. if (!storage || storage.getItem(storageKey)) {
  43. $toggle.trigger('click');
  44. }
  45. };
  46. /**
  47. * @} End of "ingroup admin_behaviors".
  48. */
  49. })(jQuery);