/** * @param sfWebRequest $request * @return sfView */ public function executeUpdateTagFilter(sfWebRequest $request) { $this->forward404Unless($request->isXmlHttpRequest()); $decision_id = $request->getParameter('decision_id', false); $this->forward404Unless(is_object(DecisionTable::getInstance()->getDecisionForUser($this->getUser()->getGuardUser(), $decision_id))); if ($request->getParameter('filter_action') == 'add') { $roleFilter = new TagFilter(); $roleFilter->decision_id = $decision_id; $roleFilter->tag_id = $request->getParameter('tag_id'); $roleFilter->save(); } else { if ($request->getParameter('filter_action') == 'delete') { $tf_by_name = Doctrine_Query::create()->from('TagFilter tf')->select('tf.id')->leftJoin('tf.Tag t')->where("t.name = ?", $request->getParameter('tag_name'))->andWhere('tf.decision_id = ?', $decision_id)->execute(); foreach ($tf_by_name as $v) { Doctrine_Query::create()->delete('TagFilter')->where('id = ?', $v->id)->execute(); } } } Doctrine_Query::create()->delete('Graph')->where('decision_id = ?', $decision_id)->execute(); $criteriaAnalyze = new CriteriaAnalyze(); $criteriaAnalyze->setDecisionId($decision_id); $criteriaAnalyze->load(); return $this->getUpdateActionResponse($criteriaAnalyze, $decision_id); }