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,