public function executeAddQuickMsg(sfWebRequest $request) { $this->preAct($request); $ei_subject_message = new EiSubjectMessage(); $ei_subject_message->setGuardId($this->guardUser->getId()); $ei_subject_message->setSubjectId($this->ei_subject->getId()); $this->parent_id = intval($request->getParameter('parent_id')); $this->message_type_id = $request->getParameter('message_type_id'); $this->ei_message_text = $request->getParameter('ei_message_text'); $this->ei_message_type = $request->getParameter('ei_message_type'); $this->success = false; /* Si le message est vide , on retourne une erreur */ if ($this->ei_message_text && trim($this->ei_message_text) != "") { $ei_subject_message->setMessage($this->ei_message_text); } else { return $this->renderText(json_encode(array('html' => "Empty message", 'success' => $this->success))); } /* Récupération du type de message bug_description_message ou bug_details_message ou bug_solution_message ou bug_migration_message */ if ($this->ei_message_type && trim($this->ei_message_type) != "") { $ei_subject_message->setType($this->ei_message_type); } else { return $this->renderText(json_encode(array('html' => "Empty message type ", 'success' => $this->success))); } /* On se rassure que le parent existe : sinon on set le parent à null */ if ($this->parent_id == 0 || $this->parent_id != null) { $parent = Doctrine_Core::getTable('EiSubjectMessage')->findOneById($this->parent_id); if ($parent != null) { $ei_subject_message->setDirectParent($parent); } } else { return $this->renderText(json_encode(array('html' => "Error : Parent not found", 'success' => $this->success))); } // On se rassure que le type de méssage est bien définit et existe pour le projet if ($this->message_type_id != null) { $msgType = Doctrine_Core::getTable('EiSubjectMessageType')->findOneByIdAndProjectIdAndProjectRef($this->message_type_id, $this->ei_project->getProjectId(), $this->ei_project->getRefId()); if ($msgType != null) { $ei_subject_message->setMessageTypeId($msgType->getId()); } else { return $this->renderText(json_encode(array('html' => "Error : no msg type specified", 'success' => $this->success))); } } else { return $this->renderText(json_encode(array('html' => "Error : no msg type specified", 'success' => $this->success))); } $res = $ei_subject_message->save(); //throw new Exception($res); if ($res) { $item = Doctrine_Core::getTable('EiSubjectMessage')->fetchBranchMsg($ei_subject_message->getId(), sfConfig::get("app_bug_description_message")); $this->success = true; $partialParam = $this->urlParameters; $partialParam['ei_subject_message'] = $item[0]; $this->html = $this->getPartial('eisubjectmessage/item', $partialParam); } else { $this->html = "Error : unable to save message"; } /* Tout s'est bien passé */ return $this->renderText(json_encode(array('html' => $this->html, 'success' => $this->success))); return sfView::NONE; }
public function setDirectParent(EiSubjectMessage $parent) { $this->direct_parent = $parent; $this->setRootId($parent->getId()); }