Adding new project type (bpmn) creation button and loading fe a be and some changes for method PUT /project/{prj_uid} (still not functional)
This commit is contained in:
@@ -37,56 +37,74 @@ class ProcessProxy extends HttpProxyController
|
||||
*/
|
||||
public function saveProcess ($httpData)
|
||||
{
|
||||
$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 );
|
||||
|
||||
if (! isset( $httpData->PRO_UID )) {
|
||||
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 );
|
||||
}
|
||||
|
||||
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 plugins
|
||||
$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;
|
||||
}
|
||||
|
||||
$processData['USR_UID'] = $_SESSION['USER_LOGGED'];
|
||||
$processData['PRO_TITLE'] = $httpData->PRO_TITLE;
|
||||
$processData['PRO_DESCRIPTION'] = $httpData->PRO_DESCRIPTION;
|
||||
$processData['PRO_CATEGORY'] = $httpData->PRO_CATEGORY;
|
||||
//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 = $oProcessMap->createProcess( $processData );
|
||||
// Creating BPMN Project Layer
|
||||
if ($projectType == 'bpmnProject') {
|
||||
$bpmnModel = new ProcessMaker\Adapter\Bpmn\Model();
|
||||
$replaceUids = false;
|
||||
|
||||
//call plugins
|
||||
$oData['PRO_UID'] = $sProUid;
|
||||
$oData['PRO_TEMPLATE'] = isset( $httpData->PRO_TEMPLATE ) && $httpData->PRO_TEMPLATE != '' ? $httpData->PRO_TEMPLATE : '';
|
||||
$oData['PROCESSMAP'] = $oProcessMap;
|
||||
$data = array(
|
||||
'PRJ_UID' => $sProUid,
|
||||
'PRJ_NAME' => $httpData->PRO_TITLE,
|
||||
'PRJ_DESCRIPTION' => $httpData->PRO_DESCRIPTION,
|
||||
'PRJ_CATEGORY' => $httpData->PRO_CATEGORY
|
||||
);
|
||||
|
||||
$oPluginRegistry = & PMPluginRegistry::getSingleton();
|
||||
$oPluginRegistry->executeTriggers( PM_NEW_PROCESS_SAVE, $oData );
|
||||
$result = $bpmnModel->createProject($data, $replaceUids);
|
||||
}
|
||||
|
||||
} else {
|
||||
//$oProcessMap->updateProcess($_POST['form']);
|
||||
$sProUid = $httpData->PRO_UID;
|
||||
$this->success = true;
|
||||
$this->PRO_UID = $sProUid;
|
||||
$this->msg = G::LoadTranslation( 'ID_CREATE_PROCESS_SUCCESS' );
|
||||
} catch (Exception $e) {
|
||||
$this->success = false;
|
||||
$this->msg = $e->getMessage();
|
||||
}
|
||||
|
||||
//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;
|
||||
$this->msg = G::LoadTranslation( 'ID_CREATE_PROCESS_SUCCESS' );
|
||||
|
||||
//TODO save bpmn project
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user