dev/core#1757 - CRM Menubar - hide toggle menu button for non admin users
[civicrm-core.git] / js / crm.drupal7.js
CommitLineData
8f939417
RO
1(function($) {
2 var menuReadyEvents = {
3 adminMenu: $.Deferred(),
4 crmMenu: $.Deferred()
5 };
6
7 $.when(menuReadyEvents.adminMenu, menuReadyEvents.crmMenu)
8 .done(hideMenuToggleButtonForNonAdminUsers);
9 $(document).ready(menuReadyEvents.adminMenu.resolve);
10 $(document).on('crmLoad', '#civicrm-menu', menuReadyEvents.crmMenu.resolve);
11
12 /**
13 * Hides the Menu Toggle Button when the Admin Menu is not available for the user.
14 * It also positions the CiviCRM Menu in the right position in case it was displayed
15 * under where the Admin Menu would have been. This avoids displaying an empty gap.
16 */
17 function hideMenuToggleButtonForNonAdminUsers() {
18 var $adminToolbar = $('#toolbar');
19 var $menuToggleButton = $('#crm-menubar-toggle-position');
20 var hasAdminToolbar = $adminToolbar.length > 0;
21
22 if (hasAdminToolbar) {
23 return;
24 }
25
26 $menuToggleButton.hide();
27
28 if (CRM.menubar.position === 'below-cms-menu') {
29 CRM.menubar.togglePosition();
30 }
31 }
32})(CRM.$);