Beispiel #1
0
 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;
 }