public function configure()
 {
     unset($this['created_at'], $this['updated_at'], $this['nb_joue'], $this['ei_node_id'], $this['ei_version_structure_id']);
     $this->widgetSchema['project_id'] = new sfWidgetFormInputHidden();
     $this->widgetSchema['project_ref'] = new sfWidgetFormInputHidden();
     //Modification des labels
     $this->widgetSchema->setLabels(array('nom_scenario' => 'Libelle'));
     if (!$this->isNew()) {
         $this->widgetSchema['nom_scenario']->setAttribute('class', 'nom_scenario form-control');
     } else {
         $this->widgetSchema['nom_scenario']->setAttribute('class', 'libelle form-control');
     }
     $this->widgetSchema['nom_scenario']->setAttribute('placeholder', 'Enter test suite name ...');
     $this->widgetSchema['description']->setAttribute('placeholder', 'Enter a description for test suite ...');
     $this->widgetSchema['description']->setAttribute('class', 'description_scenario form-control');
     //Imbrication du formulaire pour le noeud parent
     $root_id = $this->getOption('root_id');
     if (isset($root_id) && $root_id != null) {
         $ei_node = new EiNode();
         $ei_node->setIsRoot(false);
         $ei_node->setProjectId($this->getObject()->getProjectId());
         $ei_node->setProjectRef($this->getObject()->getProjectRef());
         $ei_node->setObjId($this->getObject()->getId());
         $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($this->getObject()->getProjectId(), $this->getObject()->getProjectRef(), $root_id));
         $ei_node->setType('EiScenario');
         $ei_node->setRootId($root_id);
         $this->getObject()->setEiNode($ei_node);
         //on imbrique le sous formulaire au formulaire de creation d'un scénario
         $this->embedForm('ei_node', new EiNodeForm($ei_node));
     }
     /* On vérifie à la validation que l'utilisateur possède un package par défaut */
     $this->validatorSchema->setPostValidator(new sfValidatorCallback(array('callback' => array($this, 'checkIfDefaultPackageExist'))));
 }
Esempio n. 2
0
function createAndSaveScenario(EiProjet $ei_project, EiNode $root_node)
{
    //On crée le noeud du scénario avant de créer le scénario en soit
    $ei_node = new EiNode();
    $ei_scenario = new EiScenario();
    $ei_node->setIsRoot(false);
    $ei_node->setProjectId($ei_project->getProjectId());
    $ei_node->setProjectRef($ei_project->getRefId());
    $ei_node->setName('testNomScenario');
    $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($ei_project->getProjectId(), $ei_project->getRefId(), $root_node->getId()));
    $ei_node->setType('EiScenario');
    $ei_node->setRootId($root_node->getId());
    $ei_scenario->project_id = $ei_project->getProjectId();
    $ei_scenario->project_ref = $ei_project->getRefId();
    $ei_scenario->setNomScenario('testNomScenario');
    $ei_scenario->setEiNode($ei_node);
    $ei_scenario->save();
    $ei_node->setObjId($ei_scenario->getId());
    $ei_node->save();
    return $ei_scenario;
}
 /**
  * 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));
 }
Esempio n. 4
0
 public function configure()
 {
     unset($this['created_at'], $this['updated_at']);
     $this->widgetSchema["project_ref"] = new sfWidgetFormInputHidden();
     $this->widgetSchema["project_id"] = new sfWidgetFormInputHidden();
     $this->widgetSchema['name']->setAttributes(array('class' => '  form-control'));
     //Imbrication du formulaire pour le noeud parent
     $root_id = $this->getOption('root_id');
     if (isset($root_id) && $root_id != null) {
         $ei_node = new EiNode();
         $ei_node->setIsRoot(false);
         $ei_node->setProjectId($this->getObject()->getProjectId());
         $ei_node->setProjectRef($this->getObject()->getProjectRef());
         $ei_node->setObjId($this->getObject()->getId());
         $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($this->getObject()->getProjectId(), $this->getObject()->getProjectRef(), $root_id));
         $ei_node->setType('EiFolder');
         $ei_node->setRootId($root_id);
         //on imbrique le sous formulaire au formulaire de creation d'un dossier
         $this->embedForm('ei_node', new EiNodeForm($ei_node));
     }
 }
Esempio n. 5
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;
     }
 }
Esempio n. 6
0
 /**
  * @param sfWebRequest $request
  * @return EiDataSet|null
  */
 private function processCreateEmpty(sfWebRequest $request)
 {
     // Déclaration de la connexion SQL.
     $connection = Doctrine_Manager::connection();
     // Instanciation du logger.
     $this->logger = sfContext::getInstance()->getLogger();
     $this->logger->info("----------------------------------------------------------");
     $this->logger->info("---   DEBUT SAUVEGARDE DATA SET (CREATE EMPTY)");
     try {
         // On débute la transaction.
         $connection->beginTransaction();
         $ei_user = $this->getUser()->getGuardUser()->getEiUser();
         $nom = $request->getParameter("name");
         $desc = $request->getParameter("description");
         // Déclaration du template.
         $ei_data_set_template = null;
         $ei_node_template = null;
         // Récupération du jeu de données de base si enregistrement.
         $dataSetSourceId = $request->getParameter("dataSetSource");
         // On récupère le data set template source (si enregistrement).
         $dataSetTemplateSourceId = $request->getParameter("dataSetTemplateSource");
         // On récupère le dossier où enregistrer le JDD.
         $dataSetDirId = $request->getPostParameter("dataSetDir");
         // LOGS
         $this->logger->info("-- JDD SOURCE ID : " . $dataSetSourceId);
         $this->logger->info("-- JDD TEMPLATE SOURCE ID : " . $dataSetTemplateSourceId);
         $this->logger->info("-- JDD DIR ID : " . $dataSetDirId);
         if ($dataSetSourceId != null) {
             // LOGS
             $this->logger->info("-- DATA SET SOURCE ID NOT NULL ");
             /** @var EiDataSet $dataSetSource Récupération du jeu de données source. */
             $dataSetSource = Doctrine_Core::getTable("EiDataSet")->find($dataSetSourceId);
             if ($dataSetSource != null && $dataSetSource->getEiDataSetTemplate() != null) {
                 // LOGS
                 $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getId() . ") ET TEMPLATE (" . $dataSetSource->getEiDataSetTemplate()->getId() . ") NOT NULL ");
                 $ei_data_set_template = $dataSetSource->getEiDataSetTemplate();
                 $ei_node_template = $ei_data_set_template->getEiNode();
                 // On modifie le nom et la description.
                 $nom = $ei_data_set_template->getName();
                 $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
             } else {
                 $dataSetSource = Doctrine_Core::getTable("EiDataSetTemplate")->find($dataSetSourceId);
                 if ($dataSetSource != null) {
                     // LOGS
                     $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getId() . ") ET TEMPLATE (" . $dataSetSource->getEiDataSetTemplate()->getId() . ") NOT NULL ");
                     $ei_data_set_template = $dataSetSource;
                     $ei_node_template = $ei_data_set_template->getEiNode();
                     // On modifie le nom et la description.
                     $nom = $ei_data_set_template->getName();
                     $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
                 }
             }
         } elseif ($dataSetTemplateSourceId != null) {
             /** @var EiDataSetTemplate $dataSetSource */
             $dataSetSource = Doctrine_Core::getTable("EiDataSetTemplate")->find($dataSetTemplateSourceId);
             if ($dataSetSource != null) {
                 // LOGS
                 $this->logger->info("-- DATA SET SOURCE (" . $dataSetSource->getEiDataSetRefId() . ") ET TEMPLATE (" . $dataSetSource->getId() . ") NOT NULL ");
                 $ei_data_set_template = $dataSetSource;
                 $ei_node_template = $ei_data_set_template->getEiNode();
                 // On modifie le nom et la description.
                 $nom = $ei_data_set_template->getName();
                 $desc = $ei_data_set_template->getDescription() . " V" . ($ei_data_set_template->getEiDataSets()->count() + 1);
             }
         }
         if ($ei_data_set_template == null) {
             // LOGS
             $this->logger->info("-- CREATION D'UN NOUVEAU TEMPLATE");
             // Création du template.
             //=> NODE
             $ei_node_template = new EiNode();
             $ei_node_template->createEmpty($request->getParameter("ei_node_parent_id"), $this->ei_project, $request->getParameter("name"));
             //=> TEMPLATE.
             $ei_data_set_template = new EiDataSetTemplate();
             $ei_data_set_template->createEmpty($nom, $desc, $ei_node_template, $ei_user);
             // Sauvegarde du template.
             $ei_data_set_template->save($connection);
         }
         $this->logger->info("----------------------------------------------------------");
         $this->logger->info("---   FIN SAUVEGARDE DATA SET (CREATE EMPTY)");
         $this->logger->info("----------------------------------------------------------");
         // Création du jeu de données.
         //=> NODE
         $ei_node = new EiNode();
         $ei_node->createEmpty($ei_node_template->getId(), $this->ei_project, $request->getParameter("name"));
         //=> JEU DE DONNEES
         $ei_data_set = new EiDataSet();
         if ($this->getUser() !== null) {
             $ei_data_set->user_id = $ei_user->getUserId();
             $ei_data_set->user_ref = $ei_user->getRefId();
         }
         //=> Création à vide.
         $ei_data_set->createEmpty($nom, $desc, $ei_node, $this->ei_scenario);
         //=> Affectation du template.
         $ei_data_set->setEiDataSetTemplate($ei_data_set_template);
         //=> SAUVEGARDE
         $ei_data_set->save($connection);
         // Affectation du jeu de données au template.
         $ei_data_set_template->setEiDataSet($ei_data_set);
         $ei_data_set_template->save($connection);
         // Création des lignes du jeu de données.
         $ei_data_set->createRootDataLine();
         $connection->commit();
     } catch (Exception $e) {
         $connection->rollback();
         return null;
     }
     return $ei_data_set;
 }
Esempio n. 7
0
 /**
  * Copie le noeud du scenario.
  * @param EiScenario $copie
  * @param type $conn
  * @throws Exception
  */
 private function createNodeCopie(EiScenario $copie, $conn)
 {
     try {
         $root_folder = $this->getNode();
         $ei_node = new EiNode();
         $ei_node->setProjectId($this->getProjectId());
         $ei_node->setProjectRef($this->getProjectRef());
         $ei_node->setName($copie->getNomScenario());
         $ei_node->setPosition(Doctrine_Core::getTable('EiNode')->getLastPositionInNode($this->getProjectId(), $this->getProjectRef(), $root_folder->getRootId()));
         $ei_node->setIsRoot(false);
         $ei_node->setIsShortcut(false);
         $ei_node->setRootId($root_folder->getRootId());
         $ei_node->setType("EiScenario");
         $copie->setEiNode($ei_node);
         $copie->save($conn, true);
         //$copie->createDefaultEiDataSetFolder($conn);
         $ei_node->setObjId($copie->getId());
         $copie->save($conn, true);
     } catch (Exception $e) {
         throw $e;
     }
 }
Esempio n. 8
0
 public function isAncestorOf(EiNode $new_parent, EiNode $current_node)
 {
     while ($new_parent->getRootId() != null) {
         if ($new_parent->getRootId() == $current_node->getId()) {
             return true;
         }
         $new_parent = $new_parent->getParent();
     }
     return false;
 }