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); 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; } } 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 diff --git a/workflow/engine/templates/processCategory/processCategoryList.js b/workflow/engine/templates/processCategory/processCategoryList.js index 0c002a44c..b497e4cab 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',