2010-12-02 23:34:41 +00:00
< ? php
2013-03-05 15:07:55 -04:00
2010-12-02 23:34:41 +00:00
try {
2019-01-16 12:21:17 -04:00
// Validate the access to the actions of this file
if ( ! empty ( $_REQUEST [ 'action' ]) && $_REQUEST [ 'action' ] == 'load' ) {
// Validate if exists the session variable "PROCESS", this action is requested from case tracker and running cases
$cannotAccess = empty ( $_SESSION [ 'PROCESS' ]);
} else {
// Validate PM_FACTORY permission
global $RBAC ;
$cannotAccess = $RBAC -> userCanAccess ( 'PM_FACTORY' ) !== 1 ;
}
if ( $cannotAccess ) {
G :: SendTemporalMessage ( 'ID_USER_HAVENT_RIGHTS_PAGE' , 'error' , 'labels' );
G :: header ( 'Location: ../login/login' );
die ();
}
2015-03-18 17:12:38 -04:00
$filter = new InputFilter ();
$_GET = $filter -> xssFilterHard ( $_GET );
$_POST = $filter -> xssFilterHard ( $_POST );
$_REQUEST = $filter -> xssFilterHard ( $_REQUEST );
2012-11-12 14:44:44 -04:00
2013-03-05 15:07:55 -04:00
if ( isset ( $_REQUEST [ 'data' ])) {
2017-12-04 13:25:35 +00:00
if ( $_REQUEST [ 'action' ] == " addText " || $_REQUEST [ 'action' ] == " updateText " ) {
2013-09-24 10:17:56 -04:00
$oData = Bootstrap :: json_decode ( $_REQUEST [ 'data' ]);
2015-02-19 15:18:37 -04:00
$oDataAux = G :: json_decode ( $_REQUEST [ 'data' ]);
$oDataAux = ( array ) $oDataAux ;
2013-09-24 10:17:56 -04:00
} else {
$oData = Bootstrap :: json_decode ( stripslashes ( $_REQUEST [ 'data' ]));
2015-02-19 15:18:37 -04:00
$oDataAux = G :: json_decode ( stripslashes ( $_REQUEST [ 'data' ]));
$oDataAux = ( array ) $oDataAux ;
2013-09-24 10:17:56 -04:00
}
2012-10-17 11:18:48 -04:00
$sOutput = '' ;
2012-11-22 16:33:58 -04:00
$sTask = '' ;
2015-03-10 14:39:03 -04:00
2017-12-04 13:25:35 +00:00
if ( array_key_exists ( 'pro_uid' , $oDataAux ) || array_key_exists ( 'uid' , $oDataAux ) || array_key_exists ( 'PRO_UID' , $oDataAux ) || array_key_exists ( 'UID' , $oDataAux )) {
if ( array_key_exists ( 'pro_uid' , $oDataAux ) || array_key_exists ( 'PRO_UID' , $oDataAux )) {
if ( array_key_exists ( 'pro_uid' , $oDataAux )) {
2015-02-19 15:18:37 -04:00
$proUid = $oDataAux [ 'pro_uid' ];
} else {
2015-03-10 14:39:03 -04:00
$proUid = $oDataAux [ 'PRO_UID' ];
2015-02-19 15:18:37 -04:00
}
} else {
$proUid = $oDataAux [ 'uid' ];
$uidAux = $proUid ;
}
2015-03-10 14:39:03 -04:00
2015-02-19 15:18:37 -04:00
$infoProcess = new Processes ();
2015-03-10 14:39:03 -04:00
2017-12-04 13:25:35 +00:00
if ( ! $infoProcess -> processExists ( $proUid )) {
2015-02-19 15:18:37 -04:00
$oSL = new SwimlanesElements ();
2017-12-04 13:25:35 +00:00
if ( $oSL -> swimlanesElementsExists ( $proUid )) {
2015-02-19 15:18:37 -04:00
$aFields = $oSL -> load ( $proUid );
$proUid = $aFields [ 'PRO_UID' ];
} else {
$k = new Criteria ( 'workflow' );
$k -> clearSelectColumns ();
$k -> addSelectColumn ( TaskPeer :: PRO_UID );
2017-12-04 13:25:35 +00:00
$k -> add ( TaskPeer :: TAS_UID , $uidAux );
2015-02-19 15:18:37 -04:00
$rs = TaskPeer :: doSelectRS ( $k );
$rs -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$rs -> next ();
$row = $rs -> getRow ();
$proUid = $row [ 'PRO_UID' ];
2015-03-10 14:39:03 -04:00
}
2015-02-19 15:18:37 -04:00
}
2015-03-10 14:39:03 -04:00
$resultProcess = $infoProcess -> getProcessRow ( $proUid );
2015-02-19 15:18:37 -04:00
} else {
2017-12-04 13:25:35 +00:00
if ( array_key_exists ( 'PU_UID' , $oDataAux )) {
2015-02-19 15:18:37 -04:00
$c = new Criteria ( 'workflow' );
$c -> clearSelectColumns ();
$c -> addSelectColumn ( ProcessUserPeer :: PRO_UID );
$c -> addSelectColumn ( ProcessUserPeer :: USR_UID );
$c -> add ( ProcessUserPeer :: PU_UID , $oData -> PU_UID );
$oDataset = AppDelegationPeer :: doSelectRS ( $c );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
$oDataset -> next ();
$row = $oDataset -> getRow ();
$userSupervisor = $row [ 'USR_UID' ];
2015-03-10 14:39:03 -04:00
2015-02-19 15:18:37 -04:00
$infoProcess = new Processes ();
2015-03-10 14:39:03 -04:00
$resultProcess = $infoProcess -> getProcessRow ( $row [ 'PRO_UID' ]);
2015-02-19 15:18:37 -04:00
}
}
}
2015-03-10 14:39:03 -04:00
2017-12-04 13:25:35 +00:00
if ( isset ( $_REQUEST [ 'pro_uid' ]) && ! empty ( $_REQUEST [ 'pro_uid' ]) || isset ( $_REQUEST [ 'PRO_UID' ]) && ! empty ( $_REQUEST [ 'PRO_UID' ])) {
if ( isset ( $_REQUEST [ 'pro_uid' ]) && ! empty ( $_REQUEST [ 'pro_uid' ])) {
2015-02-19 15:18:37 -04:00
$proUid = $_REQUEST [ 'pro_uid' ];
} else {
$proUid = $_REQUEST [ 'PRO_UID' ];
}
2017-02-14 21:24:08 +00:00
2015-02-19 15:18:37 -04:00
$infoProcess = new Processes ();
2015-03-10 14:39:03 -04:00
$resultProcess = $infoProcess -> getProcessRow ( $proUid );
2015-02-19 15:18:37 -04:00
}
2015-02-20 16:34:32 -04:00
2017-12-04 13:25:35 +00:00
if ( isset ( $proUid ) && $proUid != " " ) {
2015-02-19 15:18:37 -04:00
$infoProcess = new Processes ();
2015-03-10 14:39:03 -04:00
if ( ! in_array ( $_REQUEST [ " action " ], array ( " load " ))) {
$infoProcess -> updateProcessRow ( array (
2017-12-04 13:25:35 +00:00
" PRO_UID " => $proUid ,
2015-03-10 14:39:03 -04:00
" PRO_UPDATE_DATE " => date ( " Y-m-d H:i:s " )
));
}
$resultProcess = $infoProcess -> getProcessRow ( $proUid );
2015-02-19 15:18:37 -04:00
}
2015-03-10 14:39:03 -04:00
2022-06-30 18:01:35 -04:00
$oProcessMap = new ProcessMap ();
2015-03-10 14:39:03 -04:00
2012-10-17 11:18:48 -04:00
switch ( $_REQUEST [ 'action' ]) {
case 'load' :
$_SESSION [ 'PROCESS' ] = $oData -> uid ;
if ( $oData -> ct ) {
2017-12-04 13:25:35 +00:00
$sOutput = $oProcessMap -> load ( $oData -> uid , true , $_SESSION [ 'APPLICATION' ], - 1 , $_SESSION [ 'TASK' ], $oData -> ct );
2012-10-17 11:18:48 -04:00
} else {
if ( $oData -> mode ) {
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> load ( $oData -> uid );
2012-10-17 11:18:48 -04:00
} else {
2017-12-04 13:25:35 +00:00
if ( $_SESSION [ 'TASK' ] != - 1 ) {
2012-10-17 11:18:48 -04:00
$taskUid = $_SESSION [ 'TASK' ];
} else {
2013-03-05 15:07:55 -04:00
$c = new Criteria ( 'workflow' );
2012-10-17 11:18:48 -04:00
$c -> clearSelectColumns ();
2013-03-05 15:07:55 -04:00
$c -> addSelectColumn ( AppDelegationPeer :: TAS_UID );
$c -> add ( AppDelegationPeer :: APP_UID , $_SESSION [ 'APPLICATION' ]);
$c -> add ( AppDelegationPeer :: DEL_INDEX , $_SESSION [ 'INDEX' ]);
$oDataset = AppDelegationPeer :: doSelectRS ( $c );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-17 11:18:48 -04:00
$oDataset -> next ();
$aData = $oDataset -> getRow ();
2017-12-04 13:25:35 +00:00
$taskUid = isset ( $aData [ 'TAS_UID' ]) ? $aData [ 'TAS_UID' ] : - 1 ;
2012-10-17 11:18:48 -04:00
}
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> load ( $oData -> uid , true , $_SESSION [ 'APPLICATION' ], $_SESSION [ 'INDEX' ], $taskUid );
2012-10-17 11:18:48 -04:00
}
}
break ;
case 'process_Edit' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> editProcess ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'process_Export' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/processes_Export.php' );
G :: auditLog ( 'ExportProcess' , 'Export process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'process_User' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/processes_User.php' );
2012-10-17 11:18:48 -04:00
break ;
case 'availableProcessesUser' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/processes_availableProcessesUser.php' );
2012-10-17 11:18:48 -04:00
break ;
case 'webEntry_generate' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/processes_webEntryGenerate.php' );
2012-10-17 11:18:48 -04:00
break ;
2010-12-02 23:34:41 +00:00
// add this event to validate de data to create a Web Entry
2012-10-17 11:18:48 -04:00
case 'webEntry_validate' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/processes_webEntryValidate.php' );
2012-10-17 11:18:48 -04:00
break ;
case 'webEntry_delete' :
2017-02-15 16:26:02 +00:00
2016-04-22 14:04:45 -04:00
$filter = new InputFilter ();
2012-10-17 11:18:48 -04:00
$form = $_REQUEST ;
2017-10-10 12:33:25 -04:00
$filePath = PATH_DATA . " sites " . PATH_SEP . config ( " system.workspace " ) . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . $form [ 'FILENAME' ];
2017-03-09 18:24:34 -04:00
if ( file_exists ( $filePath )) {
unlink ( $filter -> validateInput ( $filePath , 'path' ));
$webEntry = new \ProcessMaker\BusinessModel\WebEntry ();
$webEntry -> deleteClassic ( $form [ 'PRO_UID' ], $filePath );
2015-02-19 15:18:37 -04:00
}
2017-10-10 12:33:25 -04:00
$filePath = PATH_DATA . " sites " . PATH_SEP . config ( " system.workspace " ) . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . str_replace ( " .php " , " Post " , $form [ 'FILENAME' ]) . " .php " ;
2017-03-09 18:24:34 -04:00
if ( file_exists ( $filePath )) {
unlink ( $filter -> validateInput ( $filePath , 'path' ));
2015-02-19 15:18:37 -04:00
}
2013-03-05 15:07:55 -04:00
$oProcessMap -> webEntry ( $_REQUEST [ 'PRO_UID' ]);
2017-03-09 18:24:34 -04:00
G :: auditLog ( 'WebEntry' , 'Delete web entry (' . $form [ 'FILENAME' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'webEntry_new' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> webEntry_new ( $oData -> PRO_UID );
2012-10-17 11:18:48 -04:00
break ;
case 'assignProcessUser' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> assignProcessUser ( $oData -> PRO_UID , $oData -> USR_UID , $oData -> TYPE_UID );
2017-02-14 21:24:08 +00:00
2012-10-17 11:18:48 -04:00
$oProcessMap = new ProcessMap ();
2013-03-05 15:07:55 -04:00
$oProcessMap -> listProcessesUser ( $oData -> PRO_UID );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'AssignRole' , 'Assign new supervisor (' . $oData -> USR_UID . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'removeProcessUser' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> removeProcessUser ( $oData -> PU_UID );
2012-10-17 11:18:48 -04:00
foreach ( $_SESSION [ '_DBArray' ][ 'data' ] as $key => $value ) {
if ( $value [ 'LA_PU_UID' ] == $oData -> PU_UID ) {
2013-03-05 15:07:55 -04:00
unset ( $_SESSION [ '_DBArray' ][ 'data' ][ $key ]);
2012-10-17 11:18:48 -04:00
break ;
}
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'RemoveUser' , 'Remove supervisor (' . $userSupervisor . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'supervisorDynaforms' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> supervisorDynaforms ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'supervisorInputs' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> supervisorInputs ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'webEntry' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> webEntry ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'webEntry_Val_Assig' :
2017-12-04 13:25:35 +00:00
include ( PATH_METHODS . 'processes/webEntry_Val_Assig.php' );
2012-10-17 11:18:48 -04:00
break ;
case 'saveTitlePosition' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> saveTitlePosition ( $oData -> pro_uid , $oData -> position -> x , $oData -> position -> y );
2012-10-17 11:18:48 -04:00
break ;
case 'steps' :
switch ( $oData -> option ) {
case 1 :
2013-03-05 15:07:55 -04:00
$oProcessMap -> steps ( $oData -> proUid , $oData -> tasUid );
2012-10-17 11:18:48 -04:00
break ;
case 2 :
2013-03-05 15:07:55 -04:00
$oProcessMap -> stepsConditions ( $oData -> proUid , $oData -> tasUid );
2012-10-17 11:18:48 -04:00
break ;
case 3 :
2013-03-05 15:07:55 -04:00
$oProcessMap -> stepsTriggers ( $oData -> proUid , $oData -> tasUid );
2012-10-17 11:18:48 -04:00
break ;
}
break ;
case 'users' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> users ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'users_adhoc' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> users_adhoc ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'addTask' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> addTask ( $oData -> uid , $oData -> position -> x , $oData -> position -> y );
2015-02-19 15:18:37 -04:00
$sOutputAux = G :: json_decode ( $sOutput );
$sOutputAux = ( array ) $sOutputAux ;
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'AddTask' , 'Add new task (' . $sOutputAux [ 'uid' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'addSubProcess' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> addSubProcess ( $oData -> uid , $oData -> position -> x , $oData -> position -> y );
2015-02-19 15:18:37 -04:00
$sOutputAux = G :: json_decode ( $sOutput );
$sOutputAux = ( array ) $sOutputAux ;
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'AddSubProcess' , 'Add new sub process (' . $sOutputAux [ 'uid' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
2010-12-07 11:49:51 +00:00
case 'taskColor' :
2013-03-05 15:07:55 -04:00
$oTask -> taskColor ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'addTaskHidden' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> addTaskHidden ( $oData -> uid , $oData -> position -> x , $oData -> position -> y );
2012-10-17 11:18:48 -04:00
break ;
case 'editTaskProperties' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> editTaskProperties ( $oData -> uid , ( isset ( $oData -> iForm ) ? $oData -> iForm : 1 ), $oData -> index );
2012-10-17 11:18:48 -04:00
break ;
case 'saveTaskPosition' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> saveTaskPosition ( $oData -> uid , $oData -> position -> x , $oData -> position -> y );
2015-02-19 15:18:37 -04:00
$oTask = new Task ();
$oTask -> load ( $uidAux );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'SaveTaskPosition' , 'Change task position (' . $oTask -> getTasTitle () . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteTask' :
2015-02-19 11:13:15 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
G :: auditlog ( " DeleteTask " , 'Delete Task -> ' . $titleTask . ' : ' . $oData -> tas_uid );
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> deleteTask ( $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'addGuide' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> addGuide ( $oData -> uid , $oData -> position , $oData -> direction );
2015-02-19 15:18:37 -04:00
$sOutputAux = G :: json_decode ( $sOutput );
$sOutputAux = ( array ) $sOutputAux ;
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'Add' . ucwords ( $oDataAux [ 'direction' ]) . 'Line' , 'Add ' . $oDataAux [ 'direction' ] . ' line (' . $sOutputAux [ 'uid' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'saveGuidePosition' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> saveGuidePosition ( $oData -> uid , $oData -> position , $oData -> direction );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'SaveGuidePosition' , 'Change ' . $oData -> direction . ' line position (' . $oData -> uid . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteGuide' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> deleteGuide ( $oData -> uid );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'DeleteLine' , 'Delete line (' . $oData -> uid . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteGuides' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> deleteGuides ( $oData -> pro_uid );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'DeleteLines' , 'Delete all lines in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'addText' :
2015-05-15 13:59:13 -04:00
$sOutput = $oProcessMap -> addText ( $oData -> uid , html_entity_decode ( html_entity_decode ( $oData -> label )), $oData -> position -> x , $oData -> position -> y );
2015-02-19 15:18:37 -04:00
$sOutputAux = G :: json_decode ( $sOutput );
$sOutputAux = ( array ) $sOutputAux ;
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'AddText' , 'Add new text (' . $sOutputAux [ 'uid' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'updateText' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> updateText ( $oData -> uid , $oData -> label );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'UpdateText' , 'Edit text (' . $oData -> uid . ' ) in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'saveTextPosition' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> saveTextPosition ( $oData -> uid , $oData -> position -> x , $oData -> position -> y );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'SaveTextPosition' , 'Change text position (' . $oData -> uid . ' ) in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteText' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> deleteText ( $oData -> uid );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'DeleteText' , 'Delete text (' . $oData -> uid . ' ) in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'dynaforms' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> dynaformsList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'inputs' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> inputdocsList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'outputs' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> outputdocsList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'triggers' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> triggersList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'case_scheduler' :
2013-03-05 15:07:55 -04:00
if ( isset ( $_REQUEST [ 'PRO_UID' ])) {
$oProcessMap -> caseSchedulerList ( $_REQUEST [ 'PRO_UID' ]);
2012-10-17 11:18:48 -04:00
}
break ;
case 'log_case_scheduler' :
2013-03-05 15:07:55 -04:00
if ( isset ( $_REQUEST [ 'PRO_UID' ])) {
$oProcessMap -> logCaseSchedulerList ( $_REQUEST [ 'PRO_UID' ]);
2012-10-17 11:18:48 -04:00
}
break ;
case 'messages' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> messagesList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'reportTables' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> reportTablesList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'derivations' :
2013-03-05 15:07:55 -04:00
if ( ! isset ( $oData -> type )) {
$oProcessMap -> currentPattern ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
} else {
switch ( $oData -> type ) {
case 0 :
2015-03-10 14:39:03 -04:00
$oData -> type = 'SEQUENTIAL' ;
2012-10-17 11:18:48 -04:00
break ;
case 1 :
$oData -> type = 'SELECT' ;
break ;
case 2 :
$oData -> type = 'EVALUATE' ;
break ;
case 3 :
$oData -> type = 'PARALLEL' ;
break ;
case 4 :
$oData -> type = 'PARALLEL-BY-EVALUATION' ;
break ;
case 5 :
$oData -> type = 'SEC-JOIN' ;
break ;
case 8 :
2015-03-10 14:39:03 -04:00
$oData -> type = 'DISCRIMINATOR' ;
2012-10-17 11:18:48 -04:00
break ;
}
2013-03-05 15:07:55 -04:00
$oProcessMap -> newPattern ( $oData -> pro_uid , $oData -> tas_uid , $oData -> next_task , $oData -> type );
2012-10-17 11:18:48 -04:00
}
break ;
case 'saveNewPattern' :
switch ( $oData -> type ) {
2015-02-19 15:18:37 -04:00
case 0 :
2012-10-17 11:18:48 -04:00
$sType = 'SEQUENTIAL' ;
2015-02-18 15:46:59 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
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 );
2015-02-18 12:22:27 -04:00
}
2012-10-17 11:18:48 -04:00
break ;
case 1 :
$sType = 'SELECT' ;
2015-02-18 15:46:59 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
case 2 :
$sType = 'EVALUATE' ;
2015-02-18 15:46:59 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
case 3 :
$sType = 'PARALLEL' ;
2015-02-18 15:46:59 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
case 4 :
$sType = 'PARALLEL-BY-EVALUATION' ;
2015-02-18 15:46:59 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
case 5 :
$sType = 'SEC-JOIN' ;
2015-03-05 13:44:46 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
2010-12-07 11:49:51 +00:00
case 8 :
2012-10-17 11:18:48 -04:00
$sType = 'DISCRIMINATOR' ;
2015-03-05 13:44:46 -04:00
$oProcessNewPattern = new Process ();
2017-12-04 13:25:35 +00:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
if ( $oData -> next_task != " -1 " ) {
$oTaskNextNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
2017-12-04 13:25:35 +00:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2017-12-04 13:25:35 +00:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : ' . $sType . ' from -> ' . $titleTask . ' : ' . $oData -> tas_uid . ' To -> ' . $titleNextTask . ' : ' . $oData -> next_task );
2012-10-17 11:18:48 -04:00
break ;
}
if (( $oData -> type != 0 ) && ( $oData -> type != 5 ) && ( $oData -> type != 8 )) {
2013-03-05 15:07:55 -04:00
if ( $oProcessMap -> getNumberOfRoutes ( $oData -> pro_uid , $oData -> tas_uid , $oData -> next_task , $sType ) > 0 ) {
2012-10-17 11:18:48 -04:00
die ();
}
2013-03-05 15:07:55 -04:00
unset ( $aRow );
2012-10-17 11:18:48 -04:00
}
if (( $oData -> delete ) || ( $oData -> type == 0 ) || ( $oData -> type == 5 ) || ( $oData -> type == 8 )) {
$oTasks = new Tasks ();
2013-03-05 15:07:55 -04:00
$oTasks -> deleteAllRoutesOfTask ( $oData -> pro_uid , $oData -> tas_uid );
$oTasks -> deleteAllGatewayOfTask ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
}
2013-03-05 15:07:55 -04:00
$oProcessMap -> saveNewPattern ( $oData -> pro_uid , $oData -> tas_uid , $oData -> next_task , $sType , $oData -> delete );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteAllRoutes' :
2017-02-14 21:24:08 +00:00
2015-02-19 11:13:15 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
G :: auditlog ( " DeleteRoutes " , 'Delete All Routes From Task -> ' . $titleTask . ' : ' . $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
$oTasks = new Tasks ();
2013-03-05 15:07:55 -04:00
$oTasks -> deleteAllRoutesOfTask ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'objectPermissions' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> objectsPermissionsList ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'newObjectPermission' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> newObjectPermission ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'editObjectPermission' :
// we also need the process uid variable for the function.
2013-03-05 15:07:55 -04:00
$oProcessMap -> editObjectPermission ( $oData -> op_uid , $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'caseTracker' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> caseTracker ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'caseTrackerObjects' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> caseTrackerObjects ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'processFilesManager' :
$_SESSION [ 'PFMDirectory' ] = '' ;
2013-03-05 15:07:55 -04:00
$oProcessMap -> processFilesManager ( $oData -> pro_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'exploreDirectory' :
2013-02-04 16:34:56 -04:00
$_SESSION [ " PFMDirectory " ] = $oData -> main_directory ;
2013-03-05 15:07:55 -04:00
$oProcessMap -> exploreDirectory ( $oData -> pro_uid , $oData -> main_directory , $oData -> directory );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'ProcessFileManager' , 'Upload template (' . $oData -> main_directory . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteFile' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> deleteFile ( $oData -> pro_uid , $oData -> main_directory , $oData -> directory , $oData -> file );
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'ProcessFileManager' , 'Delete template (' . $oData -> main_directory . ': ' . $oData -> file . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteDirectory' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> deleteDirectory ( $oData -> pro_uid , $oData -> main_directory , $oData -> directory , $oData -> dir_to_delete );
2012-10-17 11:18:48 -04:00
break ;
case 'downloadFile' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> downloadFile ( $oData -> pro_uid , $oData -> main_directory , $oData -> directory , $oData -> file );
2012-10-17 11:18:48 -04:00
break ;
case 'deleteSubProcess' :
2015-02-19 11:13:15 -04:00
$oTaskNewPattern = new Task ();
2017-12-04 13:25:35 +00:00
$taskInfo = $oTaskNewPattern -> load ( $oData -> tas_uid );
$titleTask = $taskInfo [ 'TAS_TITLE' ];
G :: auditlog ( " DeleteSubProcess " , 'Delete Sub-Process -> ' . $titleTask . ' : ' . $oData -> tas_uid );
2015-03-23 20:05:15 -04:00
$sOutput = $oProcessMap -> deleteSubProcess ( $oData -> pro_uid , $oData -> tas_uid );
2012-10-17 11:18:48 -04:00
break ;
case 'subProcess_Properties' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> subProcess_Properties ( $oData -> pro_uid , $oData -> tas_uid , $oData -> index );
2012-10-17 11:18:48 -04:00
break ;
case 'showDetailsPMDWL' :
2017-02-14 21:24:08 +00:00
2012-10-17 11:18:48 -04:00
$oProcesses = new Processes ();
$oProcesses -> ws_open_public ();
2013-03-05 15:07:55 -04:00
$aFields = get_object_vars ( $oProcesses -> ws_processGetData ( $oData -> pro_uid ));
2010-12-02 23:34:41 +00:00
2013-03-05 15:07:55 -04:00
$aFields [ 'description' ] = nl2br ( $aFields [ 'description' ]);
$aFields [ 'installSteps' ] = nl2br ( $aFields [ 'installSteps' ]);
2012-10-17 11:18:48 -04:00
switch ( $aFields [ 'privacy' ]) {
case 'FREE' :
2013-03-05 15:07:55 -04:00
$aFields [ 'link_label' ] = G :: LoadTranslation ( 'ID_DOWNLOAD' );
2012-10-17 11:18:48 -04:00
$aFields [ 'link_href' ] = '../processes/downloadPML?id=' . $oData -> pro_uid . '&s=' . $sessionId ;
break ;
case 'PUBLIC' :
require_once 'classes/model/Configuration.php' ;
2013-03-05 15:07:55 -04:00
$oCriteria = new Criteria ( 'workflow' );
$oCriteria -> addSelectColumn ( ConfigurationPeer :: CFG_VALUE );
$oCriteria -> add ( ConfigurationPeer :: CFG_UID , 'REGISTER_INFORMATION' );
$oCriteria -> add ( ConfigurationPeer :: USR_UID , $_SESSION [ 'USER_LOGGED' ]);
if ( ConfigurationPeer :: doCount ( $oCriteria ) > 0 ) {
$oDataset = ConfigurationPeer :: doSelectRS ( $oCriteria );
$oDataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-17 11:18:48 -04:00
$oDataset -> next ();
$aRow = $oDataset -> getRow ();
2013-03-05 15:07:55 -04:00
$aRI = unserialize ( $aRow [ 'CFG_VALUE' ]);
2012-10-17 11:18:48 -04:00
try {
2013-03-05 15:07:55 -04:00
if ( $oProcesses -> ws_open ( $aRI [ 'u' ], $aRI [ 'p' ]) == 1 ) {
2012-10-17 11:18:48 -04:00
$bExists = true ;
} else {
$bExists = false ;
}
} catch ( Exception $oException ) {
$bExists = false ;
}
if ( $bExists ) {
2013-03-05 15:07:55 -04:00
$aFields [ 'link_label' ] = G :: LoadTranslation ( 'ID_DOWNLOAD' );
2012-10-17 11:18:48 -04:00
$aFields [ 'link_href' ] = '../processes/downloadPML?id=' . $oData -> pro_uid . '&s=' . $sessionId ;
} else {
2013-03-05 15:07:55 -04:00
$aFields [ 'link_label' ] = G :: LoadTranslation ( 'ID_NEED_REGISTER' );
2012-10-17 11:18:48 -04:00
$aFields [ 'link_href' ] = " javascript:registerPML(' " . $oData -> pro_uid . " '); " ;
}
} else {
2013-03-05 15:07:55 -04:00
$aFields [ 'link_label' ] = G :: LoadTranslation ( 'ID_NEED_REGISTER' );
2012-10-17 11:18:48 -04:00
$aFields [ 'link_href' ] = " javascript:registerPML(' " . $oData -> pro_uid . " '); " ;
}
break ;
2010-12-02 23:34:41 +00:00
}
2012-10-17 11:18:48 -04:00
$G_PUBLISH = new Publisher ();
2013-03-05 15:07:55 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/objectpmView' , '' , $aFields , '' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-17 11:18:48 -04:00
break ;
case 'registerPML' :
2013-03-05 15:07:55 -04:00
$aFields = array ();
2012-10-17 11:18:48 -04:00
$aFields [ 'pro_uid' ] = $oData -> pro_uid ;
$aFields [ 'link_create_account' ] = PML_SERVER ;
$G_PUBLISH = new Publisher ();
2013-03-05 15:07:55 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/registerPML' , '' , $aFields , '' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-17 11:18:48 -04:00
break ;
case 'loginPML' :
2017-02-14 21:24:08 +00:00
2017-02-15 16:26:02 +00:00
2012-10-17 11:18:48 -04:00
$oProcesses = new Processes ();
try {
2013-03-05 15:07:55 -04:00
if ( $oProcesses -> ws_open ( $oData -> u , $oData -> p ) == 1 ) {
2012-10-17 11:18:48 -04:00
$bExists = true ;
} else {
$bExists = false ;
}
} catch ( Exception $oException ) {
$bExists = false ;
2010-12-02 23:34:41 +00:00
}
2012-10-17 11:18:48 -04:00
$oResponse = new stdclass ();
2010-12-02 23:34:41 +00:00
if ( $bExists ) {
2012-10-17 11:18:48 -04:00
require_once 'classes/model/Configuration.php' ;
$oConfiguration = new Configuration ();
2013-03-05 15:07:55 -04:00
$oConfiguration -> create ( array ( 'CFG_UID' => 'REGISTER_INFORMATION' , 'OBJ_UID' => '' , 'CFG_VALUE' => serialize ( array ( 'u' => $oData -> u , 'p' => $oData -> p
2017-12-04 13:25:35 +00:00
)), 'PRO_UID' => '' , 'USR_UID' => $_SESSION [ 'USER_LOGGED' ], 'APP_UID' => ''
2013-03-05 15:07:55 -04:00
));
$oResponse -> sLabel = G :: LoadTranslation ( 'ID_DOWNLOAD' );
2012-10-17 11:18:48 -04:00
$oResponse -> sLink = '../processes/downloadPML?id=' . $oData -> pro_uid . '&s=' . $sessionId ;
}
$oResponse -> bExists = $bExists ;
2012-11-29 14:25:06 -04:00
//$oJSON = new Services_JSON();
2013-03-05 15:07:55 -04:00
echo Bootstrap :: json_encode ( $oResponse );
2012-10-17 11:18:48 -04:00
break ;
case 'editFile' :
//echo $_REQUEST['filename'];
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
///-- $sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST['pro_uid'] . PATH_SEP . $_REQUEST['filename'];
$sDir = " " ;
2013-03-05 15:07:55 -04:00
if ( isset ( $_SESSION [ 'PFMDirectory' ])) {
2012-10-17 11:18:48 -04:00
$sDir = $_SESSION [ 'PFMDirectory' ];
2012-10-22 17:23:01 -04:00
}
2012-10-17 11:18:48 -04:00
switch ( $sDir ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'ProcessFileManager' , 'Edit template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
2017-12-04 13:25:35 +00:00
G :: auditLog ( 'ProcessFileManager' , 'Edit public template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
default :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
break ;
}
2013-03-05 15:07:55 -04:00
$fcontent = file_get_contents ( $sDirectory );
$extion = explode ( " . " , $_REQUEST [ 'filename' ]);
2012-11-30 14:23:16 +00:00
$_REQUEST [ 'fcontent' ] = $fcontent ;
2014-07-30 10:02:08 -04:00
2017-12-04 13:25:35 +00:00
preg_match_all ( '/\@(?:([\>])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/' , $fcontent , $matches );
2014-07-30 16:48:31 -04:00
foreach ( $matches [ 0 ] as $key => $value ) {
2017-12-04 13:25:35 +00:00
preg_match ( '/(\!--)' . $value . '(-->)/' , $fcontent , $match );
if ( count ( $match ) == 0 ) {
$fcontent = preg_replace ( '/' . $value . '/i' , '<!--' . $value . '-->' , $fcontent );
2014-07-30 10:02:08 -04:00
}
}
2017-12-04 13:25:35 +00:00
preg_match_all ( '/\@(?:([\<])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/' , $fcontent , $matches );
2014-07-30 16:48:31 -04:00
foreach ( $matches [ 0 ] as $key => $value ) {
2017-12-04 13:25:35 +00:00
preg_match ( '/(\!--)' . $value . '(-->)/' , $fcontent , $match );
if ( count ( $match ) == 0 ) {
$fcontent = preg_replace ( '/' . $value . '/i' , '<!--' . $value . '-->' , $fcontent );
}
2014-07-30 10:02:08 -04:00
}
2017-12-04 13:25:35 +00:00
$aData = array ( 'pro_uid' => $_REQUEST [ 'pro_uid' ], 'fcontent' => $fcontent , 'filename' => $_REQUEST [ 'filename' ]);
2013-03-05 15:07:55 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_FileEdit' , '' , $aData );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-17 11:18:48 -04:00
break ;
case 'saveFile' :
2015-03-18 17:12:38 -04:00
$_REQUEST [ 'pro_uid' ] = $filter -> xssFilterHard ( $_REQUEST [ 'pro_uid' ]);
$_REQUEST [ 'filename' ] = $filter -> xssFilterHard ( $_REQUEST [ 'filename' ]);
2012-10-17 11:18:48 -04:00
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2019-01-16 12:21:17 -04:00
$app = new Processes ();
if ( ! $app -> processExists ( $_REQUEST [ 'pro_uid' ])) {
echo G :: LoadTranslation ( 'ID_PROCESS_UID_NOT_DEFINED' );
die ;
}
2012-09-18 09:44:52 -04:00
2019-01-16 12:21:17 -04:00
$sDir = " " ;
if ( isset ( $_REQUEST [ 'MAIN_DIRECTORY' ])) {
$_REQUEST [ 'MAIN_DIRECTORY' ] = $filter -> xssFilterHard ( $_REQUEST [ 'MAIN_DIRECTORY' ]);
$sDir = $_REQUEST [ 'MAIN_DIRECTORY' ];
}
switch ( $sDir ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
G :: auditLog ( 'ProcessFileManager' , 'Save template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
G :: auditLog ( 'ProcessFileManager' , 'Save public template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
break ;
default :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
break ;
2012-10-17 11:18:48 -04:00
}
2019-01-16 12:21:17 -04:00
$fp = fopen ( $sDirectory , 'w' );
$content = stripslashes ( $_REQUEST [ 'fcontent' ]);
$content = str_replace ( " @amp@ " , " & " , $content );
$content = base64_decode ( $content );
fwrite ( $fp , $content );
fclose ( $fp );
$sDirectory = $filter -> xssFilterHard ( $sDirectory );
echo 'saved: ' . $sDirectory ;
2012-10-17 11:18:48 -04:00
break ;
2015-04-22 17:54:58 -04:00
case 'getSessid' :
2017-12-04 13:25:35 +00:00
if ( isset ( $_SESSION [ 'USER_LOGGED' ])) {
2015-04-22 17:54:58 -04:00
echo Bootstrap :: json_encode ( 1 );
2017-12-04 13:25:35 +00:00
} else {
2015-04-22 17:54:58 -04:00
echo Bootstrap :: json_encode ( 0 );
}
break ;
2012-10-17 11:18:48 -04:00
case 'events' :
2013-03-05 15:07:55 -04:00
$oProcessMap -> eventsList ( $oData -> pro_uid , $oData -> type );
2012-10-17 11:18:48 -04:00
break ;
2017-12-04 13:25:35 +00:00
/**
* returns an array with all Dynaforms Fields
*/
2012-11-23 15:23:44 -04:00
case 'getVariableList' :
2017-02-14 21:24:08 +00:00
2013-03-05 15:07:55 -04:00
$proUid = isset ( $_REQUEST [ 'process' ]) ? $_REQUEST [ 'process' ] : '' ;
$queryText = isset ( $_REQUEST [ 'queryText' ]) ? $_REQUEST [ 'queryText' ] : '' ;
2017-12-04 13:25:35 +00:00
switch ( $_REQUEST [ 'type' ]) {
case 'system' :
2015-05-15 13:08:27 -04:00
$typeVars = $_REQUEST [ 'type' ];
2017-12-04 13:25:35 +00:00
break ;
case 'process' :
2015-05-15 13:08:27 -04:00
$typeVars = $_REQUEST [ 'type' ];
2017-12-04 13:25:35 +00:00
break ;
case 'grid' :
2015-05-15 13:08:27 -04:00
$typeVars = $_REQUEST [ 'type' ];
2017-12-04 13:25:35 +00:00
break ;
2012-11-26 12:18:03 -04:00
}
2013-03-05 15:07:55 -04:00
if ( $_REQUEST [ 'type' ] == 'all' ) {
$aFields = getDynaformsVars ( $proUid );
2012-11-26 12:18:03 -04:00
} else {
2015-05-15 13:08:27 -04:00
$aFields = getDynaformsVars ( $proUid , $typeVars , isset ( $_REQUEST [ 'bIncMulSelFields' ]) ? $_REQUEST [ 'bIncMulSelFields' ] : 1 );
2012-11-26 12:18:03 -04:00
}
2012-11-23 15:23:44 -04:00
$aVariables = array ();
2014-03-27 16:29:05 -04:00
if ( $queryText != " " ) {
foreach ( $aFields as $key => $value ) {
if ( stristr ( $aFields [ $key ][ " sName " ], $queryText )) {
2012-11-27 18:13:56 +00:00
$aVariables [] = $aFields [ $key ];
}
2014-03-27 16:29:05 -04:00
}
} else {
switch ( $_REQUEST [ " type " ]) {
2017-12-04 13:25:35 +00:00
case " system " :
2014-03-27 16:29:05 -04:00
foreach ( $aFields as $key => $value ) {
if ( $aFields [ $key ][ " sType " ] == " system " ) {
$aVariables [] = $aFields [ $key ];
}
}
break ;
2017-12-04 13:25:35 +00:00
default :
2014-03-27 16:29:05 -04:00
foreach ( $aFields as $key => $value ) {
$aVariables [] = $aFields [ $key ];
}
break ;
2012-11-23 15:23:44 -04:00
}
2012-11-30 14:23:16 +00:00
}
2014-03-27 16:29:05 -04:00
2013-03-05 15:07:55 -04:00
echo Bootstrap :: json_encode ( $aVariables );
2012-11-27 08:55:29 -04:00
break ;
2017-12-04 13:25:35 +00:00
/**
* returns the prefix mean
*
*/
2012-11-27 08:55:29 -04:00
case 'getVariablePrefix' :
2015-03-18 17:12:38 -04:00
$_REQUEST [ 'prefix' ] = $filter -> xssFilterHard ( $_REQUEST [ 'prefix' ]);
2013-03-05 15:07:55 -04:00
$_REQUEST [ 'prefix' ] = $_REQUEST [ 'prefix' ] != null ? $_REQUEST [ 'prefix' ] : 'ID_TO_STRING' ;
2015-03-18 17:12:38 -04:00
$prefix = $filter -> xssFilterHard ( G :: LoadTranslation ( $_REQUEST [ 'prefix' ]));
echo G :: LoadTranslation ( $prefix );
2012-11-23 15:23:44 -04:00
break ;
2017-12-04 13:25:35 +00:00
/**
* return an array with all Variables of Grid type
*/
2012-12-05 18:07:10 -04:00
case 'getGridList' :
2017-02-14 21:24:08 +00:00
2013-03-05 15:07:55 -04:00
$proUid = isset ( $_REQUEST [ 'PRO_UID' ]) ? $_REQUEST [ 'PRO_UID' ] : '' ;
2012-12-04 13:00:28 +00:00
2013-03-05 15:07:55 -04:00
$aFields = getGridsVars ( $proUid );
2012-12-05 18:07:10 -04:00
$aVariables = array ();
2013-03-05 15:07:55 -04:00
foreach ( $aFields as $key => $value ) {
2012-12-04 13:00:28 +00:00
$aVariables [] = $aFields [ $key ];
2012-12-05 18:07:10 -04:00
}
2013-03-05 15:07:55 -04:00
echo Bootstrap :: json_encode ( $aVariables );
2012-12-04 13:00:28 +00:00
break ;
2017-12-04 13:25:35 +00:00
/**
* return an array with all Grid Variables according to Grid
*/
2012-12-05 18:07:10 -04:00
case 'getVariableGrid' :
2013-03-05 15:07:55 -04:00
$proUid = isset ( $_REQUEST [ 'PRO_UID' ]) ? $_REQUEST [ 'PRO_UID' ] : '' ;
$dynUid = isset ( $_REQUEST [ 'DYN_UID' ]) ? $_REQUEST [ 'DYN_UID' ] : '' ;
2012-12-04 21:30:12 +00:00
2012-12-05 18:07:10 -04:00
$aFields = getVarsGrid ( $proUid , $dynUid );
2012-12-04 21:30:12 +00:00
$aVariables = array ();
foreach ( $aFields as $key => $value ) {
$aVariables [] = $key ;
2012-12-05 18:07:10 -04:00
}
2013-03-05 15:07:55 -04:00
echo Bootstrap :: json_encode ( $aVariables );
2012-12-04 13:00:28 +00:00
break ;
2012-12-12 17:30:36 -04:00
case 'getDynaformFieldList' :
2017-02-14 21:24:08 +00:00
2013-03-05 15:07:55 -04:00
$dynaformFields = array ();
$resultArray = array ();
$proUid = isset ( $_REQUEST [ 'PRO_UID' ]) ? $_REQUEST [ 'PRO_UID' ] : '' ;
$dynUid = isset ( $_REQUEST [ 'DYN_UID' ]) ? $_REQUEST [ 'DYN_UID' ] : '' ;
2017-10-10 12:33:25 -04:00
if ( is_file ( PATH_DATA . '/sites/' . config ( " system.workspace " ) . '/xmlForms/' . $proUid . '/' . $dynUid . '.xml' ) && filesize ( PATH_DATA . '/sites/' . config ( " system.workspace " ) . '/xmlForms/' . $proUid . '/' . $dynUid . '.xml' ) > 0 ) {
$dyn = new DynaformHandler ( PATH_DATA . '/sites/' . config ( " system.workspace " ) . '/xmlForms/' . $proUid . '/' . $dynUid . '.xml' );
2012-12-12 17:30:36 -04:00
$dynaformFields [] = $dyn -> getFields ();
}
foreach ( $dynaformFields as $aDynFormFields ) {
foreach ( $aDynFormFields as $field ) {
2013-03-05 15:07:55 -04:00
$resultArray [] = array ( " id " => $field -> nodeName , " name " => $field -> nodeName );
2012-12-12 17:30:36 -04:00
}
}
2013-03-05 15:07:55 -04:00
echo Bootstrap :: json_encode ( $resultArray );
2017-12-04 13:25:35 +00:00
break ;
2012-10-17 11:18:48 -04:00
case 'emptyFileOptions' :
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
2013-03-05 15:07:55 -04:00
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_FileEditCreateEmpty' , '' );
G :: RenderPage ( 'publish' , 'raw' );
2012-10-17 11:18:48 -04:00
break ;
case " taskCases " :
require_once 'classes/model/AppDelegation.php' ;
2013-03-05 15:07:55 -04:00
$criteria = new Criteria ( 'workflow' );
$criteria -> addSelectColumn ( AppDelegationPeer :: APP_UID );
$criteria -> addSelectColumn ( AppDelegationPeer :: DEL_INDEX );
$criteria -> addSelectColumn ( AppDelegationPeer :: TAS_UID );
$criteria -> add ( AppDelegationPeer :: TAS_UID , $oData -> task_uid );
$criteria -> add ( AppDelegationPeer :: DEL_THREAD_STATUS , 'OPEN' );
$casesNumRec = AppDelegationPeer :: doCount ( $criteria );
2012-10-17 11:18:48 -04:00
if ( $casesNumRec == 0 ) {
require_once 'classes/model/AppDelay.php' ;
2013-03-05 15:07:55 -04:00
$criteria = new Criteria ( 'workflow' );
$criteria -> addSelectColumn ( AppDelayPeer :: APP_UID );
$criteria -> addSelectColumn ( AppDelayPeer :: APP_DEL_INDEX );
$criteria -> add ( AppDelayPeer :: PRO_UID , $oData -> pro_uid );
$criteria -> add ( AppDelayPeer :: APP_TYPE , 'PAUSE' );
$criteria -> add ( AppDelayPeer :: APP_DISABLE_ACTION_DATE , null , Criteria :: ISNULL );
$dataset = AppDelayPeer :: doSelectRS ( $criteria );
2012-10-17 11:18:48 -04:00
if ( $dataset -> getRecordCount () > 0 ) {
2013-03-05 15:07:55 -04:00
$dataset -> setFetchmode ( ResultSet :: FETCHMODE_ASSOC );
2012-10-17 11:18:48 -04:00
$dataset -> next ();
while ( $row = $dataset -> getRow ()) {
2013-03-05 15:07:55 -04:00
$criteria = new Criteria ( 'workflow' );
$criteria -> addSelectColumn ( AppDelegationPeer :: TAS_UID );
$criteria -> add ( AppDelegationPeer :: APP_UID , $row [ 'APP_UID' ]);
$criteria -> add ( AppDelegationPeer :: DEL_INDEX , $row [ 'APP_DEL_INDEX' ]);
$criteria -> add ( AppDelegationPeer :: TAS_UID , $oData -> task_uid );
$casesNumRec += AppDelegationPeer :: doCount ( $criteria );
2012-10-17 11:18:48 -04:00
$dataset -> next ();
}
}
}
$response = new stdclass ();
$response -> casesNumRec = $casesNumRec ;
2013-03-05 15:07:55 -04:00
$sOutput = Bootstrap :: json_encode ( $response );
2012-10-17 11:18:48 -04:00
break ;
2014-07-17 11:24:44 -04:00
case " verifyNameFile " :
$response = array ();
$status = " OK " ;
$filename = $_POST [ " filename " ];
2014-07-17 15:05:43 -04:00
$pathDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ " pro_uid " ] . PATH_SEP ;
2014-07-17 11:24:44 -04:00
2014-07-17 15:05:43 -04:00
if ( file_exists ( $pathDirectory . PATH_SEP . $filename )) {
$status = " ERROR " ;
2014-07-17 11:24:44 -04:00
}
$response [ " status " ] = $status ;
echo Bootstrap :: json_encode ( $response );
break ;
2012-10-17 11:18:48 -04:00
}
2013-03-05 15:07:55 -04:00
if ( isset ( $sOutput )) {
die ( $sOutput );
2012-10-17 11:18:48 -04:00
}
} catch ( Exception $oException ) {
2016-08-04 14:56:58 -04:00
$token = strtotime ( " now " );
PMException :: registerErrorLog ( $oException , $token );
2017-12-04 13:25:35 +00:00
G :: outRes ( G :: LoadTranslation ( " ID_EXCEPTION_LOG_INTERFAZ " , array ( $token )));
2016-08-04 14:56:58 -04:00
die ;
2010-12-02 23:34:41 +00:00
}