Adding adapters for Workflow->Bpmn and Bpmn->Workflow projects, and more updates & fixes

This commit is contained in:
Erik Amaru Ortiz
2014-02-05 17:29:28 -04:00
parent 70bbc3cdde
commit 9c8d66ef07
11 changed files with 225 additions and 58 deletions

View File

@@ -39,64 +39,63 @@ class ProcessProxy extends HttpProxyController
{
$projectType = empty($_GET['type']) ? 'classicProject' : $_GET['type'];
require_once 'classes/model/Task.php';
G::LoadClass( 'processMap' );
$oProcessMap = new ProcessMap();
$httpData->PRO_TITLE = trim( $httpData->PRO_TITLE );
try {
if (! isset( $httpData->PRO_UID )) {
if (Process::existsByProTitle( $httpData->PRO_TITLE )) {
$result = array ('success' => false,'msg' => G::LoadTranslation( 'ID_SAVE_PROCESS_ERROR' ),'errors' => array ('PRO_TITLE' => G::LoadTranslation( 'ID_PROCESSTITLE_ALREADY_EXISTS', SYS_LANG, Array ('PRO_TITLE' => $httpData->PRO_TITLE
) )
)
);
print G::json_encode( $result );
exit( 0 );
}
$processData['USR_UID'] = $_SESSION['USER_LOGGED'];
$processData['PRO_TITLE'] = $httpData->PRO_TITLE;
$processData['PRO_DESCRIPTION'] = $httpData->PRO_DESCRIPTION;
$processData['PRO_CATEGORY'] = $httpData->PRO_CATEGORY;
$sProUid = $oProcessMap->createProcess( $processData );
//call pluginsx
$oData['PRO_UID'] = $sProUid;
$oData['PRO_TEMPLATE'] = isset( $httpData->PRO_TEMPLATE ) && $httpData->PRO_TEMPLATE != '' ? $httpData->PRO_TEMPLATE : '';
$oData['PROCESSMAP'] = $oProcessMap;
$oPluginRegistry = & PMPluginRegistry::getSingleton();
$oPluginRegistry->executeTriggers( PM_NEW_PROCESS_SAVE, $oData );
$data = (array) $httpData;
$data['PRO_CREATE_USER'] = $_SESSION['USER_LOGGED'];
if ($projectType == "classicProject") {
$project = new ProcessMaker\Project\Workflow($data);
} else {
//$oProcessMap->updateProcess($_POST['form']);
$sProUid = $httpData->PRO_UID;
$project = new ProcessMaker\Project\Adapter\WorkflowBpmn($data);
}
//Save Calendar ID for this process
if (isset( $httpData->PRO_CALENDAR )) {
G::LoadClass( "calendar" );
$calendarObj = new Calendar();
$calendarObj->assignCalendarTo( $sProUid, $httpData->PRO_CALENDAR, 'PROCESS' );
}
$sProUid = $project->getUid();
// Creating BPMN Project Layer
if ($projectType == 'bpmnProject') {
$bpmnModel = new ProcessMaker\Adapter\Bpmn\Model();
$replaceUids = false;
$data = array(
'PRJ_UID' => $sProUid,
'PRJ_NAME' => $httpData->PRO_TITLE,
'PRJ_DESCRIPTION' => $httpData->PRO_DESCRIPTION,
'PRJ_CATEGORY' => $httpData->PRO_CATEGORY
);
$result = $bpmnModel->createProject($data, $replaceUids);
}
// require_once 'classes/model/Task.php';
// G::LoadClass( 'processMap' );
// $oProcessMap = new ProcessMap();
//
// $httpData->PRO_TITLE = trim( $httpData->PRO_TITLE );
//
// try {
// if (! isset( $httpData->PRO_UID )) {
// if (Process::existsByProTitle( $httpData->PRO_TITLE )) {
// $result = array ('success' => false,'msg' => G::LoadTranslation( 'ID_SAVE_PROCESS_ERROR' ),'errors' => array ('PRO_TITLE' => G::LoadTranslation( 'ID_PROCESSTITLE_ALREADY_EXISTS', SYS_LANG, Array ('PRO_TITLE' => $httpData->PRO_TITLE
// ) )
// )
// );
// print G::json_encode( $result );
// exit( 0 );
// }
//
// $processData['USR_UID'] = $_SESSION['USER_LOGGED'];
// $processData['PRO_TITLE'] = $httpData->PRO_TITLE;
// $processData['PRO_DESCRIPTION'] = $httpData->PRO_DESCRIPTION;
// $processData['PRO_CATEGORY'] = $httpData->PRO_CATEGORY;
//
// $sProUid = $oProcessMap->createProcess( $processData );
//
// //call pluginsx
// $oData['PRO_UID'] = $sProUid;
// $oData['PRO_TEMPLATE'] = isset( $httpData->PRO_TEMPLATE ) && $httpData->PRO_TEMPLATE != '' ? $httpData->PRO_TEMPLATE : '';
// $oData['PROCESSMAP'] = $oProcessMap;
//
// $oPluginRegistry = & PMPluginRegistry::getSingleton();
// $oPluginRegistry->executeTriggers( PM_NEW_PROCESS_SAVE, $oData );
//
// } else {
// //$oProcessMap->updateProcess($_POST['form']);
// $sProUid = $httpData->PRO_UID;
// }
//
// //Save Calendar ID for this process
// if (isset( $httpData->PRO_CALENDAR )) {
// G::LoadClass( "calendar" );
// $calendarObj = new Calendar();
// $calendarObj->assignCalendarTo( $sProUid, $httpData->PRO_CALENDAR, 'PROCESS' );
// }
//
$this->success = true;
$this->PRO_UID = $sProUid;