Merged in gproly/processmaker/PM-137 (pull request #2425)

PM-137
This commit is contained in:
Julio Cesar Laura Avendaño
2015-07-13 12:01:41 -04:00
3 changed files with 51 additions and 2 deletions

View File

@@ -559,5 +559,38 @@ abstract class Importer
throw $e;
}
}
}
public function saveAs($prj_uid, $prj_name, $prj_description, $prj_category)
{
try {
$exporter = new \ProcessMaker\Exporter\XmlExporter($prj_uid);
$getProjectName = $exporter->truncateName($exporter->getProjectName(), false);
$outputDir = PATH_DATA . "sites" . PATH_SEP . SYS_SYS . PATH_SEP . "files" . PATH_SEP . "output" . PATH_SEP;
$version = \ProcessMaker\Util\Common::getLastVersion($outputDir . $getProjectName . "-*.pmx") + 1;
$outputFilename = $outputDir . sprintf("%s-%s.%s", str_replace(" ", "_", $getProjectName), $version, "pmx");
$exporter->setMetadata("export_version", $version);
$outputFilename = $outputDir . $exporter->saveExport($outputFilename);
$httpStream = new \ProcessMaker\Util\IO\HttpStream();
$fileExtension = pathinfo($outputFilename, PATHINFO_EXTENSION);
$this->setSourceFile($outputFilename);
$this->prepare();
$this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $prj_name;
$this->importData["tables"]["bpmn"]["project"][0]["prj_description"] = $prj_description;
$this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $prj_name;
$this->importData["tables"]["bpmn"]["process"][0]["pro_name"] = $prj_name;
$this->importData["tables"]["workflow"]["process"][0]["PRO_TITLE"] = $prj_name;
$this->importData["tables"]["workflow"]["process"][0]["PRO_DESCRIPTION"] = $prj_description;
$this->importData["tables"]["workflow"]["process"][0]["PRO_CATEGORY"] = $prj_category;
$this->importData["tables"]["workflow"]["process"][0]["PRO_CATEGORY_LABEL"] = null;
$this->importData["tables"]["workflow"]["process"][0]["PRO_UPDATE_DATE"] = null;
$this->importData["tables"]["workflow"]["process"] = $this->importData["tables"]["workflow"]["process"][0];
return array("prj_uid" => $this->doImport());
} catch (\Exception $e) {
return $e->getMessage();
}
}
}

View File

@@ -154,6 +154,20 @@ class Project extends Api
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
}
}
/**
* @url POST /save-as
*
* @param string $prj_uid
* @param string $prj_name
* @param string $prj_description
* @param string $prj_category
*/
public function doSaveAs($prj_uid, $prj_name, $prj_description, $prj_category)
{
$importer = new \ProcessMaker\Importer\XmlImporter();
return $importer->saveAs($prj_uid, $prj_name, $prj_description, $prj_category);
}
/**
* @url GET /:prj_uid/process

View File

@@ -89,7 +89,9 @@
<nav>
<ul>
<li><a class="mafe-close" href="#" ><span class="mafe-button-close" ></span></a></li>
<li class="mafe-save-process"><a href="#" class="mafe-button-save"></a></li>
<li class="mafe-save-process"><a href="#" class="mafe-button-save"></a>
<span class="mafe-button-menu"><img src="/lib/img/caret-down.png"/></span>
</li>
<li><a href="#" class="mafe-button-export-process"></a></li>
<li><a class="mafe-button-export-bpmn-process"></a></li>
<li><span class="mafe-zoom-options"></span></li>