コード例 #1
0
 protected function renderAutoCompleteResults($modelClassName, $term, $autoCompleteOptions = null)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $autoCompleteResults = ModelAutoCompleteUtil::getByPartialName($modelClassName, $term, $pageSize, $autoCompleteOptions);
     if (empty($autoCompleteResults)) {
         $autoCompleteResults = array(array('id' => null, 'value' => null, 'label' => Zurmo::t('Core', 'No results found')));
     }
     return CJSON::encode($autoCompleteResults);
 }
コード例 #2
0
 public function testGetGenericResultSanitizePartialName()
 {
     $super = User::getByUsername('super');
     Yii::app()->user->userModel = $super;
     $this->assertTrue(ZurmoRedBean::$writer->doesTableExist(User::getTableName()));
     AccountTestHelper::createAccountByNameForOwner('Test account', $super);
     AccountTestHelper::createAccountByNameForOwner('Test account 2', $super);
     $term = "Test%');drop TABLE _user-- ";
     $data = ModelAutoCompleteUtil::getByPartialName('Account', $term, 5);
     $this->assertTrue(ZurmoRedBean::$writer->doesTableExist(User::getTableName()));
     $this->assertEmpty($data);
 }
コード例 #3
0
 /**
  * @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);
 }
コード例 #4
0
 public function actionAutoCompleteGroupsAndUsers($term)
 {
     $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('autoCompleteListPageSize', get_class($this->getModule()));
     $groups = ModelAutoCompleteUtil::getByPartialName('Group', $term, $pageSize);
     $users = UserSearch::getUsersByPartialFullNameOrAnyEmailAddress($term, $pageSize, null);
     $autoCompleteResults = array();
     foreach ($groups as $group) {
         $autoCompleteResults[] = array('id' => PushDashboardUtil::GROUP_PREFIX . $group['id'], 'name' => $group['value']);
     }
     foreach ($users as $user) {
         $autoCompleteResults[] = array('id' => PushDashboardUtil::USER_PREFIX . $user->id, 'name' => MultipleContactsForMeetingElement::renderHtmlContentLabelFromUserAndKeyword($user, $term));
     }
     echo CJSON::encode($autoCompleteResults);
 }