/** * @param Workflow $workflow * @param $isBeingCopied * @return View * @throws NotSupportedException if the type provided is not valid */ public static function makeViewFromWorkflow(Workflow $workflow, $isBeingCopied = false) { assert('is_bool($isBeingCopied)'); $type = $workflow->getType(); $workflowToWizardFormAdapter = new WorkflowToWizardFormAdapter($workflow); if ($type == Workflow::TYPE_ON_SAVE) { $viewClassName = 'OnSaveWorkflowWizardView'; $form = $workflowToWizardFormAdapter->makeOnSaveWizardForm(); } elseif ($type == Workflow::TYPE_BY_TIME) { $viewClassName = 'ByTimeWorkflowWizardView'; $form = $workflowToWizardFormAdapter->makeByTimeWizardForm(); } else { throw new NotSupportedException(); } return new $viewClassName($form, $isBeingCopied); }
protected function resolveSavedWorkflowAndWorkflowByPostData(array $postData, &$savedWorkflow, &$workflow, $type, $id = null, $isBeingCopied = false) { if ($id == null) { $this->resolveCanCurrentUserAccessWorkflows(); $savedWorkflow = new SavedWorkflow(); $workflow = new Workflow(); $workflow->setType($type); } elseif ($isBeingCopied) { $savedWorkflow = new SavedWorkflow(); $oldWorkflow = SavedWorkflow::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldWorkflow); ZurmoCopyModelUtil::copy($oldWorkflow, $savedWorkflow); $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow); } else { $savedWorkflow = SavedWorkflow::getById(intval($id)); ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedWorkflow); $workflow = SavedWorkflowToWorkflowAdapter::makeWorkflowBySavedWorkflow($savedWorkflow); } DataToWorkflowUtil::resolveWorkflowByWizardPostData($workflow, $postData, WorkflowToWizardFormAdapter::getFormClassNameByType($type)); }