diff --git a/.gitignore b/.gitignore
index b951fad8a..9316009db 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-bproject
+nbproject/*
workflow/engine/config/paths_installed.php
gulliver/thirdparty/html2ps_pdf/cache
workflow/engine/content/languages/translations.environments
diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php
index 4950006a9..31568ac60 100755
--- a/workflow/engine/classes/class.derivation.php
+++ b/workflow/engine/classes/class.derivation.php
@@ -182,6 +182,7 @@ class Derivation
if ((int)($arrayRouteData["ROU_DEFAULT"]) == 1) {
$arrayNextTaskDefault = $arrayRouteData;
+ continue;
}
$flagContinue = true;
@@ -830,8 +831,16 @@ class Derivation
foreach ($aFields as $sOriginField => $sTargetField) {
$sOriginField = str_replace( '@', '', $sOriginField );
$sOriginField = str_replace( '#', '', $sOriginField );
+ $sOriginField = str_replace( '%', '', $sOriginField );
+ $sOriginField = str_replace( '?', '', $sOriginField );
+ $sOriginField = str_replace( '$', '', $sOriginField );
+ $sOriginField = str_replace( '=', '', $sOriginField );
$sTargetField = str_replace( '@', '', $sTargetField );
$sTargetField = str_replace( '#', '', $sTargetField );
+ $sTargetField = str_replace( '%', '', $sTargetField );
+ $sTargetField = str_replace( '?', '', $sTargetField );
+ $sTargetField = str_replace( '$', '', $sTargetField );
+ $sTargetField = str_replace( '=', '', $sTargetField );
$aNewFields[$sTargetField] = isset( $appFields['APP_DATA'][$sOriginField] ) ? $appFields['APP_DATA'][$sOriginField] : '';
}
@@ -917,8 +926,16 @@ class Derivation
foreach ($aFields as $sOriginField => $sTargetField) {
$sOriginField = str_replace( '@', '', $sOriginField );
$sOriginField = str_replace( '#', '', $sOriginField );
+ $sOriginField = str_replace( '%', '', $sOriginField );
+ $sOriginField = str_replace( '?', '', $sOriginField );
+ $sOriginField = str_replace( '$', '', $sOriginField );
+ $sOriginField = str_replace( '=', '', $sOriginField );
$sTargetField = str_replace( '@', '', $sTargetField );
$sTargetField = str_replace( '#', '', $sTargetField );
+ $sTargetField = str_replace( '%', '', $sTargetField );
+ $sTargetField = str_replace( '?', '', $sTargetField );
+ $sTargetField = str_replace( '$', '', $sTargetField );
+ $sTargetField = str_replace( '=', '', $sTargetField );
$aNewFields[$sTargetField] = isset( $appFields['APP_DATA'][$sOriginField] ) ? $appFields['APP_DATA'][$sOriginField] : '';
}
$aParentCase['APP_DATA'] = array_merge( $aParentCase['APP_DATA'], $aNewFields );
diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php
index 8b1b05123..fe25aab0b 100644
--- a/workflow/engine/classes/class.pmDynaform.php
+++ b/workflow/engine/classes/class.pmDynaform.php
@@ -37,7 +37,8 @@ class pmDynaform
}
}
}
- if(!empty($app_data)){
+
+ if(!empty($app_data) && isset($app_data["APPLICATION"])){
//data
$cases = new \ProcessMaker\BusinessModel\Cases();
$this->data = $cases->getCaseVariables($app_data["APPLICATION"]);
@@ -146,9 +147,19 @@ class pmDynaform
$items[$key]->data = $rows;
}
if ($items[$key]->type !== "grid") {
+ $value = "";
+ $label = "";
+ if (isset($this->data[$items[$key]->name . "_label"])) {
+ $value = $this->data[$items[$key]->name];
+ $label = $this->data[$items[$key]->name . "_label"];
+ }
+ if (isset($this->data[$items[$key]->name . "_value"])) {
+ $value = $this->data[$items[$key]->name . "_value"];
+ $label = $this->data[$items[$key]->name];
+ }
$items[$key]->data = array(
- "value" => $this->data[$items[$key]->name],
- "label" => $this->searchValues($items[$key]->name, $this->data[$items[$key]->name])
+ "value" => $value,
+ "label" => $label
);
}
}
diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php
index 1e9d16d70..326f7d8d5 100644
--- a/workflow/engine/classes/class.pmScript.php
+++ b/workflow/engine/classes/class.pmScript.php
@@ -491,6 +491,9 @@ class PMScript
}
}
$sScript .= substr( $this->sScript, $iAux );
+ if(preg_match('/\b(or|and|xor)\b/i' , $sScript)) {
+ $sScript = "( ".$sScript." )";
+ }
$sScript = '$bResult = ' . $sScript . ';';
// checks if the syntax is valid or if the variables in that condition has been previously defined
if ($this->validSyntax( $sScript ) && $variableIsDefined) {
diff --git a/workflow/engine/classes/model/OutputDocument.php b/workflow/engine/classes/model/OutputDocument.php
index 07e2d227f..7a0e2fd64 100755
--- a/workflow/engine/classes/model/OutputDocument.php
+++ b/workflow/engine/classes/model/OutputDocument.php
@@ -200,7 +200,7 @@ class OutputDocument extends BaseOutputDocument
$genLink = 'Download the file';
}
$description .= ", By clicking on the generated file link: ".$genLink;
- G::auditLog("CreateOuputDocument", $description);
+ G::auditLog("CreateOutputDocument", $description);
return $aData['OUT_DOC_UID'];
} else {
@@ -286,7 +286,7 @@ class OutputDocument extends BaseOutputDocument
if (isset($aData['OUT_DOC_TEMPLATE'])) {
$description .= ", [EDIT TEMPLATE]";
}
- G::auditLog("UpdateOuputDocument", $description);
+ G::auditLog("UpdateOutputDocument", $description);
return $iResult;
} else {
@@ -330,7 +330,7 @@ class OutputDocument extends BaseOutputDocument
$iResult = $oOutputDocument->delete();
$oConnection->commit();
//Add Audit Log
- G::auditLog("DeleteOuputDocument", "Output Document Name: ".$outputName.", Output Document Uid: ".$sOutDocUid.", Description: ".$outputDesc.", Filename generated: ".$outputFile);
+ G::auditLog("DeleteOutputDocument", "Output Document Name: ".$outputName.", Output Document Uid: ".$sOutDocUid.", Description: ".$outputDesc.", Filename generated: ".$outputFile);
return $iResult;
} else {
diff --git a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js
index 8595a60b6..7c3d77aaa 100644
--- a/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js
+++ b/workflow/engine/js/cases/core/cases_Step_Pmdynaform.js
@@ -22,10 +22,6 @@ function dynaFormChanged(frm) {
return false;
}
$(window).load(function () {
- /*if ((navigator.userAgent.indexOf("MSIE") !== -1) || (navigator.userAgent.indexOf("Trident") !== -1)) {
- document.body.innerHTML = "
Responsive Dynaforms are not supported in this browser.
";
- return;
- }*/
if (pm_run_outside_main_app === 'true') {
if (parent.showCaseNavigatorPanel) {
parent.showCaseNavigatorPanel('DRAFT');
@@ -49,7 +45,7 @@ $(window).load(function () {
submitRest: false
});
new PMDynaform.core.Proxy({
- url: "http://" + window.project.keys.server + ":"+port +"/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables",
+ url: "http://" + window.project.keys.server + "/" + window.project.keys.apiName + "/" + window.project.keys.apiVersion + "/" + window.project.keys.workspace + "/cases/" + app_uid + "/variables",
method: 'GET',
data: {},
keys: window.project.token,
diff --git a/workflow/engine/methods/patterns/patterns_Ajax.php b/workflow/engine/methods/patterns/patterns_Ajax.php
index a4dd11346..3bef04210 100755
--- a/workflow/engine/methods/patterns/patterns_Ajax.php
+++ b/workflow/engine/methods/patterns/patterns_Ajax.php
@@ -34,31 +34,35 @@ $oTasks = new Tasks();
$rou_id = 0;
switch ($aData['action']) {
case 'savePattern':
- //if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD'])
- //{
+ //if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD'])
+ //{
$oTasks->deleteAllRoutesOfTask( $aData['PROCESS'], $aData['TASK'] );
- //}
+ //}
require_once 'classes/model/Route.php';
$oRoute = new Route();
switch ($aData['ROU_TYPE']) {
case 'SEQUENTIAL':
- case 'SEC-JOIN':
- /*if ($aData['ROU_UID'] != '')
- {
- $aFields['ROU_UID'] = $aData['ROU_UID'];
- }*/
+ case 'SEC-JOIN':
+ /*if ($aData['ROU_UID'] != '')
+ {
+ $aFields['ROU_UID'] = $aData['ROU_UID'];
+ }*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
$aFields['ROU_NEXT_TASK'] = $aData['ROU_NEXT_TASK'];
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
- //$aFields['ROU_TO_LAST_USER'] = $aData['ROU_TO_LAST_USER'];
+ //$aFields['ROU_TO_LAST_USER'] = $aData['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create( $aFields );
break;
case 'SELECT':
+ $tasksAffected='';
+ $oTaskSavePattern = new Task();
+ $taskInfo=$oTaskSavePattern->load($aData['TASK']);
+ $titleTask=$taskInfo['TAS_TITLE'];
foreach ($aData['GRID_SELECT_TYPE'] as $iKey => $aRow) {
- /*if ($aRow['ROU_UID'] != '')
- {
- $aFields['ROU_UID'] = $aRow['ROU_UID'];
+ /*if ($aRow['ROU_UID'] != '')
+ {
+ $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
@@ -66,16 +70,40 @@ switch ($aData['action']) {
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
- //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
+ //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create( $aFields );
+ if ($aRow['ROU_NEXT_TASK']=='-1') {
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }else{
+ $oTaskSaveNextPattern = new Task();
+ $taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
+ $titleNextTask=$taskNextInfo['TAS_TITLE'];
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }
unset( $aFields );
}
+ $oProcessNewPattern = new Process();
+ $processInfo = $oProcessNewPattern->load($aData['PROCESS']);
+ $titleProcess = $processInfo['PRO_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
break;
case 'EVALUATE':
+ $tasksAffected='';
+ $oTaskSavePattern = new Task();
+ $taskInfo=$oTaskSavePattern->load($aData['TASK']);
+ $titleTask=$taskInfo['TAS_TITLE'];
foreach ($aData['GRID_EVALUATE_TYPE'] as $iKey => $aRow) {
- /*if ($aRow['ROU_UID'] != '')
- {
- $aFields['ROU_UID'] = $aRow['ROU_UID'];
+ /*if ($aRow['ROU_UID'] != '')
+ {
+ $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
@@ -83,16 +111,40 @@ switch ($aData['action']) {
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$aFields['ROU_CONDITION'] = $aRow['ROU_CONDITION'];
- //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
+ //$aFields['ROU_TO_LAST_USER'] = $aRow['ROU_TO_LAST_USER'];
$rou_id = $oRoute->create( $aFields );
+ if ($aRow['ROU_NEXT_TASK']=='-1') {
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }else{
+ $oTaskSaveNextPattern = new Task();
+ $taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
+ $titleNextTask=$taskNextInfo['TAS_TITLE'];
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }
unset( $aFields );
}
+ $oProcessNewPattern = new Process();
+ $processInfo = $oProcessNewPattern->load($aData['PROCESS']);
+ $titleProcess = $processInfo['PRO_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
break;
case 'PARALLEL':
+ $tasksAffected='';
+ $oTaskSavePattern = new Task();
+ $taskInfo=$oTaskSavePattern->load($aData['TASK']);
+ $titleTask=$taskInfo['TAS_TITLE'];
foreach ($aData['GRID_PARALLEL_TYPE'] as $iKey => $aRow) {
- /*if ($aRow['ROU_UID'] != '')
- {
- $aFields['ROU_UID'] = $aRow['ROU_UID'];
+ /*if ($aRow['ROU_UID'] != '')
+ {
+ $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
@@ -100,14 +152,26 @@ switch ($aData['action']) {
$aFields['ROU_CASE'] = $iKey;
$aFields['ROU_TYPE'] = $aData['ROU_TYPE'];
$rou_id = $oRoute->create( $aFields );
+ $oTaskSaveNextPattern = new Task();
+ $taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
+ $titleNextTask=$taskNextInfo['TAS_TITLE'];
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' ; ';
unset( $aFields );
}
+ $oProcessNewPattern = new Process();
+ $processInfo = $oProcessNewPattern->load($aData['PROCESS']);
+ $titleProcess = $processInfo['PRO_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
break;
case 'PARALLEL-BY-EVALUATION':
+ $tasksAffected='';
+ $oTaskSavePattern = new Task();
+ $taskInfo=$oTaskSavePattern->load($aData['TASK']);
+ $titleTask=$taskInfo['TAS_TITLE'];
foreach ($aData['GRID_PARALLEL_EVALUATION_TYPE'] as $iKey => $aRow) {
- /*if ($aRow['ROU_UID'] != '')
- {
- $aFields['ROU_UID'] = $aRow['ROU_UID'];
+ /*if ($aRow['ROU_UID'] != '')
+ {
+ $aFields['ROU_UID'] = $aRow['ROU_UID'];
}*/
$aFields['PRO_UID'] = $aData['PROCESS'];
@@ -119,10 +183,30 @@ switch ($aData['action']) {
if (isset( $aRow['ROU_OPTIONAL'] ) && trim( $aRow['ROU_OPTIONAL'] ) != '' && ($aRow['ROU_OPTIONAL'] === 'TRUE' || $aRow['ROU_OPTIONAL'] === 'FALSE'))
$aFields['ROU_OPTIONAL'] = $aRow['ROU_OPTIONAL'];
$rou_id = $oRoute->create( $aFields );
+ if ($aRow['ROU_NEXT_TASK']=='-1') {
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> Empty; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To End Of Process Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }else{
+ $oTaskSaveNextPattern = new Task();
+ $taskNextInfo=$oTaskSaveNextPattern->load($aRow['ROU_NEXT_TASK']);
+ $titleNextTask=$taskNextInfo['TAS_TITLE'];
+ if ($aRow['ROU_CONDITION']=='') {
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> Empty ; ';
+ }else{
+ $tasksAffected.='From -> '.$titleTask.' : '.$aData['TASK'].' To -> '.$titleNextTask.' : '.$aRow['ROU_NEXT_TASK'].' Condition -> '.$aFields['ROU_CONDITION'].' ; ';
+ }
+ }
unset( $aFields );
}
+ $oProcessNewPattern = new Process();
+ $processInfo = $oProcessNewPattern->load($aData['PROCESS']);
+ $titleProcess = $processInfo['PRO_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$aData['PROCESS'].' Change Routing Rule From : '.$aData['ROU_TYPE'].' Details : ROU_TYPE_OLD -> '.$aData['ROU_TYPE_OLD']. ' ROU_TYPE ->'.$aData['ROU_TYPE']. ' '.$tasksAffected);
break;
- case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route
+ case 'DISCRIMINATOR': //Girish ->Added to save changes, while editing the route
foreach ($aData['GRID_DISCRIMINATOR_TYPE'] as $iKey => $aRow) {
$aFields['PRO_UID'] = $aData['PROCESS'];
$aFields['TAS_UID'] = $aData['TASK'];
diff --git a/workflow/engine/methods/processes/processes_Ajax.php b/workflow/engine/methods/processes/processes_Ajax.php
index 13f9324d2..2781def1a 100755
--- a/workflow/engine/methods/processes/processes_Ajax.php
+++ b/workflow/engine/methods/processes/processes_Ajax.php
@@ -341,7 +341,7 @@ try {
} else {
switch ($oData->type) {
case 0:
- $oData->type = 'SEQUENTIAL';
+ $oData->type = 'SEQUENTIAL';
break;
case 1:
$oData->type = 'SELECT';
@@ -359,7 +359,7 @@ try {
$oData->type = 'SEC-JOIN';
break;
case 8:
- $oData->type = 'DISCRIMINATOR';
+ $oData->type = 'DISCRIMINATOR';
break;
}
$oProcessMap->newPattern($oData->pro_uid, $oData->tas_uid, $oData->next_task, $oData->type);
@@ -369,24 +369,96 @@ try {
switch ($oData->type) {
case 0:
$sType = 'SEQUENTIAL';
+ $oProcessNewPattern = new Process();
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ if ($titleNextTask=='') {
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : END OF PROCESS Task Name -> '.$titleTask.' : '.$oData->tas_uid);
+ }else{
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
+ }
break;
case 1:
$sType = 'SELECT';
+ $oProcessNewPattern = new Process();
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
case 2:
$sType = 'EVALUATE';
+ $oProcessNewPattern = new Process();
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
case 3:
$sType = 'PARALLEL';
+ $oProcessNewPattern = new Process();
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
case 4:
$sType = 'PARALLEL-BY-EVALUATION';
+ $oProcessNewPattern = new Process();
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
case 5:
$sType = 'SEC-JOIN';
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
case 8:
$sType = 'DISCRIMINATOR';
+ $taskProcess=$oProcessNewPattern->load($oData->pro_uid);
+ $titleProcess=$taskProcess['PRO_TITLE'];
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($oData->tas_uid);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $oTaskNextNewPattern = new Task();
+ $taskNextInfo=$oTaskNextNewPattern->load($oData->next_task);
+ $titleNextTask=$$taskNextInfo['TAS_TITLE'];
+ G::auditLog("DerivationRule",'PROCESS NAME : '.$titleProcess.' : '.$oData->pro_uid.' Routing rule : '.$sType.' from -> '.$titleTask.' : '.$oData->tas_uid.' To -> '.$titleNextTask.' : '.$oData->next_task);
break;
}
if (($oData->type != 0) && ($oData->type != 5) && ($oData->type != 8)) {
diff --git a/workflow/engine/methods/tasks/tasks_Ajax.php b/workflow/engine/methods/tasks/tasks_Ajax.php
index 1215d5410..5d492c7ab 100755
--- a/workflow/engine/methods/tasks/tasks_Ajax.php
+++ b/workflow/engine/methods/tasks/tasks_Ajax.php
@@ -117,7 +117,16 @@ try {
}
$result = $oTask->update( $aData );
-
+ $oTaskNewPattern = new Task();
+ $taskInfo=$oTaskNewPattern->load($aData['TAS_UID']);
+ $titleTask=$taskInfo['TAS_TITLE'];
+ $values='';
+ foreach ($aData as $key => $value){
+ if ($value!='') {
+ $values.=$key.' -> '.$value.' ';
+ }
+ }
+ G::auditLog("OptionsMenuTask","Update Task DETAILS : ".$values);
$response["status"] = "OK";
if ($result == 3) {
diff --git a/workflow/engine/templates/cases/casesList.js b/workflow/engine/templates/cases/casesList.js
index 77c475fc5..82643f2c9 100755
--- a/workflow/engine/templates/cases/casesList.js
+++ b/workflow/engine/templates/cases/casesList.js
@@ -1170,7 +1170,7 @@ Ext.onReady ( function() {
store: userStore,
valueField : 'USR_UID',
displayField:'USR_FULLNAME',
- typeAhead: true,
+ typeAhead: false,
triggerAction: 'all',
emptyText : _('ID_ALL_USERS'),
selectOnFocus : true,
@@ -1178,7 +1178,7 @@ Ext.onReady ( function() {
width: 180,
allowBlank : true,
autocomplete: true,
- typeAhead: true,
+ minChars: 1,
hideTrigger:true,
listeners:{
scope: this,
@@ -1233,6 +1233,15 @@ Ext.onReady ( function() {
doSearch();
}
}
+
+ var resetSuggestButton = {
+ text:'X',
+ ctCls:"pm_search_x_button_des",
+ handler: function(){
+ suggestUser.setValue('');
+ doSearch();
+ }
+ }
textJump = {
xtype: 'numberfield',
@@ -1866,6 +1875,7 @@ Ext.onReady ( function() {
_("ID_USER"),
//comboUser,
suggestUser,
+ resetSuggestButton,
' '
//'-',
//textSearch,