public function actionAddEmailMessageRecipient($moduleClassName, $type, $recipientType, $rowNumber, $recipientRowNumber) { $form = new WizardActiveForm(); $form->id = WorkflowWizardView::getFormId(); $form->enableAjaxValidation = true; //ensures error validation populates correctly $wizardFormClassName = WorkflowToWizardFormAdapter::getFormClassNameByType($type); $model = WorkflowEmailMessageRecipientFormFactory::make($recipientType, $moduleClassName::getPrimaryModelName(), $type); $inputPrefixData = array($wizardFormClassName, ComponentForWorkflowForm::TYPE_EMAIL_MESSAGES, (int) $rowNumber, EmailMessageForWorkflowForm::TYPE_EMAIL_MESSAGE_RECIPIENTS, $recipientRowNumber); $adapter = new WorkflowEmailMessageRecipientToElementAdapter($model, $form, $recipientType, $inputPrefixData); $view = new EmailMessageRecipientRowForWorkflowComponentView($adapter, (int) $recipientRowNumber, $inputPrefixData); $content = $view->render(); $form->renderAddAttributeErrorSettingsScript($view::getFormId()); Yii::app()->getClientScript()->setToAjaxMode(); Yii::app()->getClientScript()->render($content); echo $content; }
/** * @param integer $rowCount * @param array $recipients * @return array */ protected function renderRecipients(&$rowCount, $recipients) { assert('is_int($rowCount)'); assert('is_array($recipients)'); $items = array(); foreach ($recipients as $recipient) { $inputPrefixData = array_merge($this->inputPrefixData, array(EmailMessageForWorkflowForm::TYPE_EMAIL_MESSAGE_RECIPIENTS, (int) $rowCount)); $adapter = new WorkflowEmailMessageRecipientToElementAdapter($recipient, $this->form, $recipient->type, $inputPrefixData); $view = new EmailMessageRecipientRowForWorkflowComponentView($adapter, $rowCount, $inputPrefixData); $view->addWrapper = false; $items[] = array('content' => $view->render()); $rowCount++; } return $items; }