protected function getParams(RuleCondition $condition) { $params = $condition->getRawParams(); if (empty($params) || !is_array($params)) { $params = array(); } if (!isset($params['name'])) { $params['name'] = ''; } return $params; }
/** * @Route("/{rule_id}/add_condition", name="add_condition") * * @param Request $request * @param $rule_id * @return Response */ public function addCondition(Request $request, $rule_id) { $factory = $this->get('homefinance.rules.factory'); $administration = $this->checkCurrentAdministration(Permission::EDIT); $repo = $this->getDoctrine()->getRepository('HomefinanceBundle:Rule'); $rule = $repo->findOneByIdAndAdministration($administration, $rule_id); $condition = new RuleCondition(); $condition->setRule($rule); $form = $this->createForm('rules_condition', $condition); $form->get('actions')->add('save_add_condition', 'submit', array('label' => 'rules.condition.save_add_condition.btn-label', 'attr' => array('class' => 'btn btn-lg btn-primary'))); $form->get('actions')->add('save_add_action', 'submit', array('label' => 'rules.condition.save_add_action.btn-label', 'attr' => array('class' => 'btn btn-lg btn-warning'))); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($condition); $em->flush(); $this->addFlash('success', 'condition.edited'); if ($factory->hasConditionForm($condition)) { $params = array('rule_id' => $rule_id, 'condition_id' => $condition->getId()); if ($form->get('actions')->get('save_add_condition')->isClicked()) { $params['next'] = 'condition'; } elseif ($form->get('actions')->get('save_add_action')->isClicked()) { $params['next'] = 'action'; } return $this->redirect($this->generateUrl('edit_condition', $params)); } elseif ($form->get('actions')->get('save_add_condition')->isClicked()) { return $this->redirect($this->generateUrl('add_condition', array('rule_id' => $rule_id))); } elseif ($form->get('actions')->get('save_add_action')->isClicked()) { return $this->redirect($this->generateUrl('add_action', array('rule_id' => $rule_id))); } return $this->redirect($this->generateUrl('rules')); } return $this->render('HomefinanceBundle:Rules:add_condition.html.twig', array('form' => $form->createView())); }
public function getConditionLabel(RuleCondition $condition) { $class = $this->getConditionClass($condition->getCondition()); return $class->getLabel($condition); }