Merge remote-tracking branch 'upstream/3.0.1.8' into MT-100
This commit is contained in:
@@ -1984,10 +1984,12 @@ class Processes
|
||||
{
|
||||
$map = array();
|
||||
foreach ($oData->inputs as $key => $val) {
|
||||
$oldUid = $val['INP_DOC_UID'];
|
||||
$newGuid = $this->getUnusedInputGUID();
|
||||
$map[$val['INP_DOC_UID']] = $newGuid;
|
||||
$oData->inputFiles[$oData->inputs[$key]['INP_DOC_UID']] = $newGuid;
|
||||
$oData->inputs[$key]['INP_DOC_UID'] = $newGuid;
|
||||
$oData->inputs[$key]['INP_DOC_UID_OLD'] = $oldUid;
|
||||
}
|
||||
if (!isset($oData->inputFiles)) {
|
||||
$oData->inputFiles = array();
|
||||
|
||||
@@ -41,7 +41,7 @@ class FilesManager
|
||||
*
|
||||
* @access public
|
||||
*/
|
||||
public function getProcessFilesManagerPath($sProcessUID, $path)
|
||||
public function getProcessFilesManagerPath($sProcessUID, $path, $getContent = true)
|
||||
{
|
||||
try {
|
||||
$checkPath = substr($path, -1);
|
||||
@@ -85,7 +85,10 @@ class FilesManager
|
||||
}
|
||||
foreach ($aFiles as $aFile) {
|
||||
$arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE']);
|
||||
$fcontent = '';
|
||||
$fcontent = "";
|
||||
if ($getContent === true) {
|
||||
$fcontent = file_get_contents($sDirectory . $aFile['FILE']);
|
||||
}
|
||||
$fileUid = $arrayFileUid["PRF_UID"];
|
||||
if ($fileUid != null) {
|
||||
$oProcessFiles = \ProcessFilesPeer::retrieveByPK($fileUid);
|
||||
@@ -243,6 +246,11 @@ class FilesManager
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $aData
|
||||
* @throws Exception
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function addProcessFilesManagerInDb($aData)
|
||||
{
|
||||
try {
|
||||
@@ -250,7 +258,26 @@ class FilesManager
|
||||
$aData = array_change_key_case($aData, CASE_UPPER);
|
||||
$oProcessFiles->fromArray($aData, \BasePeer::TYPE_FIELDNAME);
|
||||
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']);
|
||||
$path = $aData['PRF_PATH'];
|
||||
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
|
||||
$path = str_replace("/", DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR, $path);
|
||||
}
|
||||
|
||||
$path = explode(DIRECTORY_SEPARATOR,$path);
|
||||
$fileDirectory = $path[count($path)-3];
|
||||
|
||||
switch ($fileDirectory) {
|
||||
case 'mailTemplates':
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']);
|
||||
break;
|
||||
case 'public':
|
||||
$sDirectory = PATH_DATA_PUBLIC . $aData['PRO_UID'] . PATH_SEP . basename($aData['PRF_PATH']);
|
||||
break;
|
||||
default:
|
||||
throw new \Exception(\G::LoadTranslation("ID_INVALID_VALUE_FOR", array($aData['PRF_PATH'])));
|
||||
break;
|
||||
}
|
||||
|
||||
$oProcessFiles->setPrfPath($sDirectory);
|
||||
|
||||
if($this->existsProcessFile($aData['PRF_UID'])) {
|
||||
|
||||
@@ -36,6 +36,19 @@ class ProcessDefinitionMigrator implements Importable, Exportable
|
||||
try {
|
||||
//Bpmn elements
|
||||
$pjrUid =$this->bpmn->createFromStruct($data['bpmn'], false);
|
||||
//Import workflow elements
|
||||
$this->afterImport($data);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$exception = new ImportException($e->getMessage());
|
||||
$exception->setNameException($this->className);
|
||||
throw($exception);
|
||||
}
|
||||
}
|
||||
|
||||
public function afterImport($data)
|
||||
{
|
||||
try {
|
||||
//Workflow elements
|
||||
$this->processes->createTaskRows($data['workflow']['tasks']);
|
||||
$this->processes->createTaskUserRows($data['workflow']['taskusers']);
|
||||
@@ -70,11 +83,6 @@ class ProcessDefinitionMigrator implements Importable, Exportable
|
||||
}
|
||||
}
|
||||
|
||||
public function afterImport($data)
|
||||
{
|
||||
// TODO: Implement afterImport() method.
|
||||
}
|
||||
|
||||
public function beforeExport()
|
||||
{
|
||||
// TODO: Implement beforeExport() method.
|
||||
|
||||
@@ -253,6 +253,10 @@ abstract class Importer
|
||||
$granularObj->import($objectList);
|
||||
}
|
||||
}
|
||||
if($option === self::IMPORT_OPTION_CREATE_NEW || $option === self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW){
|
||||
$oProcessDef = new \ProcessMaker\BusinessModel\Migrator\ProcessDefinitionMigrator();
|
||||
$oProcessDef->afterImport($this->importData['tables']);
|
||||
}
|
||||
|
||||
return $projectUid;
|
||||
}
|
||||
|
||||
@@ -1317,6 +1317,18 @@ class Workflow extends Handler
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($arrayWorkflowData["inputs"] as $keyin => $value) {
|
||||
$newUid = $value["INP_DOC_UID"];
|
||||
if(isset($value["INP_DOC_UID_OLD"])){
|
||||
foreach ($arrayWorkflowData["processVariables"] as $keypv => $vars) {
|
||||
if($vars['INP_DOC_UID'] === $value["INP_DOC_UID_OLD"]){
|
||||
$arrayWorkflowData["processVariables"][$keypv]["INP_DOC_UID"] = $newUid;
|
||||
}
|
||||
}
|
||||
unset($arrayWorkflowData["inputs"][$keyin]["INP_DOC_UID_OLD"]);
|
||||
}
|
||||
}
|
||||
|
||||
//Workflow files
|
||||
foreach ($arrayWorkflowFile as $key => $value) {
|
||||
$arrayFile = $value;
|
||||
|
||||
@@ -14,15 +14,16 @@ class FilesManager extends Api
|
||||
/**
|
||||
* @param string $prj_uid {@min 32} {@max 32}
|
||||
* @param string $path
|
||||
* @param string $get_content
|
||||
*
|
||||
* @url GET /:prj_uid/file-manager
|
||||
*/
|
||||
public function doGetProcessFilesManager($prj_uid, $path = '')
|
||||
public function doGetProcessFilesManager($prj_uid, $path = '', $get_content = true)
|
||||
{
|
||||
try {
|
||||
$filesManager = new \ProcessMaker\BusinessModel\FilesManager();
|
||||
if ($path != '') {
|
||||
$arrayData = $filesManager->getProcessFilesManagerPath($prj_uid, $path);
|
||||
$arrayData = $filesManager->getProcessFilesManagerPath($prj_uid, $path, $get_content);
|
||||
} else {
|
||||
$arrayData = $filesManager->getProcessFilesManager($prj_uid);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user