From 03c752c4db13a33349102d7c39266810d13baee3 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 29 Jan 2014 17:02:41 -0800 Subject: [PATCH] CRM-10760 - Autocomplte - Simplify single contact check --- CRM/Contact/Page/AJAX.php | 22 ---------------------- CRM/Core/xml/Menu/Contact.xml | 5 ----- templates/CRM/common/Navigation.tpl | 25 ++++++------------------- 3 files changed, 6 insertions(+), 46 deletions(-) diff --git a/CRM/Contact/Page/AJAX.php b/CRM/Contact/Page/AJAX.php index 04730ae2ba..f41d364174 100644 --- a/CRM/Contact/Page/AJAX.php +++ b/CRM/Contact/Page/AJAX.php @@ -537,28 +537,6 @@ ORDER BY sort_name "; CRM_Utils_System::civiExit(); } - /** - * - * Function to check how many contact exits in db for given criteria, - * if one then return contact id else null - */ - static function contact() { - $name = CRM_Utils_Type::escape($_GET['name'], 'String'); - - $query = " -SELECT id -FROM civicrm_contact -WHERE sort_name LIKE '%$name%'"; - - $dao = CRM_Core_DAO::executeQuery($query); - $dao->fetch(); - - if ($dao->N == 1) { - echo $dao->id; - } - CRM_Utils_System::civiExit(); - } - /** * Function to delete custom value * diff --git a/CRM/Core/xml/Menu/Contact.xml b/CRM/Core/xml/Menu/Contact.xml index 6e965b272f..b1eeafd832 100644 --- a/CRM/Core/xml/Menu/Contact.xml +++ b/CRM/Core/xml/Menu/Contact.xml @@ -270,11 +270,6 @@ CRM_Contact_Page_AJAX::groupTree access CiviCRM - - civicrm/ajax/contact - CRM_Contact_Page_AJAX::contact - access CiviCRM - civicrm/ajax/custom CRM_Contact_Page_AJAX::customField diff --git a/templates/CRM/common/Navigation.tpl b/templates/CRM/common/Navigation.tpl index 4a1477148e..4ed222dcfb 100644 --- a/templates/CRM/common/Navigation.tpl +++ b/templates/CRM/common/Navigation.tpl @@ -142,26 +142,13 @@ $('#civicrm-menu').ready(function() { } $('#sort_name_navigation').attr({name: value, placeholder: label}).focus(); }); - // check if there is only one contact and redirect to view page + // redirect to view page if there is only one contact $('#id_search_block').on('submit', function() { - var contactId, sortValue = $('#sort_name_navigation').val(); - if (sortValue && $('#sort_name_navigation').attr('name') == 'sort_name') { - {/literal}{* - // FIXME: async:false == bad, - // we should just check the autocomplete results instead of firing a new request - // when we fix this, the civicrm/ajax/contact server-side callback can be removed as well - // also that would fix the fact that this only works with sort_name search - // (and we can remove the above conditional) - *}{literal} - var dataUrl = {/literal}"{crmURL p='civicrm/ajax/contact' h=0 q='name='}"{literal} + sortValue; - contactId = $.ajax({ - url: dataUrl, - async: false - }).responseText; - } - if (contactId && !isNaN(parseInt(contactId))) { - var url = {/literal}"{crmURL p='civicrm/contact/view' h=0 q='reset=1&cid='}"{literal} + contactId; - this.action = url; + var $menu = $('#sort_name_navigation').crmAutocomplete('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; } }); }); -- 2.25.1