From a378cb7dc562f1d2c7352ed18ce5db713f312ae3 Mon Sep 17 00:00:00 2001 From: dheeyi Date: Fri, 18 Mar 2016 17:41:38 -0400 Subject: [PATCH] MT-28 MT-28 --- .../BusinessModel/Migrator/ExportObjects.php | 28 +++++++++++++++++-- .../Migrator/GranularExporter.php | 3 +- .../Migrator/ProcessDefinitionMigrator.php | 26 ++++++++--------- .../src/ProcessMaker/Services/Api/Project.php | 3 +- 4 files changed, 42 insertions(+), 18 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ExportObjects.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ExportObjects.php index 30eaabe26..58c12b4cf 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ExportObjects.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ExportObjects.php @@ -7,7 +7,7 @@ class ExportObjects * @var array */ protected $objectsList = array( - 'Process Definition / Diagram', + 'Process Definition', 'Assignment Rules', 'Variables', 'Dynaforms', @@ -26,7 +26,6 @@ class ExportObjects /** * @param string $pro_uid * @return mixed|string - * @throws Exception * @throws \Exception */ public function objectList($pro_uid = '') @@ -41,7 +40,30 @@ class ExportObjects $r->data = $grid; return \G::json_encode($r); - } catch (Exception $e) { + } catch (\Exception $e) { + throw $e; + } + } + + /** + * @param $objects + * @return array + * @throws \Exception + */ + public function mapObjectList($objects) + { + try { + $mapObjectList = array(); + foreach ($this->objectsList as $key => $val) { + if(isset($objects[$key])){ + if(($key+1) === $objects[$key]){ + array_push($mapObjectList, strtoupper(str_replace(' ', '', $val))); + } + } + $key++; + } + return $mapObjectList; + } catch (\Exception $e) { throw $e; } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularExporter.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularExporter.php index 4550b6815..93da98aaf 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularExporter.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularExporter.php @@ -29,13 +29,14 @@ class GranularExporter public function export($objectList) { $this->beforeExport(); + $exportObject = new ExportObjects(); + $objectList = $exportObject->mapObjectList($objectList); foreach ($objectList as $data) { $migrator = $this->factory->create($data); $migratorData = $migrator->export($this->prjuid); $this->addData($migratorData); } return $this->publish(); - } protected function beforeExport() diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php index 0a1bb4985..4e9024caa 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php @@ -50,21 +50,21 @@ class ProcessDefinitionMigrator implements Importable, Exportable public function export($prj_uid) { - $bpmnStruct["ACTIVITY"] = \BpmnActivity::getAll($this->$prj_uid); - $bpmnStruct["ARTIFACT"] = \BpmnArtifact::getAll($this->$prj_uid); - $bpmnStruct["BOUND"] = \BpmnBound::getAll($this->$prj_uid); - $bpmnStruct["DATA"] = \BpmnData::getAll($this->$prj_uid); - $bpmnStruct["DIAGRAM"] = \BpmnDiagram::getAll($this->$prj_uid); + $bpmnStruct["ACTIVITY"] = \BpmnActivity::getAll($prj_uid); + $bpmnStruct["ARTIFACT"] = \BpmnArtifact::getAll($prj_uid); + $bpmnStruct["BOUND"] = \BpmnBound::getAll($prj_uid); + $bpmnStruct["DATA"] = \BpmnData::getAll($prj_uid); + $bpmnStruct["DIAGRAM"] = \BpmnDiagram::getAll($prj_uid); $bpmnStruct["DOCUMENTATION"] = array(); - $bpmnStruct["EVENT"] = \BpmnEvent::getAll($this->$prj_uid); + $bpmnStruct["EVENT"] = \BpmnEvent::getAll($prj_uid); $bpmnStruct["EXTENSION"] = array(); - $bpmnStruct["FLOW"] = \BpmnFlow::getAll($this->$prj_uid, null, null, "", CASE_UPPER, false); - $bpmnStruct["GATEWAY"] = \BpmnGateway::getAll($this->$prj_uid); - $bpmnStruct["LANE"] = \BpmnLane::getAll($this->$prj_uid); - $bpmnStruct["LANESET"] = \BpmnLaneset::getAll($this->$prj_uid); - $bpmnStruct["PARTICIPANT"] = \BpmnParticipant::getAll($this->$prj_uid); - $bpmnStruct["PROCESS"] = \BpmnProcess::getAll($this->$prj_uid); - $bpmnStruct["PROJECT"] = array(\BpmnProjectPeer::retrieveByPK($this->$prj_uid)->toArray()); + $bpmnStruct["FLOW"] = \BpmnFlow::getAll($prj_uid, null, null, "", CASE_UPPER, false); + $bpmnStruct["GATEWAY"] = \BpmnGateway::getAll($prj_uid); + $bpmnStruct["LANE"] = \BpmnLane::getAll($prj_uid); + $bpmnStruct["LANESET"] = \BpmnLaneset::getAll($prj_uid); + $bpmnStruct["PARTICIPANT"] = \BpmnParticipant::getAll($prj_uid); + $bpmnStruct["PROCESS"] = \BpmnProcess::getAll($prj_uid); + $bpmnStruct["PROJECT"] = array(\BpmnProjectPeer::retrieveByPK($prj_uid)->toArray()); $oProcess = new \Processes(); $oData = new \StdClass(); diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project.php b/workflow/engine/src/ProcessMaker/Services/Api/Project.php index 943f79232..64f41e973 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project.php @@ -143,8 +143,9 @@ class Project extends Api */ public function exportGranular($prj_uid, $objects) { + $objects = \G::json_decode($objects); $granularExporter = new GranularExporter($prj_uid); - $outputFilename = $granularExporter->export($objects); + $outputFilename = $granularExporter->export($objects->objectList); $httpStream = new HttpStream(); $fileExtension = pathinfo($outputFilename, PATHINFO_EXTENSION);