X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=js%2Fcrm.menubar.js;h=eba37ed3c46d6c90b6281b3be088900ce874018a;hb=be40742b430244952b890a25371f243e558f4806;hp=ad91a49e1b8a458d877f3f5f1bcc46787f0eface;hpb=af121dc8af7a54c312787e52689ec983cf0f43f3;p=civicrm-core.git diff --git a/js/crm.menubar.js b/js/crm.menubar.js index ad91a49e1b..eba37ed3c4 100644 --- a/js/crm.menubar.js +++ b/js/crm.menubar.js @@ -78,12 +78,17 @@ }) .on('show.smapi', function(e, menu) { // Focus menu when opened with an accesskey - $(menu).siblings('a[accesskey]:not(:hover)').focus(); + if ($(menu).parent().data('name') === 'Home') { + $('#crm-menubar-drilldown').focus(); + } else { + $(menu).siblings('a[accesskey]').focus(); + } }) .smartmenus(CRM.menubar.settings); initialized = true; CRM.menubar.initializeResponsive(); CRM.menubar.initializeSearch(); + CRM.menubar.initializeDrill(); }); } }, @@ -144,6 +149,9 @@ getItem: function(itemName) { return traverse(CRM.menubar.data.menu, itemName, 'get'); }, + findItems: function(searchTerm) { + return findRecursive(CRM.menubar.data.menu, searchTerm.toLowerCase().replace(/ /g, '')); + }, addItems: function(position, targetName, items) { var list, container, $ul; if (position === 'before' || position === 'after') { @@ -244,7 +252,7 @@ } }) .on('resize', function() { - if ($(window).width() >= 768 && $mainMenuState[0].checked) { + if (!isMobile() && $mainMenuState[0].checked) { $mainMenuState[0].click(); } handleResize(); @@ -365,12 +373,25 @@ $('#crm-qsearch-input').focus().autocomplete("search"); }, 1); }); - $('.crm-quickSearchField input[value="' + CRM.cache.get('quickSearchField', 'sort_name') + '"]').prop('checked', true); + var savedDefault = CRM.cache.get('quickSearchField'); + if (savedDefault) { + $('.crm-quickSearchField input[value="' + savedDefault + '"]').prop('checked', true); + } else { + $('.crm-quickSearchField:first input').prop('checked', true); + } setQuickSearchValue(); $('#civicrm-menu').on('activate.smapi', function(e, item) { return !$('ul.crm-quickSearch-results').is(':visible:not(.ui-state-disabled)'); }); }, + initializeDrill: function() { + $('#civicrm-menu').on('keyup', '#crm-menubar-drilldown', function() { + var term = $(this).val(), + results = term ? CRM.menubar.findItems(term).slice(0, 20) : []; + $(this).parent().next('ul').html(getTpl('branch')({items: results, branchTpl: getTpl('branch'), drillTpl: _.noop})); + $('#civicrm-menu').smartmenus('refresh').smartmenus('itemActivate', $(this).closest('a')); + }); + }, treeTpl: '