public function createRootFolderIfNew(Doctrine_Connection $conn = null) { if ($conn == null) { $conn = Doctrine_Manager::connection(); } try { $conn->beginTransaction(); $root_folder = new EiFolder(); $root_folder->setProjectId($this->getProjectId()); $root_folder->setProjectRef($this->getRefId()); $root_folder->setName('Root'); $root_folder->save($conn); $root_node = new EiNode(); $root_node->setProjectId($this->getProjectId()); $root_node->setProjectRef($this->getRefId()); $root_node->setObjId($root_folder->getId()); $root_node->setName('Root'); $root_node->setType('EiFolder'); $root_node->setPosition(1); $root_node->setIsRoot(true); $root_node->setIsShortcut(false); $root_node->setRootId(Null); $root_node->save($conn); $conn->commit(); } catch (Exception $e) { $conn->rollback(); throw $e; } }
/** * Action permettant de récupérer l'arbre des jeux de données. * * @param sfWebRequest $request */ public function execute($request) { $this->logger = sfContext::getInstance()->getLogger(); $this->logger->info("----------------------------------------------------------"); $this->logger->info("--- DEBUT RECUPERATION ARBRE DATA SET"); $this->getResponse()->setContentType('application/json'); $this->setLayout(false); $response = array("error" => "An error occured when we try to create your directory."); try { $this->getUser()->signIn($this->user, true); /** @var EiNodeTable $tableEiNode */ $tableEiNode = Doctrine_Core::getTable("EiNode"); // Récupération des données. $nom = $request->getPostParameter("name"); $parentNodeId = $request->getPostParameter("parent_node_id"); if ($nom == null || $parentNodeId == null) { $response["error"] = "You have to select a parent directory and type a valid directory name"; } else { /** @var EiNode $parentNode Récupération du noeud parent. */ $parentNode = $tableEiNode->find($parentNodeId); if ($parentNode != null && $parentNode->getId() != "" && $parentNode->getEiScenarioNode()->getObjId() == $this->scenario->getId()) { try { $folder = new EiNode(); $folder->setName($nom); $folder->setType(EiNode::$TYPE_DATASET_FOLDER); $folder->setProjectId($parentNode->getProjectId()); $folder->setProjectRef($parentNode->getProjectRef()); $folder->setRootId($parentNode->getId()); $folder->save(); unset($response["error"]); $response["id"] = $folder->getId(); } catch (Exception $exc) { $response["error"] = "An error occured when we tried to create directory : " . $exc->getMessage(); } } else { $response["error"] = "We are not able to accommodate your request."; } } } catch (Exception $e) { $response = array(); } return $this->renderText(json_encode($response)); }
/** * Créer le noeud contenant les dataSetFolders et les dataSets du scenario. * @param Doctrine_Connection $conn * @return $folder Le dossier nouvelle créé. */ public function createDefaultEiDataSetFolder(Doctrine_Connection $conn) { $folder = new EiNode(); $folder->setIsRoot(false); $folder->setName('Data sets'); $folder->setProjectId($this->getProjectId()); $folder->setProjectRef($this->getProjectRef()); $folder->setType('EiDataSetFolder'); $folder->setPosition(1); $folder->save($conn); $folder->setObjId($folder->getId()); $folder->setRootId($this->ei_node_id); $folder->save($conn); return $folder; }