コード例 #1
0
 protected function getParams(RuleCondition $condition)
 {
     $params = $condition->getRawParams();
     if (empty($params) || !is_array($params)) {
         $params = array();
     }
     if (!isset($params['name'])) {
         $params['name'] = '';
     }
     return $params;
 }
コード例 #2
0
 /**
  * @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()));
 }
コード例 #3
0
ファイル: Factory.php プロジェクト: jaapjansma/homefinance
 public function getConditionLabel(RuleCondition $condition)
 {
     $class = $this->getConditionClass($condition->getCondition());
     return $class->getLabel($condition);
 }