diff --git a/gulliver/thirdparty/pear/Log/file.php b/gulliver/thirdparty/pear/Log/file.php index fa352bcb0..89c14e1de 100755 --- a/gulliver/thirdparty/pear/Log/file.php +++ b/gulliver/thirdparty/pear/Log/file.php @@ -313,7 +313,11 @@ class Log_file extends Log $myPid = PM_PID; //$request variable will have all the values in POST and GET $request = ''; - foreach( $_POST as $k => $v ) $request .= ($request!='' ? "\t" : '') . $k . '='.$v; + foreach( $_POST as $k => $v ){ + if(is_string($v)){ + $request .= ($request!='' ? "\t" : '') . $k . '='.$v; + } + } foreach( $_GET as $k => $v ) $request .= ($request!='' ? "\t" : '') . $k . '='.$v; //exact time with microseconds diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 087fd15e1..16659f03c 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -729,7 +729,7 @@ class Derivation $elementDestType ); - if($elementDestUid == "-1"){ + if($elementDestUid == "-1" || count($arrayElement) == 0){ $arrayElement = $this->throwElementToEnd($elementOriginUid, $rouCondition); } @@ -1063,9 +1063,18 @@ class Derivation $this->case->closeAllDelegations( $currentDelegation['APP_UID'] ); $this->case->closeAllThreads( $currentDelegation['APP_UID'] ); //I think we need to change the APP_STATUS to completed, - - //BpmnEvent - $this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']); + if (isset($nextDel["TAS_UID_DUMMY"]) ) { + $taskDummy = TaskPeer::retrieveByPK($nextDel["TAS_UID_DUMMY"]); + if (preg_match("/^(?:END-MESSAGE-EVENT|END-EMAIL-EVENT)$/", $taskDummy->getTasType())) { + //Throw Events + $this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID_DUMMY"], $appFields, $flagFirstIteration, true); + } else { + $this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']); + } + } else { + //BpmnEvent + $this->throwEventsBetweenElementOriginAndElementDest($currentDelegation["TAS_UID"], $nextDel["TAS_UID"], $appFields, $flagFirstIteration, true, $nextDel['ROU_CONDITION']); + } break; case TASK_FINISH_TASK: $iAppThreadIndex = $appFields['DEL_THREAD']; @@ -1204,8 +1213,15 @@ class Derivation foreach ($arrayTaskNextDelNextDelegations as $key2 => $value2) { $arrayTaskNextDelNextDel = $value2; - if (!isset($arrayTaskNextDelNextDel["NEXT_TASK"]["USER_ASSIGNED"]["USR_UID"])) { - throw new Exception(G::LoadTranslation("ID_NO_USERS")); + if($arrayTaskNextDelNextDel["NEXT_TASK"]["TAS_ASSIGN_TYPE"] == 'MULTIPLE_INSTANCE'){ + $aUserAssigned = true; + if(!isset($arrayTaskNextDelNextDel["NEXT_TASK"]["USER_ASSIGNED"]["0"]["USR_UID"])){ + throw new Exception(G::LoadTranslation("ID_NO_USERS")); + } + } else { + if (!isset($arrayTaskNextDelNextDel["NEXT_TASK"]["USER_ASSIGNED"]["USR_UID"])) { + throw new Exception(G::LoadTranslation("ID_NO_USERS")); + } } $rouPreType = ""; diff --git a/workflow/engine/classes/class.xmlfield_InputPM.php b/workflow/engine/classes/class.xmlfield_InputPM.php index 1b9e334d6..1a35e5e25 100755 --- a/workflow/engine/classes/class.xmlfield_InputPM.php +++ b/workflow/engine/classes/class.xmlfield_InputPM.php @@ -431,7 +431,7 @@ function getDynaformsVars ($sProcessUID, $typeVars = 'all', $bIncMulSelFields = if(is_array($dynaform) && sizeof($dynaform)) { $items = $dynaform['items'][0]['items']; foreach($items as $key => $val){ - if($val[0]['type'] == 'grid'){ + if(isset($val[0]['type']) && $val[0]['type'] == 'grid'){ if(sizeof($val[0]['columns'])) { $columns = $val[0]['columns']; foreach($columns as $column) { diff --git a/workflow/engine/classes/model/ListInbox.php b/workflow/engine/classes/model/ListInbox.php index 0b784e9ec..639b68884 100644 --- a/workflow/engine/classes/model/ListInbox.php +++ b/workflow/engine/classes/model/ListInbox.php @@ -230,6 +230,10 @@ class ListInbox extends BaseListInbox $data['DEL_DUE_DATE'] = $this->getAppDelegationInfo($filters,'DEL_TASK_DUE_DATE'); } + if(isset($data['APP_INIT_DATE'])){ + $data['DEL_INIT_DATE'] = $data['APP_INIT_DATE']; + } + $criteria = new Criteria(); $criteria->addSelectColumn( ApplicationPeer::APP_NUMBER ); $criteria->addSelectColumn( ApplicationPeer::APP_UPDATE_DATE ); @@ -346,6 +350,20 @@ class ListInbox extends BaseListInbox //$users->refreshTotal($dataPreviusApplication['CURRENT_USER_UID'], 'remove', 'inbox'); } } + if ($data['USR_UID'] != '') { + $criteria = new Criteria(); + $criteria->addSelectColumn(UsersPeer::USR_USERNAME); + $criteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); + $criteria->addSelectColumn(UsersPeer::USR_LASTNAME); + $criteria->add( UsersPeer::USR_UID, $data['USR_UID'], Criteria::EQUAL ); + $dataset = UsersPeer::doSelectRS($criteria); + $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $dataset->next(); + $aRow = $dataset->getRow(); + $data['DEL_CURRENT_USR_USERNAME'] = $aRow['USR_USERNAME']; + $data['DEL_CURRENT_USR_FIRSTNAME'] = $aRow['USR_FIRSTNAME']; + $data['DEL_CURRENT_USR_LASTNAME'] = $aRow['USR_LASTNAME']; + } self::create($data, $isSelfService); } diff --git a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php index 173112538..d01de5fce 100644 --- a/workflow/engine/methods/cases/casesConsolidatedListExtJs.php +++ b/workflow/engine/methods/cases/casesConsolidatedListExtJs.php @@ -178,6 +178,12 @@ if (count($arrayTabItem) > 0) { $headPublisher->assign("FORMATS", $conf->getFormats()); $headPublisher->assign("urlProxy", $urlProxy); $headPublisher->assign('credentials', $clientToken ); + + $ieVersion = null; + if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); + } + $oHeadPublisher->assign( 'ieVersion', $ieVersion ); $headPublisher->addExtJsScript("app/main", true); $headPublisher->addExtJsScript("cases/casesListConsolidated", false); //Adding a JavaScript file .js diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index fe2730dba..8c2bd6e15 100755 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -212,7 +212,12 @@ try { $loc = $aNextStep['PAGE']; } //Triggers After - if (isset( $_SESSION['TRIGGER_DEBUG']['ISSET'] )) { + $ieVersion = null; + if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ + $ieVersion = intval($arrayMatch[1]); + } + + if (isset( $_SESSION['TRIGGER_DEBUG']['ISSET'] ) && $ieVersion != 11) { if ($_SESSION['TRIGGER_DEBUG']['ISSET'] == 1) { $oTemplatePower = new TemplatePower( PATH_TPL . 'cases/cases_Step.html' ); $oTemplatePower->prepare(); @@ -230,10 +235,7 @@ try { } //close tab only if IE11 - $ieVersion = null; - if(preg_match("/^.*\(.*MSIE (\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch) || preg_match("/^.*\(.*rv.(\d+)\..+\).*$/", $_SERVER["HTTP_USER_AGENT"], $arrayMatch)){ - $ieVersion = intval($arrayMatch[1]); - } + if($ieVersion == 11 && !isset($_SESSION['__OUTLOOK_CONNECTOR__'])) { $script = "