diff --git a/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser b/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser new file mode 100644 index 000000000..fe7977acb Binary files /dev/null and b/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/CSS/4.6.0,24166bfe16a0cc6bd18d813b83121ef2eaf16545,1.ser differ diff --git a/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.6.0,8d03c8ec0e84e7feb92afd4c0f1735841b5fdacf,1.ser b/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.6.0,8d03c8ec0e84e7feb92afd4c0f1735841b5fdacf,1.ser new file mode 100644 index 000000000..f6d3e812b Binary files /dev/null and b/gulliver/thirdparty/HTMLPurifier/HTMLPurifier/DefinitionCache/Serializer/URI/4.6.0,8d03c8ec0e84e7feb92afd4c0f1735841b5fdacf,1.ser differ diff --git a/workflow/engine/bin/tasks/cliAddons.php b/workflow/engine/bin/tasks/cliAddons.php index 27af448db..1fdffd8cf 100644 --- a/workflow/engine/bin/tasks/cliAddons.php +++ b/workflow/engine/bin/tasks/cliAddons.php @@ -21,7 +21,7 @@ EOT /*----------------------------------********---------------------------------*/ CLI::taskName('change-password-hash-method'); CLI::taskDescription(<< \ No newline at end of file +?> diff --git a/workflow/engine/classes/class.net.php b/workflow/engine/classes/class.net.php index 10dd46d50..78e3e2e0a 100755 --- a/workflow/engine/classes/class.net.php +++ b/workflow/engine/classes/class.net.php @@ -213,7 +213,15 @@ class NET } $stat = new Stat(); - $flagTns = (isset($arrayServerData["connectionType"]) && $arrayServerData["connectionType"] == "TNS")? 1 : 0; + if (array_key_exists("connectionType", $arrayServerData) || array_key_exists("DBS_TYPEORACLE", $arrayServerData)) { + if ($arrayServerData["connectionType"] == "TNS" || $arrayServerData["DBS_TYPEORACLE"] == "TNS") { + $flagTns=1; + }else{ + $flagTns=0; + } + }else{ + $flagTns=0; + } if (isset($this->db_user) && (isset($this->db_passwd) || $this->db_passwd == "") && (isset($this->db_sourcename) || $flagTns == 1)) { switch ($pDbDriver) { @@ -323,7 +331,15 @@ class NET set_time_limit( 0 ); $stat = new Stat(); - $flagTns = (isset($arrayServerData["connectionType"]) && $arrayServerData["connectionType"] == "TNS")? 1 : 0; + if (array_key_exists("connectionType", $arrayServerData) || array_key_exists("DBS_TYPEORACLE", $arrayServerData)) { + if ($arrayServerData["connectionType"] == "TNS" || $arrayServerData["DBS_TYPEORACLE"] == "TNS") { + $flagTns=1; + }else{ + $flagTns=0; + } + }else{ + $flagTns=0; + } if (isset($this->db_user) && (isset($this->db_passwd) || $this->db_passwd == "") && (isset($this->db_sourcename) || $flagTns == 1)) { switch ($pDbDriver) { diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index f69f43390..78dd3f11f 100755 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -885,7 +885,7 @@ function PMFSendMessage( if ($result->status_code == 0) { return 1; } else { - error_log($result->message); + error_log($result->message); return 0; } } @@ -1402,8 +1402,8 @@ function WSUnpauseCase ($caseUid, $delIndex, $userUid) * * Add a case note. * - * @name WSAddCaseNote - * @label WS Add case note + * @name WSAddACaseNote + * @label WS Add a case note * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#WSAddCaseNote.28.29 * * @param string(32) | $caseUid | ID of the case | The unique ID of the case. @@ -1539,8 +1539,8 @@ function PMFUserList () //its test was successfull * * Add an Input Document. * - * @name PMFAddInputDocument - * @label PMF Add a input document + * @name PMFAddAnInputDocument + * @label PMF Add an input document * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFAddInputDocument.28.29 * * @param string(32) | $inputDocumentUid | ID of the input document | The unique ID of the input document. @@ -2773,8 +2773,8 @@ function PMFUnpauseCase ($caseUid, $delIndex, $userUid) * * Add case note. * - * @name PMFAddCaseNote - * @label PMF Add case note + * @name PMFAddACaseNote + * @label PMF Add a case note * @link http://wiki.processmaker.com/index.php/ProcessMaker_Functions#PMFAddCaseNote.28.29 * * @param string(32) | $caseUid | ID of the case | The unique ID of the case. diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 513b78ba1..3f0d72746 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -1516,9 +1516,20 @@ class Processes { foreach ($SubProcess as $key => $row) { $oSubProcess = new SubProcess(); - if ($oSubProcess->subProcessExists( $row['SP_UID'] )) { - $oSubProcess->remove( $row['SP_UID'] ); - } + + //if ($oSubProcess->subProcessExists( $row['SP_UID'] )) { + // $oSubProcess->remove( $row['SP_UID'] ); + //} + + //Delete + $criteria = new Criteria("workflow"); + + $criteria->add(SubProcessPeer::PRO_PARENT, $row["PRO_PARENT"], Criteria::EQUAL); + $criteria->add(SubProcessPeer::TAS_PARENT, $row["TAS_PARENT"], Criteria::EQUAL); + + $result = SubProcessPeer::doDelete($criteria); + + //Create $res = $oSubProcess->create( $row ); } return; @@ -2279,14 +2290,16 @@ class Processes try { $map = array(); - foreach ($data->messageType as $key => $value) { - $record = $value; + if (isset($data->messageType)) { + foreach ($data->messageType as $key => $value) { + $record = $value; - if (isset($record["MSGT_UID"])) { - $newUid = $this->getUnusedMessageTypeUid(); + if (isset($record["MSGT_UID"])) { + $newUid = $this->getUnusedMessageTypeUid(); - $map[$record["MSGT_UID"]] = $newUid; - $data->messageType[$key]["MSGT_UID"] = $newUid; + $map[$record["MSGT_UID"]] = $newUid; + $data->messageType[$key]["MSGT_UID"] = $newUid; + } } } @@ -2333,14 +2346,16 @@ class Processes try { $map = array(); - foreach ($data->messageTypeVariable as $key => $value) { - $record = $value; + if (isset($data->messageTypeVariable)) { + foreach ($data->messageTypeVariable as $key => $value) { + $record = $value; - if (isset($record["MSGTV_UID"])) { - $newUid = $this->getUnusedMessageTypeVariableUid(); + if (isset($record["MSGTV_UID"])) { + $newUid = $this->getUnusedMessageTypeVariableUid(); - $map[$record["MSGTV_UID"]] = $newUid; - $data->messageTypeVariable[$key]["MSGTV_UID"] = $newUid; + $map[$record["MSGTV_UID"]] = $newUid; + $data->messageTypeVariable[$key]["MSGTV_UID"] = $newUid; + } } } diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php index 7a0e2fd64..9929c2e7c 100755 --- a/workflow/engine/classes/model/OutputDocument.php +++ b/workflow/engine/classes/model/OutputDocument.php @@ -201,7 +201,7 @@ class OutputDocument extends BaseOutputDocument } $description .= ", By clicking on the generated file link: ".$genLink; G::auditLog("CreateOutputDocument", $description); - + return $aData['OUT_DOC_UID']; } else { $sMessage = ''; @@ -329,9 +329,11 @@ class OutputDocument extends BaseOutputDocument Content::removeContent('OUT_DOC_TEMPLATE', '', $oOutputDocument->getOutDocUid()); $iResult = $oOutputDocument->delete(); $oConnection->commit(); - //Add Audit Log - G::auditLog("DeleteOutputDocument", "Output Document Name: ".$outputName.", Output Document Uid: ".$sOutDocUid.", Description: ".$outputDesc.", Filename generated: ".$outputFile); + //Add Audit Log + G::auditLog("DeleteOutputDocument", "Output Document Name: " . $oOutputDocument->getOutDocTitle() . ", Output Document Uid: " . $sOutDocUid . ", Description: " . $oOutputDocument->getOutDocDescription() . ", Filename generated: " . $oOutputDocument->getOutDocFilename()); + + //Return return $iResult; } else { throw (new Exception('This row doesn\'t exist!')); @@ -845,7 +847,7 @@ class OutputDocument extends BaseOutputDocument $sContent = str_ireplace("", "", $sContent); $sContent = str_replace($nrthtml, $nrt, $sContent); - + $sContent = str_replace("margin-left", "text-indent", $sContent); // define Save file diff --git a/workflow/engine/classes/model/Triggers.php b/workflow/engine/classes/model/Triggers.php index 13321d6d0..0f381703c 100755 --- a/workflow/engine/classes/model/Triggers.php +++ b/workflow/engine/classes/model/Triggers.php @@ -189,7 +189,7 @@ class Triggers extends BaseTriggers $description .= ", Description: ".$aData['TRI_DESCRIPTION']; } G::auditLog("CreateTrigger", $description); - + return $result; } else { $con->rollback(); @@ -240,18 +240,14 @@ class Triggers extends BaseTriggers $con->begin(); $oTri = TriggersPeer::retrieveByPK( $TriUid ); if (!is_null($oTri)) { - $triggerName = $this->getTriTitle(); - $triggerDesc = $this->getTriDescription(); - Content::removeContent( 'TRI_TITLE', '', $this->getTriUid()); - Content::removeContent( 'TRI_DESCRIPTION', '', $this->getTriUid()); + Content::removeContent("TRI_TITLE", "", $TriUid); + Content::removeContent("TRI_DESCRIPTION", "", $TriUid); + $result = $oTri->delete(); $con->commit(); + //Add Audit Log - $description = "Trigger Name: ".$triggerName.", Trigger Uid: ".$TriUid; - if (isset ( $triggerDesc )) { - $description .= ", Description: ".$triggerDesc; - } - G::auditLog("DeleteTrigger", $description); + G::auditLog("DeleteTrigger", "Trigger Name: " . $oTri->getTriTitle() . ", Trigger Uid: " . $TriUid . ", Description: " . $oTri->getTriDescription()); } return $result; } catch (Exception $e) { diff --git a/workflow/engine/methods/processes/processes_Ajax.php b/workflow/engine/methods/processes/processes_Ajax.php index bb3b3555a..01fe49f6e 100755 --- a/workflow/engine/methods/processes/processes_Ajax.php +++ b/workflow/engine/methods/processes/processes_Ajax.php @@ -462,6 +462,7 @@ try { break; case 5: $sType = 'SEC-JOIN'; + $oProcessNewPattern = new Process(); $taskProcess=$oProcessNewPattern->load($oData->pro_uid); $titleProcess=$taskProcess['PRO_TITLE']; $oTaskNewPattern = new Task(); @@ -478,6 +479,7 @@ try { break; case 8: $sType = 'DISCRIMINATOR'; + $oProcessNewPattern = new Process(); $taskProcess=$oProcessNewPattern->load($oData->pro_uid); $titleProcess=$taskProcess['PRO_TITLE']; $oTaskNewPattern = new Task(); diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index 1aef380dc..a240f90cd 100755 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -73,8 +73,7 @@ abstract class Importer { $this->prepare(); - $name = $this->importData["tables"]["bpmn"]["project"][0]["prj_name"]; - + //Verify data switch ($option) { case self::IMPORT_OPTION_CREATE_NEW: if ($this->targetExists()) { @@ -94,23 +93,12 @@ abstract class Importer self::IMPORT_STAT_TARGET_ALREADY_EXISTS ); } - $generateUid = false; break; case self::IMPORT_OPTION_OVERWRITE: - $this->removeProject(); - // this option shouldn't generate new uid for all objects - $generateUid = false; break; case self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW: - $this->disableProject(); - // this option should generate new uid for all objects - $generateUid = true; - $name = "New - " . $name . " - " . date("M d, H:i"); break; case self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW: - // this option should generate new uid for all objects - $generateUid = true; - $name = \G::LoadTranslation("ID_COPY_OF") . " - " . $name . " - " . date("M d, H:i"); break; } @@ -149,6 +137,36 @@ abstract class Importer break; } + //Import + $name = $this->importData["tables"]["bpmn"]["project"][0]["prj_name"]; + + switch ($option) { + case self::IMPORT_OPTION_CREATE_NEW: + //Shouldn't generate new UID for all objects + $generateUid = false; + break; + case self::IMPORT_OPTION_OVERWRITE: + //Shouldn't generate new UID for all objects + $this->removeProject(); + + $generateUid = false; + break; + case self::IMPORT_OPTION_DISABLE_AND_CREATE_NEW: + //Should generate new UID for all objects + $this->disableProject(); + + $name = "New - " . $name . " - " . date("M d, H:i"); + + $generateUid = true; + break; + case self::IMPORT_OPTION_KEEP_WITHOUT_CHANGING_AND_CREATE_NEW: + //Should generate new UID for all objects + $name = \G::LoadTranslation("ID_COPY_OF") . " - " . $name . " - " . date("M d, H:i"); + + $generateUid = true; + break; + } + $this->importData["tables"]["bpmn"]["project"][0]["prj_name"] = $name; $this->importData["tables"]["bpmn"]["diagram"][0]["dia_name"] = $name; $this->importData["tables"]["bpmn"]["process"][0]["pro_name"] = $name; diff --git a/workflow/engine/src/ProcessMaker/Project/Workflow.php b/workflow/engine/src/ProcessMaker/Project/Workflow.php index 688023b9d..c46911cfc 100755 --- a/workflow/engine/src/ProcessMaker/Project/Workflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Workflow.php @@ -764,6 +764,13 @@ class Workflow extends Handler $oCriteria->add(\CaseTrackerObjectPeer::PRO_UID, $sProcessUID); \ProcessUserPeer::doDelete($oCriteria); + //Delete SubProcess + $criteria = new \Criteria("workflow"); + + $criteria->add(\SubProcessPeer::PRO_PARENT, $sProcessUID, \Criteria::EQUAL); + + $result = \SubProcessPeer::doDelete($criteria); + //Delete WebEntries $webEntry = new \ProcessMaker\BusinessModel\WebEntry(); diff --git a/workflow/engine/templates/cases/open.js b/workflow/engine/templates/cases/open.js index bcd38d4f4..ea9cc3336 100755 --- a/workflow/engine/templates/cases/open.js +++ b/workflow/engine/templates/cases/open.js @@ -30,7 +30,15 @@ function formatAMPM(date, initVal) { minutes = minutes < 10 ? '0'+minutes : minutes; var strTime = hours + ':' + minutes + ' ' + ampm; return strTime; -} +}; + +function isBrowserIE(){ + if ( (navigator.userAgent.indexOf("MSIE")!=-1) || (navigator.userAgent.indexOf("Trident")!=-1) ){ + return true; + } else { + return false; + } +}; Ext.onReady(function(){ openToRevisePanel = function() { @@ -1531,20 +1539,24 @@ Ext.onReady(function(){ TabPanel.setActiveTab(tabId); } else { - TabPanel.add({ - id: tabId, - title: menuSelectedTitle[name], - frameConfig: {name: name + 'Frame', id: name + 'Frame'}, - defaultSrc: uri, - loadMask: {msg: _('ID_LOADING_GRID') + '...'}, - autoWidth: true, - closable: true, - autoScroll: true, - bodyStyle: {height: (PMExt.getBrowser().screen.height - 60) + 'px', overflow: 'auto'} - }).show(); + if(!isBrowserIE()){ + TabPanel.add({ + id: tabId, + title: menuSelectedTitle[name], + frameConfig: {name: name + 'Frame', id: name + 'Frame'}, + defaultSrc: uri, + loadMask: {msg: _('ID_LOADING_GRID') + '...'}, + autoWidth: true, + closable: true, + autoScroll: true, + bodyStyle: {height: (PMExt.getBrowser().screen.height - 60) + 'px', overflow: 'auto'} + }).show(); - TabPanel.doLayout(); - } + TabPanel.doLayout(); + }else{ + var windContainer = window.open(uri,"winContainer"); + } + } } }, failure: function ( result, request) {