From 0df337393d37d474b69bc9e2bbc023d4ce09c03c Mon Sep 17 00:00:00 2001 From: dheeyi Date: Wed, 13 May 2015 14:49:24 -0400 Subject: [PATCH 1/4] PM-2624 --- gulliver/thirdparty/phpmailer/class.smtp.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulliver/thirdparty/phpmailer/class.smtp.php b/gulliver/thirdparty/phpmailer/class.smtp.php index 3d4b9ce00..45abc8694 100755 --- a/gulliver/thirdparty/phpmailer/class.smtp.php +++ b/gulliver/thirdparty/phpmailer/class.smtp.php @@ -305,7 +305,7 @@ class SMTP { break; case 'LOGIN': // Start authentication - fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); + @fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); $rply = $this->get_lines(); $code = substr($rply,0,3); From a7eb706a58bc66a69eab73b4fdcd4753e5dc7acf Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Wed, 13 May 2015 15:44:28 -0400 Subject: [PATCH 2/4] PM-1238 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Al crear el PMFEvaluateFunction los parametros dela funcion no esta correctamente establecidos solucion para el diseƱr clasico, en el nuevo no se presenta el problema --- workflow/engine/methods/triggers/triggers_WizardSave.php | 4 ++-- workflow/engine/methods/triggers/triggers_WizardUpdate.php | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/workflow/engine/methods/triggers/triggers_WizardSave.php b/workflow/engine/methods/triggers/triggers_WizardSave.php index 05655150b..8416ea954 100755 --- a/workflow/engine/methods/triggers/triggers_WizardSave.php +++ b/workflow/engine/methods/triggers/triggers_WizardSave.php @@ -63,7 +63,7 @@ foreach ($aInfoFunction as $k => $v) { } if ($aDataTriggers[$sOptionTrigger] != '') { - if ((strstr($aDataTriggers[$sOptionTrigger], "@@"))) { + if ((strstr($aDataTriggers[$sOptionTrigger], "@@")) || ($aDataTriggers['PMFUNTION_NAME'] == 'evaluateFunction' && $k == 0 && strstr($aDataTriggers[$sOptionTrigger], "@="))) { $option = trim($aDataTriggers[$sOptionTrigger]); } else { @@ -81,7 +81,7 @@ foreach ($aInfoFunction as $k => $v) { $option = floatval($aDataTriggers[$sOptionTrigger]); break; default: - $option = (is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim($aDataTriggers[$sOptionTrigger]) : (strstr($aDataTriggers[$sOptionTrigger], "'.array.'")) ? trim($aDataTriggers[$sOptionTrigger]) : "'" . trim($aDataTriggers[$sOptionTrigger]) . "'"; + $option = (is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim($aDataTriggers[$sOptionTrigger]) : (strstr($aDataTriggers[$sOptionTrigger], "'.array.'")) ? trim($aDataTriggers[$sOptionTrigger]) : '"' . trim($aDataTriggers[$sOptionTrigger]) . '"'; break; } } diff --git a/workflow/engine/methods/triggers/triggers_WizardUpdate.php b/workflow/engine/methods/triggers/triggers_WizardUpdate.php index 33c545186..0d4799373 100755 --- a/workflow/engine/methods/triggers/triggers_WizardUpdate.php +++ b/workflow/engine/methods/triggers/triggers_WizardUpdate.php @@ -66,7 +66,7 @@ foreach ($aInfoFunction as $k => $v) { } if ($aDataTriggers[$sOptionTrigger] != '') { - if ((strstr($aDataTriggers[$sOptionTrigger], "@@"))) { + if ((strstr($aDataTriggers[$sOptionTrigger], "@@")) || ($aDataTriggers['PMFUNTION_NAME'] == 'evaluateFunction' && $k == 0 && strstr($aDataTriggers[$sOptionTrigger], "@="))) { $option = $aDataTriggers[$sOptionTrigger]; } else { @@ -84,7 +84,7 @@ foreach ($aInfoFunction as $k => $v) { $option = floatval($aDataTriggers[$sOptionTrigger]); break; default: - $option = (is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim($aDataTriggers[$sOptionTrigger]) : (strstr($aDataTriggers[$sOptionTrigger], "array")) ? trim($aDataTriggers[$sOptionTrigger]) : "'" . trim($aDataTriggers[$sOptionTrigger]) . "'"; + $option = (is_numeric($aDataTriggers[$sOptionTrigger]) || is_bool($aDataTriggers[$sOptionTrigger]) ) ? trim($aDataTriggers[$sOptionTrigger]) : (strstr($aDataTriggers[$sOptionTrigger], "array")) ? trim($aDataTriggers[$sOptionTrigger]) : '"' . trim($aDataTriggers[$sOptionTrigger]) . '"'; break; } } From a4c19ceadf1a7c7c078b0149be6cf59ccb277091 Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Thu, 14 May 2015 10:45:33 -0400 Subject: [PATCH 3/4] PM-2627 Admin>Settings>Process Categories: No se tiene una validacion al crear un process categories en blanco, solo se pone rojo la caja de texto Se agrego un mensaje al momento de validar el campo requerido. --- .../engine/templates/processCategory/processCategoryList.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/workflow/engine/templates/processCategory/processCategoryList.js b/workflow/engine/templates/processCategory/processCategoryList.js index b3de47df1..6f07b70e8 100755 --- a/workflow/engine/templates/processCategory/processCategoryList.js +++ b/workflow/engine/templates/processCategory/processCategoryList.js @@ -319,7 +319,10 @@ CloseWindow = function(){ SaveNewCategory = function(){ catName = newForm.getForm().findField('category').getValue(); catName = catName.trim(); - if (catName == '') return; + if (catName == '') { + Ext.Msg.alert(_('ID_WARNING'), _("ID_FIELD_REQUIRED", _("ID_CATEGORY_NAME"))); + return; + } viewport.getEl().mask(_('ID_PROCESSING')); Ext.Ajax.request({ url: 'processCategory_Ajax', From e5c79b6813477d422fddd535a7971564491274c4 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Fri, 15 May 2015 12:30:09 -0400 Subject: [PATCH 4/4] PM-2685 "Error al importar y sobre-escribir un proceso que ya" SOLVED Issue: Error al importar y sobre-escribir un proceso que ya cuenta con casos (By Yanine's Team) Cause: Al tratar de sobre-escribir el proceso verifica si este tiene casos, en caso de tener casos lanza una excepcion Solution: - Se evita que lanze la excepcion - Los casos del proceso se mantienen --- .../src/ProcessMaker/Importer/Importer.php | 3 +- .../Project/Adapter/BpmnWorkflow.php | 6 ++-- .../src/ProcessMaker/Project/Workflow.php | 33 +++++++++++-------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index a240f90cd..acfd02087 100755 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -259,8 +259,7 @@ abstract class Importer public function removeProject() { $project = \ProcessMaker\Project\Adapter\BpmnWorkflow::load($this->metadata["uid"]); - $force = true; - $project->remove($force); + $project->remove(true, false); } /** diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index a771b0488..1fb12390e 100755 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -1038,10 +1038,10 @@ class BpmnWorkflow extends Project\Bpmn } } - public function remove($force = false) + public function remove($flagForceRemoveProject = false, $flagRemoveCases = true) { - parent::remove($force); - $this->wp->remove(); + parent::remove($flagForceRemoveProject); + $this->wp->remove($flagRemoveCases); } public static function createFromStruct(array $projectData, $generateUid = true) diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index e2c8a3eb9..d6118205e 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -106,11 +106,11 @@ class Workflow extends Handler $process->update($data); } - public function remove() + public function remove($flagRemoveCases = true) { try { self::log("Remove Process with uid: {$this->proUid}"); - $this->deleteProcess($this->proUid); + $this->deleteProcess($this->proUid, $flagRemoveCases); self::log("Remove Process Success!"); } catch (\Exception $e) { self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString()); @@ -559,7 +559,7 @@ class Workflow extends Handler } } - public function deleteProcess($sProcessUID) + public function deleteProcess($sProcessUID, $flagRemoveCases = true) { try { //G::LoadClass('case'); @@ -580,17 +580,24 @@ class Workflow extends Handler $oReportTable = new \ReportTables(); $oCaseTracker = new \CaseTracker(); $oCaseTrackerObject = new \CaseTrackerObject(); - //Delete the applications of process - $oCriteria = new \Criteria('workflow'); - $oCriteria->add(\ApplicationPeer::PRO_UID, $sProcessUID); - $oDataset = \ApplicationPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - $oCase = new \Cases(); - while ($aRow = $oDataset->getRow()) { - $oCase->removeCase($aRow['APP_UID']); - $oDataset->next(); + //Delete the applications of process + if ($flagRemoveCases) { + $case = new \Cases(); + + $criteria = new \Criteria("workflow"); + + $criteria->addSelectColumn(\ApplicationPeer::APP_UID); + $criteria->add(\ApplicationPeer::PRO_UID, $sProcessUID, \Criteria::EQUAL); + + $rsCriteria = \ApplicationPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + + $result = $case->removeCase($row["APP_UID"]); + } } //Delete the tasks of process