protected function renderControlNonEditable() { assert('$this->model instanceof EmailMessage'); $recipientsContent = EmailMessageMashableActivityRules::getRecipientsContent($this->model->recipients, EmailMessageRecipient::TYPE_BCC); if ($recipientsContent == null && $this->form != null) { $recipientsContent = ' '; } return Yii::app()->format->html($recipientsContent); }
protected function renderControlNonEditable() { assert('$this->model->{$this->attribute} instanceof EmailMessageSender'); $sender = $this->model->{$this->attribute}; $senderContent = EmailMessageMashableActivityRules::getSenderContent($sender); if ($senderContent == null && $this->form != null) { $senderContent = ' '; } return Yii::app()->format->html($senderContent); }
public function testResolveSearchAttributesDataByRelatedItemIdWithRegularUser() { Yii::app()->user->userModel = User::getByUsername('benny'); $mungeIds = ReadPermissionsOptimizationUtil::getMungeIdsByUser(Yii::app()->user->userModel); $quote = DatabaseCompatibilityUtil::getQuote(); $rules = new EmailMessageMashableActivityRules(); $searchAttributeData = $rules->resolveSearchAttributesDataByRelatedItemId(5); $joinTablesAdapter = new RedBeanModelJoinTablesQueryAdapter('EmailMessage'); $where = RedBeanModelDataProvider::makeWhere('EmailMessage', $searchAttributeData, $joinTablesAdapter); $compareWhere = "(({$quote}emailmessagesender{$quote}.{$quote}personoraccount_item_id{$quote} = 5) or (1 = "; $compareWhere .= "(select 1 from {$quote}emailmessagerecipient{$quote} emailmessagerecipient where "; $compareWhere .= "{$quote}emailmessagerecipient{$quote}.{$quote}emailmessage_id` = {$quote}emailmessage"; $compareWhere .= "{$quote}.id and {$quote}emailmessagerecipient{$quote}.{$quote}personoraccount_item_id` = 5 limit 1)))"; $this->assertEquals($compareWhere, $where); $sql = EmailMessage::makeSubsetOrCountSqlQuery('emailmessage', $joinTablesAdapter, 1, 5, $where, null); $compareSubsetSql = "select distinct {$quote}emailmessage{$quote}.{$quote}id{$quote} id "; $compareSubsetSql .= "from ({$quote}emailmessage{$quote}, {$quote}ownedsecurableitem{$quote}) "; $compareSubsetSql .= "left join {$quote}emailmessagesender{$quote} on "; $compareSubsetSql .= "{$quote}emailmessagesender{$quote}.{$quote}id{$quote} = {$quote}emailmessage{$quote}."; $compareSubsetSql .= "{$quote}sender_emailmessagesender_id{$quote} "; $compareSubsetSql .= "left join {$quote}emailmessage_read{$quote} on "; $compareSubsetSql .= "{$quote}emailmessage_read{$quote}.{$quote}securableitem_id{$quote} = "; $compareSubsetSql .= "{$quote}ownedsecurableitem{$quote}.{$quote}securableitem_id{$quote} "; $compareSubsetSql .= "and {$quote}munge_id{$quote} in ('" . join("', '", $mungeIds) . "') "; $compareSubsetSql .= "where (" . $compareWhere . ') '; $compareSubsetSql .= "and ({$quote}ownedsecurableitem{$quote}.{$quote}owner__user_id{$quote} = " . Yii::app()->user->userModel->id . " "; // Not Coding Standard $compareSubsetSql .= "OR {$quote}emailmessage_read{$quote}.{$quote}munge_id{$quote} IS NOT NULL) "; // Not Coding Standard $compareSubsetSql .= "and {$quote}ownedsecurableitem{$quote}.{$quote}id{$quote} = "; $compareSubsetSql .= "{$quote}emailmessage{$quote}.{$quote}ownedsecurableitem_id{$quote} "; $compareSubsetSql .= 'limit 5 offset 1'; $this->assertEquals($compareSubsetSql, $sql); //Make sure the sql runs properly. $data = EmailMessage::getSubset($joinTablesAdapter, 0, 5, $where, null); $this->assertEquals(0, count($data)); }
public function testResolveContactToSenderOrRecipientForReceivedEmail() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $message1 = self::$message1; $contact = new Contact(); $contact->firstName = 'Jason'; $contact->lastName = 'Green'; $contact->state = ContactsUtil::getStartingState(); $saved = $contact->save(); $this->assertTrue($saved); $contactId = $contact->id; $contact->forget(); $contact = Contact::getById($contactId); $this->assertNull($contact->primaryEmail->emailAddress); ArchivedEmailMatchingUtil::resolveContactToSenderOrRecipient($message1, $contact); $saved = $message1->save(); $this->assertTrue($saved); $messageId = $message1->id; $message1->forget(); $contact->forget(); RedBeanModel::forgetAll(); //simulates crossing page requests $message1 = EmailMessage::getById($messageId); $contact = Contact::getById($contactId); $this->assertEquals(1, $message1->sender->personsOrAccounts->count()); $castedDownModel = EmailMessageMashableActivityRules::castDownItem($message1->sender->personsOrAccounts[0]); $this->assertEquals('Contact', get_class($castedDownModel)); $this->assertEquals($contact->id, $castedDownModel->id); }
public function testResolveSearchAttributeDataForAllLatestActivities() { $box = EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME); $rules = new EmailMessageMashableActivityRules(); $searchAttributeData = array(); $searchAttributeData['clauses'] = array(); $searchAttributeData['structure'] = null; $searchAttributeData = $rules->resolveSearchAttributeDataForAllLatestActivities($searchAttributeData); $compareData = array('clauses' => array(1 => array('attributeName' => 'folder', 'relatedModelData' => array('attributeName' => 'emailBox', 'operatorType' => 'doesNotEqual', 'value' => $box->id))), 'structure' => '1'); $this->assertEquals($compareData, $searchAttributeData); }
protected function renderControlNonEditable() { assert('$this->model instanceof EmailMessage'); return Yii::app()->format->html(EmailMessageMashableActivityRules::getRecipientsContent($this->model->recipients, EmailMessageRecipient::TYPE_BCC)); }
public function testGetRecipientsContent() { //Test without personsOrAccounts $emailMessageRecipient1 = new EmailMessageRecipient(); $emailMessageRecipient1->type = EmailMessageRecipient::TYPE_TO; $emailMessageRecipient1->toName = 'test name1'; $emailMessageRecipient1->toAddress = '*****@*****.**'; $emailMessageRecipient2 = new EmailMessageRecipient(); $emailMessageRecipient2->type = EmailMessageRecipient::TYPE_TO; $emailMessageRecipient2->toName = 'test name2'; $emailMessageRecipient2->toAddress = '*****@*****.**'; $emailMessage = new EmailMessage(); $emailMessage->recipients->add($emailMessageRecipient1); $emailMessage->recipients->add($emailMessageRecipient2); $content = EmailMessageMashableActivityRules::getRecipientsContent($emailMessage->recipients); $this->assertContains('test1@zurmo.com test name1', $content); $this->assertContains('test2@zurmo.com test name2', $content); //Test with personOrAccount $contact1 = new Contact(); $contact2 = new Contact(); $contact1->lastName = 'contact1'; $contact2->lastName = 'contact2'; $emailMessageRecipient1->personsOrAccounts->add($contact1); $emailMessageRecipient2->personsOrAccounts->add($contact1); $emailMessageRecipient2->personsOrAccounts->add($contact2); $content = EmailMessageMashableActivityRules::getRecipientsContent($emailMessage->recipients); $this->assertContains('href=', $content); $this->assertNotContains('*****@*****.**', $content); $this->assertContains('*****@*****.**', $content); $this->assertContains('contact1', $content); $this->assertContains('contact2', $content); }
/** * Renders content for the view. * @return A string containing the element's content. */ protected function renderContent() { $this->renderScriptsContent(); $this->setView(new AnyContactSelectForEmailMatchingView($this->controllerId, $this->moduleId, $this->selectForm, $this->uniqueId, $this->saveActionId, $this->urlParameters), 0, 0); $row = 1; // $content = $this->renderEmailMessageContentAndResolveLink(); if ($this->userCanCreateContact) { $this->setView(new ContactInlineCreateForArchivedEmailCreateView($this->controllerId, $this->moduleId, $this->emailMessage->id, $this->contact, $this->uniqueId, $this->saveActionId, $this->urlParameters), $row, 0); $row++; } if ($this->userCanCreateLead) { $this->setView(new LeadInlineCreateForArchivedEmailCreateView($this->controllerId, $this->moduleId, $this->emailMessage->id, $this->contact, $this->uniqueId, $this->saveActionId, $this->urlParameters), $row, 0); } $selectLink = $this->renderSelectLinkContent(); $createContactLink = ZurmoHtml::link(Zurmo::t('ContactsModule', 'Create ContactsModuleSingularLabel', LabelUtil::getTranslationParamsForAllModules()), '#', array('class' => 'create-link contact-create-link z-action-link')); $createLeadLink = ZurmoHtml::link(Zurmo::t('LeadsModule', 'Create LeadsModuleSingularLabel', LabelUtil::getTranslationParamsForAllModules()), '#', array('class' => 'create-link lead-create-link z-action-link')); $deleteLink = $this->renderDeleteLink(); $rules = new EmailMessageMashableActivityRules(); $content = $rules->renderRelatedModelsByImportanceContent($this->emailMessage); $content .= ZurmoHtml::wrapLabel(strval($this->emailMessage), 'email-subject'); $content .= '<div class="matching-actions-and-content"><div class="email-matching-actions">'; $content .= $this->renderTitleDivContent($selectLink, $createLeadLink, $createContactLink, $deleteLink); $content .= '</div>'; $content .= parent::renderContent() . '</div>'; return '<div id="wrapper-' . $this->uniqueId . '" class="email-archive-item">' . $content . '</div>'; }
protected function renderControlNonEditable() { assert('$this->model->{$this->attribute} instanceof EmailMessageSender'); $sender = $this->model->{$this->attribute}; return Yii::app()->format->html(EmailMessageMashableActivityRules::getSenderContent($sender)); }