X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=templates%2FCRM%2Fcommon%2Fnavigation.js.tpl;h=87a0a23a0e87b6f6e2d76c26a7714a0a257956f4;hb=4e1046dfa7d7b0eb2710444886d47cc068046b9f;hp=fdce48e01b2dde0085a1239039802a17a3065e1e;hpb=c4b857d6672d2db5b50fafd0152a09e294512463;p=civicrm-core.git diff --git a/templates/CRM/common/navigation.js.tpl b/templates/CRM/common/navigation.js.tpl index fdce48e01b..87a0a23a0e 100644 --- a/templates/CRM/common/navigation.js.tpl +++ b/templates/CRM/common/navigation.js.tpl @@ -103,10 +103,14 @@ $('#civicrm-menu').ready(function() { }; CRM.api3('contact', 'getquick', params).done(function(result) { var ret = []; - if (result.values) { + if (result.values.length > 0) { + $('#sort_name_navigation').autocomplete('widget').menu('option', 'disabled', false); $.each(result.values, function(k, v) { ret.push({value: v.id, label: v.data}); - }) + }); + } else { + $('#sort_name_navigation').autocomplete('widget').menu('option', 'disabled', true); + ret.push({value: '0', label: {/literal}'{ts escape='js'}None found.{/ts}'{literal}}); } response(ret); }) @@ -115,18 +119,23 @@ $('#civicrm-menu').ready(function() { return false; }, select: function (event, ui) { - document.location = CRM.url('civicrm/contact/view', {reset: 1, cid: ui.item.value}); + if (ui.item.value > 0) { + document.location = CRM.url('civicrm/contact/view', {reset: 1, cid: ui.item.value}); + } return false; }, create: function() { // Place menu in front - $(this).autocomplete('widget').css('z-index', $('#civicrm-menu').css('z-index')); + $(this).autocomplete('widget') + .addClass('crm-quickSearch-results') + .css('z-index', $('#civicrm-menu').css('z-index')); } }) .keydown(function() { $.Menu.closeAll(); }) .on('focus', function() { + setQuickSearchValue(); if ($(this).attr('style').indexOf('14em') < 0) { $(this).animate({width: '14em'}); } @@ -153,22 +162,38 @@ $('#civicrm-menu').ready(function() { } e.preventDefault(); }); - $('.crm-quickSearchField').click(function() { - var label = $(this).text(); - var value = $('input', this).val(); + function setQuickSearchValue() { + var $selection = $('.crm-quickSearchField input:checked'), + label = $selection.parent().text(), + value = $selection.val(); // These fields are not supported by advanced search - if (value === 'first_name' || value === 'last_name') { + if (!value || value === 'first_name' || value === 'last_name') { value = 'sort_name'; } - $('#sort_name_navigation').attr({name: value, placeholder: label}).focus(); + $('#sort_name_navigation').attr({name: value, placeholder: label}); + } + $('.crm-quickSearchField').click(function() { + setQuickSearchValue(); + $('#sort_name_navigation').focus(); }); + // Set & retrieve default value + if (window.localStorage) { + $('.crm-quickSearchField').click(function() { + localStorage.quickSearchField = $('input', this).val(); + }); + if (localStorage.quickSearchField) { + $('.crm-quickSearchField input[value=' + localStorage.quickSearchField + ']').prop('checked', true); + } + } // redirect to view page if there is only one contact $('#id_search_block').on('submit', function() { var $menu = $('#sort_name_navigation').autocomplete('widget'); if ($('li.ui-menu-item', $menu).length === 1) { var cid = $('li.ui-menu-item', $menu).data('ui-autocomplete-item').value; - document.location = CRM.url('civicrm/contact/view', {reset: 1, cid: cid}); - return false; + if (cid > 0) { + document.location = CRM.url('civicrm/contact/view', {reset: 1, cid: cid}); + return false; + } } }); // Close menu after selecting an item