/** * Generate the row. * * @param array $row Row. * * @return string */ public function generateRow($row) { try { $entityId = EntityId::fromString($row['entityId']); $manager = $this->getServiceProvider()->getManager($entityId->getProviderName()); $entity = $this->getServiceProvider()->getEntityManager()->getRepository($entityId->getProviderName())->find($entityId->getIdentifier()); $workflow = $manager->getWorkflow($entityId, $entity); if ($workflow) { $row['workflowName'] = $workflow->getLabel(); $row['transitionName'] = $workflow->getTransition($row['transitionName'])->getLabel(); $row['stepName'] = $workflow->getStep($row['stepName'])->getLabel(); } } catch (\Exception $e) { // Catch exception here so if the definition has changes no error is thrown. } $row['success'] = $this->translate($row['success'] ? 'yes' : 'no', array(), 'MSC'); $template = new \BackendTemplate('be_workflow_state_row'); $template->setData($row); if (is_numeric($row['reachedAt'])) { $template->reachedAt = \Date::parse(\Config::get('datimFormat'), $row['reachedAt']); } return $template->parse(); }
/** * Create the state object. * * @param StateModel $model The state model. * * @return State */ private function createState(StateModel $model) { $reachedAt = new \DateTime(); $reachedAt->setTimestamp($model->reachedAt); $state = new State(EntityId::fromString($model->entityId), $model->workflowName, $model->transitionName, $model->stepName, (bool) $model->success, (array) json_decode($model->data, true), $reachedAt, (array) json_decode($model->errors, true), $model->id); return $state; }