/** * Given a partial name search for all contacts regardless of contact state unless the current user has security * restrictions on some states. If the adapter resolver returns false, then the * user does not have access to the Leads or Contacts module. * JSON encode the resulting array of contacts. */ public function actionAutoCompleteAllContacts($term) { $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule())); $adapterName = ContactsUtil::resolveContactStateAdapterByModulesUserHasAccessTo('LeadsModule', 'ContactsModule', Yii::app()->user->userModel); if ($adapterName === false) { $messageView = new AccessFailureView(); $view = new AccessFailurePageView($messageView); echo $view->render(); Yii::app()->end(0, false); } $autoCompleteResults = ContactAutoCompleteUtil::getByPartialName($term, $pageSize, $adapterName); echo CJSON::encode($autoCompleteResults); }
/** * Override to always add contact state filter on search results. */ public function actionAutoComplete($term, $autoCompleteOptions = null) { $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule())); $autoCompleteResults = ContactAutoCompleteUtil::getByPartialName($term, $pageSize, 'ContactsStateMetadataAdapter', $autoCompleteOptions); echo CJSON::encode($autoCompleteResults); }
/** * @depends testGetCustomFieldDataByPartialName */ public function testGetByPartialName() { Yii::app()->user->userModel = User::getByUsername('super'); $userData = array('Billy', 'Jimmy', 'Sunny', 'Jinny', 'Johnny', 'Appay'); foreach ($userData as $firstName) { $user = UserTestHelper::createBasicUser($firstName); } $user = User::getByUsername('billy'); $contactData = array('Sam', 'Sally', 'Sarah', 'Jason', 'James', 'Roger'); $contactStates = ContactState::getAll(); foreach ($contactData as $firstName) { $contact = new Contact(); $contact->title->value = 'Mr.'; $contact->firstName = $firstName; $contact->lastName = $firstName . 'son'; $contact->owner = $user; $contact->state = $contactStates[count($contactStates) - 1]; $this->assertTrue($contact->save()); } $accountData = array('ABC Company', 'Rabbit Systems', 'Rabid Technology', 'Super Company', 'Legalland', 'Toycity'); foreach ($accountData as $name) { $account = new Account(); $account->name = $name; $account->owner = $user; $this->assertTrue($account->save()); } $data = ModelAutoCompleteUtil::getByPartialName('User', 'j', 5); $compareData = array(array('id' => $data[0]['id'], 'value' => 'Jimmy Jimmyson', 'label' => 'Jimmy Jimmyson (jimmy)'), array('id' => $data[1]['id'], 'value' => 'Jinny Jinnyson', 'label' => 'Jinny Jinnyson (jinny)'), array('id' => $data[2]['id'], 'value' => 'Johnny Johnnyson', 'label' => 'Johnny Johnnyson (johnny)')); $this->assertEquals($compareData, $data); $data = ContactAutoCompleteUtil::getByPartialName('sa', 5); $compareData = array(array('id' => $data[0]['id'], 'value' => 'Sally Sallyson', 'label' => 'Sally Sallyson'), array('id' => $data[1]['id'], 'value' => 'Sam Samson', 'label' => 'Sam Samson'), array('id' => $data[2]['id'], 'value' => 'Sarah Sarahson', 'label' => 'Sarah Sarahson')); $this->assertEquals($compareData, $data); $data = ContactAutoCompleteUtil::getByPartialName('xa', 5); $compareData = array(); $this->assertEquals($compareData, $data); $data = ContactAutoCompleteUtil::getByPartialName('s', 1); $compareData = array(array('id' => $data[0]['id'], 'value' => 'Sally Sallyson', 'label' => 'Sally Sallyson')); $this->assertEquals($compareData, $data); $data = ModelAutoCompleteUtil::getByPartialName('Account', 'rab', 5); $compareData = array(array('id' => $data[0]['id'], 'value' => 'Rabbit Systems', 'label' => 'Rabbit Systems'), array('id' => $data[1]['id'], 'value' => 'Rabid Technology', 'label' => 'Rabid Technology')); $this->assertEquals($compareData, $data); }