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
/**
* processes_Ajax . php
*
* ProcessMaker Open Source Edition
* Copyright ( C ) 2004 - 2008 Colosa Inc . 23
*
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation , either version 3 of the
* License , or ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
2012-10-17 11:18:48 -04:00
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
2010-12-02 23:34:41 +00:00
* GNU Affero General Public License for more details .
*
* You should have received a copy of the GNU Affero General Public License
2012-10-17 11:18:48 -04:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2010-12-02 23:34:41 +00:00
*
* For more information , contact Colosa Inc , 2566 Le Jeune Rd . ,
* Coral Gables , FL , 33134 , USA , or email info @ colosa . com .
*/
try {
2013-03-05 15:07:55 -04:00
/* global $RBAC ;
switch ( $RBAC -> userCanAccess ( 'PM_FACTORY' ))
{
case - 2 :
G :: SendTemporalMessage ( 'ID_USER_HAVENT_RIGHTS_SYSTEM' , 'error' , 'labels' );
G :: header ( 'location: ../login/login' );
die ;
break ;
case - 1 :
G :: SendTemporalMessage ( 'ID_USER_HAVENT_RIGHTS_PAGE' , 'error' , 'labels' );
G :: header ( 'location: ../login/login' );
die ;
break ;
} */
2012-11-12 14:44:44 -04:00
//$oJSON = new Services_JSON();
2015-03-18 17:12:38 -04:00
G :: LoadSystem ( 'inputfilter' );
$filter = new InputFilter ();
$_GET = $filter -> xssFilterHard ( $_GET );
$_POST = $filter -> xssFilterHard ( $_POST );
$_REQUEST = $filter -> xssFilterHard ( $_REQUEST );
//$_SESSION = $filter->xssFilterHard($_SESSION);
2012-11-12 14:44:44 -04:00
2013-03-05 15:07:55 -04:00
if ( isset ( $_REQUEST [ 'data' ])) {
2013-09-24 10:17:56 -04:00
if ( $_REQUEST [ 'action' ] == " addText " || $_REQUEST [ 'action' ] == " updateText " ) {
$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-11-12 14:44:44 -04:00
//$oData = $oJSON->decode( stripslashes( $_REQUEST['data'] ) );
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
2015-02-19 15:18:37 -04: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 )) {
$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
G :: LoadClass ( 'processes' );
$infoProcess = new Processes ();
2015-03-10 14:39:03 -04:00
2015-02-19 15:18:37 -04:00
if ( ! $infoProcess -> processExists ( $proUid )) {
$oSL = new SwimlanesElements ();
if ( $oSL -> swimlanesElementsExists ( $proUid )) {
$aFields = $oSL -> load ( $proUid );
$proUid = $aFields [ 'PRO_UID' ];
} else {
$k = new Criteria ( 'workflow' );
$k -> clearSelectColumns ();
$k -> addSelectColumn ( TaskPeer :: PRO_UID );
$k -> add ( TaskPeer :: TAS_UID , $uidAux );
$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 {
2015-03-10 14:39:03 -04: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
G :: LoadClass ( 'processes' );
$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
2015-02-19 15:18:37 -04: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' ])) {
$proUid = $_REQUEST [ 'pro_uid' ];
} else {
$proUid = $_REQUEST [ 'PRO_UID' ];
}
G :: LoadClass ( 'processes' );
$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
2015-02-20 15:01:04 -04:00
if ( isset ( $proUid ) && $proUid != " " ) {
2015-03-10 14:39:03 -04:00
G :: LoadClass ( " processes " );
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 (
" PRO_UID " => $proUid ,
" 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
2012-11-22 16:33:58 -04:00
//G::LoadClass( 'processMap' );
2013-03-05 15:07:55 -04:00
$oProcessMap = new processMap ( new DBConnection ());
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 ) {
2013-03-05 15:07:55 -04: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 {
if ( $_SESSION [ 'TASK' ] != - 1 ) {
$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 ();
2013-03-05 15:07:55 -04: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' :
include ( PATH_METHODS . 'processes/processes_Export.php' );
2015-02-19 15:18:37 -04:00
G :: auditLog ( 'ExportProcess' , 'Export process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'process_User' :
include ( PATH_METHODS . 'processes/processes_User.php' );
break ;
case 'availableProcessesUser' :
include ( PATH_METHODS . 'processes/processes_availableProcessesUser.php' );
break ;
case 'webEntry_generate' :
include ( PATH_METHODS . 'processes/processes_webEntryGenerate.php' );
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' :
include ( PATH_METHODS . 'processes/processes_webEntryValidate.php' );
break ;
case 'webEntry_delete' :
$form = $_REQUEST ;
2015-02-19 15:18:37 -04:00
if ( file_exists ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . $form [ 'FILENAME' ])) {
unlink ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . $form [ 'FILENAME' ]);
}
if ( file_exists ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . str_replace ( " .php " , " Post " , $form [ 'FILENAME' ]) . " .php " )) {
unlink ( PATH_DATA . " sites " . PATH_SEP . SYS_SYS . PATH_SEP . " public " . PATH_SEP . $form [ 'PRO_UID' ] . PATH_SEP . str_replace ( " .php " , " Post " , $form [ 'FILENAME' ]) . " .php " );
}
2013-03-05 15:07:55 -04:00
$oProcessMap -> webEntry ( $_REQUEST [ 'PRO_UID' ]);
2015-02-19 15:18:37 -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 );
G :: LoadClass ( 'processMap' );
2012-10-17 11:18:48 -04:00
$oProcessMap = new ProcessMap ();
2013-03-05 15:07:55 -04:00
$oProcessMap -> listProcessesUser ( $oData -> PRO_UID );
2015-02-19 15:18:37 -04: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 ;
}
}
2015-02-19 15:18:37 -04: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' :
include ( PATH_METHODS . 'processes/webEntry_Val_Assig.php' );
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 ;
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 ;
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 );
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 ();
2015-02-20 12:53:14 -04: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 ;
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 );
2015-02-19 15:18:37 -04: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 );
2015-02-19 15:18:37 -04: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 );
2015-02-19 15:18:37 -04:00
G :: auditLog ( 'DeleteLines' , 'Delete all lines in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2012-10-17 11:18:48 -04:00
break ;
case 'addText' :
2013-03-05 15:07:55 -04:00
$sOutput = $oProcessMap -> addText ( $oData -> uid , $oData -> label , $oData -> position -> x , $oData -> position -> y );
2015-02-19 15:18:37 -04:00
$sOutputAux = G :: json_decode ( $sOutput );
$sOutputAux = ( array ) $sOutputAux ;
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 );
2015-02-19 15:18:37 -04: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 );
2015-02-19 15:18:37 -04: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 );
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
} else {
2015-03-10 14:39:03 -04:00
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
2015-02-21 10:25:27 -04:00
}
2015-02-18 12:22:27 -04:00
if ( $titleNextTask == '' ) {
2015-02-19 15:18:37 -04:00
G :: auditLog ( " DerivationRule " , 'PROCESS NAME : ' . $titleProcess . ' : ' . $oData -> pro_uid . ' Routing rule : END OF PROCESS Task Name -> ' . $titleTask . ' : ' . $oData -> tas_uid );
2015-02-18 12:22:27 -04:00
} else {
2015-02-19 15:18:37 -04:00
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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 ();
2015-02-19 15:18:37 -04:00
$taskProcess = $oProcessNewPattern -> load ( $oData -> pro_uid );
$titleProcess = $taskProcess [ 'PRO_TITLE' ];
2015-02-18 15:46:59 -04:00
$oTaskNewPattern = new Task ();
2015-02-19 15:18:37 -04: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 ();
$taskNextInfo = $oTaskNextNewPattern -> load ( $oData -> next_task );
2015-02-21 10:26:50 -04:00
$titleNextTask = $taskNextInfo [ 'TAS_TITLE' ];
2015-02-21 10:25:27 -04:00
} else {
$titleNextTask = G :: LoadTranslation ( " ID_END_OF_PROCESS " );
}
2015-02-19 15:18:37 -04: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 )) {
2013-03-05 15:07:55 -04:00
G :: LoadClass ( 'tasks' );
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 );
$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' :
2013-03-05 15:07:55 -04:00
G :: LoadClass ( 'tasks' );
2015-02-19 11:13:15 -04:00
$oTaskNewPattern = new Task ();
2015-02-20 12:53:14 -04: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 );
2015-02-19 15:18:37 -04: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 );
2015-02-19 15:18:37 -04: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 ();
2015-02-20 12:53:14 -04: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' :
2013-03-05 15:07:55 -04:00
G :: LoadClass ( 'processes' );
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' :
2013-03-05 15:07:55 -04:00
G :: LoadClass ( 'processes' );
2012-11-29 14:25:06 -04:00
//G::LoadThirdParty( 'pear/json', 'class.json' );
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
)), 'PRO_UID' => '' , 'USR_UID' => $_SESSION [ 'USER_LOGGED' ], 'APP_UID' => ''
));
$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' ];
2015-02-19 15:18:37 -04: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' ];
2015-02-19 15:18:37 -04: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' ]);
// $oHeadPublisher = &headPublisher::getSingleton();
// $oHeadPublisher->clearScripts();
// $oHeadPublisher->addScriptFile( '/js/tinymce/jscripts/tiny_mce/tiny_mce.js' );
// $jscriptCode .= '
//
//// var tmpArrToStr = Array.prototype.toStr;
//// var tmpObjToStr = Object.prototype.toStr;
//// var tmpObjConcat = Object.prototype.concat;
//// var tmpObjGetByKey = Object.prototype.get_by_key;
//// var tmpObjExpand = Object.prototype.expand;
//// var tmpObjSetParent = Object.prototype.setParent;
//// var tmpObjIsSetKey = Object.prototype.isset_key;
////
//// delete Array.prototype.toStr;
//// delete Object.prototype.toStr;
//// delete Object.prototype.concat;
//// delete Object.prototype.get_by_key;
//// delete Object.prototype.expand;
//// delete Object.prototype.setParent;
//// delete Object.prototype.isset_key;
//// alert ("hi");
//// document.body.onload = function(){
// alert ("hello");
// tinyMCE.baseURL = "/js/tinymce/jscripts/tiny_mce";
// tinyMCE.init({
// theme : "advanced",
// plugins : "fullpage",
// mode : "specific_textareas",
// editor_selector : "tmceEditor",
// width : "640",
// height : "300",
// theme_advanced_buttons3_add : "fullpage"
// });
//// alert ("goodbye");
//// }
// ';
// $oHeadPublisher->addScriptCode($jscriptCode);
2012-11-30 14:23:16 +00:00
$_REQUEST [ 'fcontent' ] = $fcontent ;
2014-07-30 10:02:08 -04:00
2014-07-30 16:48:31 -04:00
preg_match_all ( '/\@(?:([\>])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/' , $fcontent , $matches );
foreach ( $matches [ 0 ] as $key => $value ) {
preg_match ( '/(\!--)' . $value . '(-->)/' , $fcontent , $match );
if ( count ( $match ) == 0 ) {
$fcontent = preg_replace ( '/' . $value . '/i' , '<!--' . $value . '-->' , $fcontent );
2014-07-30 10:02:08 -04:00
}
}
2014-07-30 16:48:31 -04:00
preg_match_all ( '/\@(?:([\<])([a-zA-Z\_]\w*)|([a-zA-Z\_][\w\-\>\:]*)\(((?:[^\\\\\)]*(?:[\\\\][\w\W])?)*)\))((?:\s*\[[\'"]?\w+[\'"]?\])+)?/' , $fcontent , $matches );
foreach ( $matches [ 0 ] as $key => $value ) {
2014-07-30 11:36:04 -04:00
preg_match ( '/(\!--)' . $value . '(-->)/' , $fcontent , $match );
if ( count ( $match ) == 0 ) {
2014-07-30 16:48:31 -04:00
$fcontent = preg_replace ( '/' . $value . '/i' , '<!--' . $value . '-->' , $fcontent );
2014-07-30 10:02:08 -04:00
}
}
2012-10-17 11:18:48 -04:00
//if($extion[count($extion)-1]=='html' || $extion[count($extion)-1]=='txt'){
2013-03-05 15:07:55 -04:00
$aData = Array ( 'pro_uid' => $_REQUEST [ 'pro_uid' ], 'fcontent' => $fcontent , 'filename' => $_REQUEST [ 'filename' ]);
$G_PUBLISH -> AddContent ( 'xmlform' , 'xmlform' , 'processes/processes_FileEdit' , '' , $aData );
G :: RenderPage ( 'publish' , 'raw' );
// $G_PUBLISH->AddContent( 'view', 'processes/processesFileEditEmail' );
// G::RenderPage( 'publish', 'blank' );
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 ();
2013-12-17 16:52:40 -04:00
global $RBAC ;
if ( $RBAC -> userCanAccess ( 'PM_FACTORY' ) == 1 ) {
G :: LoadClass ( 'processes' );
$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
2013-12-17 16:52:40 -04:00
$sDir = " " ;
if ( isset ( $_REQUEST [ 'MAIN_DIRECTORY' ])) {
2015-03-18 17:12:38 -04:00
$_REQUEST [ 'MAIN_DIRECTORY' ] = $filter -> xssFilterHard ( $_REQUEST [ 'MAIN_DIRECTORY' ]);
2013-12-17 16:52:40 -04:00
$sDir = $_REQUEST [ 'MAIN_DIRECTORY' ];
}
switch ( $sDir ) {
case 'mailTemplates' :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
2015-02-19 15:18:37 -04:00
G :: auditLog ( 'ProcessFileManager' , 'Save template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2013-12-17 16:52:40 -04:00
break ;
case 'public' :
$sDirectory = PATH_DATA_PUBLIC . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
2015-02-19 15:18:37 -04:00
G :: auditLog ( 'ProcessFileManager' , 'Save public template (' . $_REQUEST [ 'filename' ] . ') in process "' . $resultProcess [ 'PRO_TITLE' ] . '"' );
2013-12-17 16:52:40 -04:00
break ;
default :
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
break ;
}
$fp = fopen ( $sDirectory , 'w' );
$content = stripslashes ( $_REQUEST [ 'fcontent' ]);
$content = str_replace ( " @amp@ " , " & " , $content );
$content = base64_decode ( $content );
fwrite ( $fp , $content );
fclose ( $fp );
2015-03-18 17:12:38 -04:00
$sDirectory = $filter -> xssFilterHard ( $sDirectory );
2013-12-17 16:52:40 -04:00
echo 'saved: ' . $sDirectory ;
2012-10-17 11:18:48 -04:00
}
break ;
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 ;
2013-03-05 15:07:55 -04:00
/**
* returns an array with all Dynaforms Fields
*/
2012-11-23 15:23:44 -04:00
case 'getVariableList' :
2012-11-27 08:55:29 -04:00
G :: LoadClass ( 'xmlfield_InputPM' );
2013-03-05 15:07:55 -04:00
$proUid = isset ( $_REQUEST [ 'process' ]) ? $_REQUEST [ 'process' ] : '' ;
$queryText = isset ( $_REQUEST [ 'queryText' ]) ? $_REQUEST [ 'queryText' ] : '' ;
if ( $_REQUEST [ 'type' ] == 'system' ) {
2012-11-26 12:18:03 -04:00
$isSystem = true ;
} else {
$isSystem = false ;
}
2013-03-05 15:07:55 -04:00
if ( $_REQUEST [ 'type' ] == 'all' ) {
$aFields = getDynaformsVars ( $proUid );
2012-11-26 12:18:03 -04:00
} else {
2013-03-05 15:07:55 -04:00
$aFields = getDynaformsVars ( $proUid , $isSystem , 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 " ]) {
case " system " :
foreach ( $aFields as $key => $value ) {
if ( $aFields [ $key ][ " sType " ] == " system " ) {
$aVariables [] = $aFields [ $key ];
}
}
break ;
default :
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 ;
2013-03-05 15:07:55 -04: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 ;
2013-03-05 15:07:55 -04:00
/**
* return an array with all Variables of Grid type
*/
2012-12-05 18:07:10 -04:00
case 'getGridList' :
G :: LoadClass ( 'xmlfield_InputPM' );
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 ;
2013-03-05 15:07:55 -04:00
/**
* return an array with all Grid Variables according to Grid
*/
2012-12-05 18:07:10 -04:00
case 'getVariableGrid' :
G :: LoadClass ( 'xmlfield_InputPM' );
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' :
2013-03-05 15:07:55 -04:00
G :: LoadClass ( 'dynaformhandler' );
$dynaformFields = array ();
$resultArray = array ();
$proUid = isset ( $_REQUEST [ 'PRO_UID' ]) ? $_REQUEST [ 'PRO_UID' ] : '' ;
$dynUid = isset ( $_REQUEST [ 'DYN_UID' ]) ? $_REQUEST [ 'DYN_UID' ] : '' ;
if ( is_file ( PATH_DATA . '/sites/' . SYS_SYS . '/xmlForms/' . $proUid . '/' . $dynUid . '.xml' ) && filesize ( PATH_DATA . '/sites/' . SYS_SYS . '/xmlForms/' . $proUid . '/' . $dynUid . '.xml' ) > 0 ) {
$dyn = new dynaFormHandler ( PATH_DATA . '/sites/' . SYS_SYS . '/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 );
// var_dump($resultArray);
2012-12-12 17:30:36 -04:00
break ;
2012-10-17 11:18:48 -04:00
/*
2013-03-05 15:07:55 -04:00
case 'saveFile' :
global $G_PUBLISH ;
$G_PUBLISH = new Publisher ();
$sDirectory = PATH_DATA_MAILTEMPLATES . $_REQUEST [ 'pro_uid' ] . PATH_SEP . $_REQUEST [ 'filename' ];
2010-12-02 23:34:41 +00:00
2013-03-05 15:07:55 -04:00
$fp = fopen ( $sDirectory , 'w' );
$content = stripslashes ( $_REQUEST [ 'fcontent' ]);
$content = str_replace ( " @amp@ " , " & " , $content );
fwrite ( $fp , $content );
fclose ( $fp );
echo 'saved: ' . $sDirectory ;
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 ;
2012-11-29 14:25:06 -04:00
//$json = new Services_JSON();
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 ) {
2013-03-05 15:07:55 -04:00
die ( $oException -> getMessage () . " \n " . $oException -> getTraceAsString ());
2010-12-02 23:34:41 +00:00
}
2012-10-17 11:18:48 -04:00