From a378a779dd0ab9dc3b6fe38934d50c3ddbda9c6a Mon Sep 17 00:00:00 2001 From: Gustavo Adolfo Cruz Laura Date: Thu, 31 Mar 2016 13:43:28 -0400 Subject: [PATCH] Add exception messages for exceptional inconsistencies cases. --- .../Migrator/GranularImporter.php | 7 ++++-- .../src/ProcessMaker/Importer/Importer.php | 15 ++++++++---- .../src/ProcessMaker/Project/Workflow.php | 23 ++++++++++--------- workflow/engine/templates/processes/main.js | 2 +- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularImporter.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularImporter.php index 3cf266b86..9567821f8 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularImporter.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/GranularImporter.php @@ -169,7 +169,10 @@ class GranularImporter } } } catch (\Exception $e) { - throw $e; + $exception = new ImportException('Please review your current process definition + for missing elements, it\'s recommended that a new process should be exported + with all the elements.'); + throw $exception; } } @@ -186,7 +189,7 @@ class GranularImporter if ($generateUid) { if (count($objectList) !== count($this->exportObjects->getObjectsList())) { $exception = new ImportException(); - $exception->setNameException(\G::LoadTranslation('ID_PROCESS_DEFINITION_NON_EXISTENT')); + $exception->setNameException(\G::LoadTranslation('ID_PROCESS_DEFINITION_INCOMPLETE')); throw($exception); } } diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index a075a498c..8b1918579 100755 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -5,6 +5,7 @@ use ProcessMaker\Util; use ProcessMaker\Project; use ProcessMaker\Project\Adapter; use ProcessMaker\BusinessModel\Migrator; +use ProcessMaker\BusinessModel\Migrator\ImportException; abstract class Importer { @@ -175,11 +176,17 @@ abstract class Importer } else { $granularObj = new \ProcessMaker\BusinessModel\Migrator\GranularImporter(); $objectList = $granularObj->loadObjectsListSelected($this->importData, $objectsToImport); - foreach($objectList as $rowObject) { - if($rowObject['name'] === 'PROCESSDEFINITION') { - $onlyDiagram = true; - $this->removeProject($onlyDiagram); + try { + foreach ($objectList as $rowObject) { + if ($rowObject['name'] === 'PROCESSDEFINITION') { + $onlyDiagram = true; + $this->removeProject($onlyDiagram); + } } + } catch (\Exception $e) { + $exception = new ImportException($e->getMessage()); + $exception->setNameException(\G::LoadTranslation('ID_PROCESS_DEFINITION_INCOMPLETE')); + throw $exception; } } $name = $this->currentProcessTitle; diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index 5e04dc75d..d3fcb0adc 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -898,19 +898,20 @@ class Workflow extends Handler $emailEvent->delete($sProcessUID,$row["EMAIL_EVENT_UID"],false); } - //Delete files Manager - $filesManager = new \ProcessMaker\BusinessModel\FilesManager(); - $criteria = new \Criteria("workflow"); - $criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID); - $criteria->add(\ProcessFilesPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); - $rsCriteria = \ProcessFilesPeer::doSelectRS($criteria); - $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + if (!$onlyDiagram) { + //Delete files Manager + $filesManager = new \ProcessMaker\BusinessModel\FilesManager(); + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\ProcessFilesPeer::PRF_UID); + $criteria->add(\ProcessFilesPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); + $rsCriteria = \ProcessFilesPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); - while ($rsCriteria->next()) { - $row = $rsCriteria->getRow(); - $filesManager->deleteProcessFilesManager($sProcessUID, $row["PRF_UID"]); + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + $filesManager->deleteProcessFilesManager($sProcessUID, $row["PRF_UID"]); + } } - //Delete the actions by email $oCriteria = new Criteria('workflow'); $oCriteria->add(\AbeConfigurationPeer::PRO_UID, $sProcessUID); diff --git a/workflow/engine/templates/processes/main.js b/workflow/engine/templates/processes/main.js index 74016bd7d..6f3f76e40 100755 --- a/workflow/engine/templates/processes/main.js +++ b/workflow/engine/templates/processes/main.js @@ -1213,7 +1213,7 @@ function exportImportProcessObjects(typeAction) failure : function(o, resp) { var msg = resp.result ? resp.result.msg : resp.response.responseText; Ext.getCmp('objectsToImport').setValue(""); - w.close(); + granularWindow.close(); Ext.MessageBox.show({ title : _('ID_ERROR'), msg : msg,