Skip to content
Snippets Groups Projects
Commit 40b98f86 authored by Frédéric Carretero's avatar Frédéric Carretero
Browse files

Sauvegarde du formulaire d'un projet FME dans le studio sur S3

parent fa918594
Branches
Tags
No related merge requests found
......@@ -409,7 +409,7 @@ class Workspaces extends GTF {
$oFmwParser->save($oFmwParser->sFmwFileName);
putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'fme', $_FILES['fmw_file']['name'][$i], file_get_contents($oFmwParser->sFmwFileName));
// Création des formulaires json.
$aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
$aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]);
if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', json_encode($aJson)) !== false) {
copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'WSubform.json');
copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json', 'DSubform.json');
......@@ -743,26 +743,25 @@ class Workspaces extends GTF {
if (!empty($this->aValues["cmd"])) {
switch ($this->aValues["cmd"]) {
// DSubform: formulaire par défaut
// Subform: formulaire publié
// WSubform: formulaire personnalié
// Remplace le formulaire publié par celui par défaut
case "Default_Published":
// Si le fichier par défaut n'existe pas, il est généré
if (!file_exists($sDirname . "/form/DSubform.json")) {
if (!fileExistsInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json')) {
$this->aValues["cmd"] = "Default_Reset";
$this->PUT();
}
@unlink($sDirname . "/form/Subform.json");
copy($sDirName . "/form/DSubform.json", $sDirName . "/form/Subform.json");
// Remplace 'Subform.json' par le formulaire par défaut 'DSubform.json'.
deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json');
copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'Subform.json');
$this->aValues["form_type"] = 'default';
break;
// Regénère le formulaire par défaut en fonction du fmw
case "Default_Reset":
$oWorkspace = new Workspace($this->aPath, $this->aValues, $this->aProperties, $this->oConnection);
$oWorkspace->GET();
if (empty($oWorkspace->aFields["fmw_file"])) {
$error_message .= "Any FME file founded in" . $sDirName . "/fme/ ";
writeToErrorLog("WARNING: " . $error_message);
......@@ -773,71 +772,47 @@ class Workspaces extends GTF {
$sMessage = $this->asDocument('', 'vitis', $this->aValues['sEncoding'], True, $aXmlRacineAttribute, $this->aValues['sSourceEncoding'], $this->aValues['output']);
return $sMessage;
}
$oFmwParser = new GtfFmwParser($sDirName . "/fme/" . $oWorkspace->aFields["fmw_file"]);
$aJson = $oFmwParser->productJson($this->aProperties, $oWorkspace->aFields["name"]);
$fJson = fopen($sDirName . "/form/DSubform.json", "w");
if (fwrite($fJson, json_encode($aJson)) == FALSE) {
if ($fJson == FALSE) {
writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
} else {
// Lit le contenu du fichier .fmw du projet.
$sFmwFileContent = getFileContentInWsDataDir("gtf", "workspace", $this->aValues["my_vitis_id"], 'fme', $oWorkspace->aFields["fmw_file"]);
// Création des formulaires json.
$oFmwParser = new GtfFmwParser($oWorkspace->aFields["fmw_file"], $sFmwFileContent, $this->aProperties);
$aJson = $oFmwParser->productJson($oWorkspace->aFields["name"]);
if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', json_encode($aJson)) === false)
writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
}
}
fclose($fJson);
//$oFmwParser->updateMetadata($this->oConnection->oBd, $oWorkspace->aFields["workspace_id"]);
break;
// Remplace le formulaire publié par celui personnalisé
case "Perso_Published" :
@unlink($sDirname . "/form/Subform.json");
copy($sDirName . "/form/WSubform.json", $sDirName . "/form/Subform.json");
deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'Subform.json');
copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json', 'Subform.json');
$this->aValues["form_type"] = 'custom';
break;
// Remplace le fornulaire personnalisé par le formulaire par défaut
case "Perso_Reset":
// Si le fichier par défaut n'existe pas, il est généré
if (!file_exists($sDirname . "/form/DSubform.json")) {
if (!fileExistsInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json')) {
$this->aValues["cmd"] = "Default_Reset";
$this->PUT();
}
@unlink($sDirname . "/form/WSubform.json");
copy($sDirName . "/form/DSubform.json", $sDirName . "/form/WSubform.json");
// Remplace 'Subform.json' par 'WSubform.json'.
deleteFileFromWsDataDirTree('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json');
copyFileInWsDataDir ('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'DSubform.json', 'WSubform.json');
break;
// Sauvegarde le formulaire personnalisé
// Sauvegarde le formulaire personnalisé.
case "Perso_Save":
$pFile = fopen($sDirName . "/form/WSubform.json", "w");
if (fwrite($pFile, $this->aValues["Json"]) == FALSE) {
if ($fJson == FALSE) {
writeToErrorLog("Subform.json can't be opened : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the property workspace_dir)");
} else {
// Sauve le formulaire personnalisé.
if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form', 'WSubform.json', $this->aValues["Json"]) === false)
writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
}
}
fclose($pFile);
// Sauve le javascript.
if ($this->aValues["Js"] != "") {
$pFileJS = fopen($sDirName . "/form/ressources/Subform.js", "w+");
if (fwrite($pFileJS, $this->aValues["Js"]) == FALSE) {
if ($pFileJS == FALSE) {
writeToErrorLog("Subform.js can't be opened : " . $sDirName . "/form/ressources/Subform.js" . "(Workspaces.class.inc : verify the property workspace_dir)");
} else {
writeToErrorLog("Subform.js can't be writed : " . $sDirName . "/form/ressources/Subform.js" . "(Workspaces.class.inc : verify the folder's rights)");
}
}
fclose($pFileJS);
if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.js', $this->aValues["Js"]) === false)
writeToErrorLog("Subform.json can't be writed : " . $sDirName . "/form/ressources/Subform.json" . "(Workspaces.class.inc : verify the folder's rights)");
}
// Sauve le css.
if ($this->aValues["Css"] != "") {
$pFileCSS = fopen($sDirName . "/form/ressources/Subform.css", "w+");
if (fwrite($pFileCSS, $this->aValues["Css"]) == FALSE) {
if ($pFileCSS == FALSE) {
writeToErrorLog("Subform.css can't be opened : " . $sDirName . "/form/ressources/Subform.css" . "(Workspaces.class.inc : verify the property workspace_dir)");
} else {
if (putFileContentInWsDataDir('gtf', 'workspace', $this->aValues["my_vitis_id"], 'form/ressources', 'Subform.css', $this->aValues["Css"]) === false)
writeToErrorLog("Subform.css can't be writed : " . $sDirName . "/form/ressources/Subform.css" . "(Workspaces.class.inc : verify the folder's rights)");
}
}
fclose($pFileCSS);
}
break;
default : writeToErrorLog("ERROR : Bad request from Client : " . $this->aValues["cmd"] . " form user ->" . $_SESSION["user_id"]);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment