Bachir Soussi Chiadmi 1bc61b12ad first import
2015-04-08 11:40:19 +02:00

65 lines
2.3 KiB
JavaScript

(function($) {
Drupal.behaviors.adminToolbarMenu = {};
Drupal.behaviors.adminToolbarMenu.attach = function(context) {
if (jQuery().drilldown) {
$('#admin-toolbar div.admin-block:has(ul.menu):not(.admin-toolbar-menu)')
.addClass('admin-toolbar-menu')
.each(function() {
var menu = $(this);
var trail = '#admin-toolbar div.admin-tab.' + $(this).attr('id').split('block-')[1] + ' span';
var rootTitle = $(trail).text();
if ($('a:has(span.menu-description)', menu).size() > 0) {
menu.addClass('admin-toolbar-menu-hover');
$('a:has(span.menu-description)', menu).hover(
function() {
$('<a></a>')
.attr('class', $(this).attr('class'))
.addClass('menu-hover')
.addClass('overlay-exclude')
.append($('span.menu-description', this).clone())
.appendTo(menu)
.show();
},
function() {
$(menu)
.children('a.menu-hover')
.remove();
}
);
}
// Replace the standard trail click handler with one that only
// adjusts menu if the admin tab is active. Otherwise, switch
// to that admin tab.
menu.bind('refresh.drilldown', function() {
$(trail + ' a').unbind('click').click(function() {
if ($(this).parents('div.admin-tab').is('.admin-tab-active')) {
var settings = {'activeLink': $(this).data('original'), 'trail': trail};
// If the clicked link does not reference the current
// active menu, set it to be active.
if (settings.activeLink.siblings('ul.drilldown-active-menu').size() === 0) {
menu.drilldown('setActive', settings);
return false;
}
// Otherwise, pass-through and allow the link to be clicked.
return menu.drilldown('goTo', settings);
}
$(this).parents('div.admin-tab').click();
return false;
});
});
// Init drilldown plugin.
menu.drilldown('init', {
activePath: Drupal.settings.activePath,
trail: trail,
rootTitle: rootTitle
});
});
}
};
})(jQuery);