コード例 #1
0
 /**
  * @param string $modelClassName
  * @param string $workflowType
  * @return array
  */
 public static function getTypeValuesAndLabels($modelClassName, $workflowType)
 {
     assert('is_string($modelClassName)');
     assert('is_string($workflowType)');
     $data = array();
     $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_USER] = DynamicTriggeredModelUserWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION_USER] = DynamicTriggeredModelRelationUserWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_STATIC_ROLE] = StaticRoleWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_DYNAMIC_TRIGGERED_BY_USER] = DynamicTriggeredByUserWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_STATIC_USER] = StaticUserWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_STATIC_ADDRESS] = StaticAddressWorkflowEmailMessageRecipientForm::getTypeLabel();
     $data[static::TYPE_STATIC_GROUP] = StaticGroupWorkflowEmailMessageRecipientForm::getTypeLabel();
     if (is_subclass_of($modelClassName, 'Contact') || $modelClassName == 'Contact') {
         $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL] = DynamicTriggeredModelWorkflowEmailMessageRecipientForm::getTypeLabel();
     }
     $form = new DynamicTriggeredModelRelationWorkflowEmailMessageRecipientForm($modelClassName, $workflowType);
     $relationValuesAndLabels = $form->getRelationValuesAndLabels();
     if (!empty($relationValuesAndLabels)) {
         $data[static::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION] = DynamicTriggeredModelRelationWorkflowEmailMessageRecipientForm::getTypeLabel();
     }
     return $data;
 }
 public function testMakeRecipientsForStaticGroup()
 {
     $group = new Group();
     $group->name = 'some group';
     $group->users->add(User::getById(self::$sarahUserId));
     $group->users->add(User::getById(self::$bobbyUserId));
     $saved = $group->save();
     $this->assertTrue($saved);
     $form = new StaticGroupWorkflowEmailMessageRecipientForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE);
     $form->groupId = $group->id;
     $model = new WorkflowModelTestItem();
     $recipients = $form->makeRecipients($model, Yii::app()->user->userModel);
     $this->assertEquals(2, count($recipients));
     $this->assertEquals('sarah sarahson', $recipients[0]->toName);
     $this->assertEquals('*****@*****.**', $recipients[0]->toAddress);
     $this->assertEquals(self::$sarahUserId, $recipients[0]->personsOrAccounts[0]->id);
     $this->assertEquals('bobby bobbyson', $recipients[1]->toName);
     $this->assertEquals('*****@*****.**', $recipients[1]->toAddress);
     $this->assertEquals(self::$bobbyUserId, $recipients[1]->personsOrAccounts[0]->id);
 }