Saving stand alone Events on drag and drop

This commit is contained in:
girish
2011-02-12 10:07:41 +00:00
parent f4fb5522c8
commit bd85baa03f
8 changed files with 100 additions and 25 deletions

View File

@@ -4342,6 +4342,28 @@ class processMap {
} }
} }
/*
* Save the Event Position
* @param string $sSwimLaneUID
* @param integer $iX
* @param integer $iY
* @return integer
*/
function saveEventPosition($sEventUID = '', $iX = 110, $iY = 60)
{
try {
$oEvents = new Event( );
$aFields = $oEvents->load ( $sEventUID );
$aFields ['EVN_UID'] = $sEventUID;
$aFields ['EVN_POSX'] = $iX;
$aFields ['EVN_POSY'] = $iY;
return $oEvents->update ( $aFields );
} catch ( Exception $oError ) {
throw ($oError);
}
}
/** get all the Active process /** get all the Active process
* *
* SELECT PROCESS.PRO_UID AS UID, CONTENT.CON_VALUE AS VALUE FROM PROCESS, CONTENT * SELECT PROCESS.PRO_UID AS UID, CONTENT.CON_VALUE AS VALUE FROM PROCESS, CONTENT
@@ -6284,11 +6306,14 @@ function saveExtddEvents($oData)
{ {
$oTask = new Task(); $oTask = new Task();
$oEvent = new Event(); $oEvent = new Event();
$oEvn_uid = ''; $sEvn_uid = '';
$aData = array();
$aData['PRO_UID'] = $oData->uid; $aData['PRO_UID'] = $oData->uid;
$aData['EVN_TYPE'] = $oData->tas_type; $aData['EVN_TYPE'] = $oData->evn_type;
$aData['EVN_POSX'] = $oData->position->x; $aData['EVN_POSX'] = $oData->position->x;
$aData['EVN_POSY'] = $oData->position->y; $aData['EVN_POSY'] = $oData->position->y;
$mode = $oData->mode;
$aData['EVN_STATUS'] = 'ACTIVE'; $aData['EVN_STATUS'] = 'ACTIVE';
$aData['EVN_WHEN'] = '1'; $aData['EVN_WHEN'] = '1';
$aData['EVN_ACTION'] = ''; $aData['EVN_ACTION'] = '';
@@ -6299,27 +6324,34 @@ function saveExtddEvents($oData)
if(preg_match("/Start/", $aData['EVN_TYPE']) || preg_match("/Inter/", $aData['EVN_TYPE'])){ if(preg_match("/Start/", $aData['EVN_TYPE']) || preg_match("/Inter/", $aData['EVN_TYPE'])){
$aData['EVN_RELATED_TO'] = 'SINGLE'; $aData['EVN_RELATED_TO'] = 'SINGLE';
} }
if(isset($oData->tas_uid) && $oData->tas_uid != ''){ if($mode == 'updateTask'){
$aData['TAS_UID'] = $oData->tas_uid; $aData['TAS_UID'] = $oData->tas_uid;
$oTaskData = $oTask->load($aData['TAS_UID']); $oTaskData = $oTask->load($aData['TAS_UID']);
if($oTaskData['TAS_EVN_UID'] == ''){ if($oTaskData['TAS_EVN_UID'] == ''){
$oEvn_uid = $oEvent->create($aData); $sEvn_uid = $oEvent->create($aData);
}else{ }else{
$aData['EVN_UID'] = $oTaskData['TAS_EVN_UID']; $aData['EVN_UID'] = $oTaskData['TAS_EVN_UID'];
$oEvn_uid = $aData['EVN_UID']; $sEvn_uid = $aData['EVN_UID'];
$oEvent->update($aData); $oEvent->update($aData);
} }
$aTask['TAS_UID'] = $oData->tas_uid; $aTask['TAS_UID'] = $oData->tas_uid;
$aTask['TAS_EVN_UID'] = $oEvn_uid; $aTask['TAS_EVN_UID'] = $sEvn_uid;
$aTask['TAS_START'] = 'TRUE'; $aTask['TAS_START'] = 'TRUE';
$oTask->update($aTask); $oTask->update($aTask);
}else{
$oEvn_uid = $oEvent->create($aData);
} }
$oNewTask->uid = $oEvn_uid; else if($mode == 'ddEvent'){
$sEvn_uid = $oData->evn_uid;
$oEventData = EventPeer::retrieveByPK($sEvn_uid);
if (is_null($oEventData)) {
$sEvn_uid = $oEvent->create($aData);
}else{
$aData['EVN_UID'] = $sEvn_uid;
$oEvent->update($aData);
}
}
$oNewTask->uid = $sEvn_uid;
$oJSON = new Services_JSON ( ); $oJSON = new Services_JSON ( );
return $oJSON->encode($oNewTask); return $oJSON->encode($oNewTask);
} }

View File

@@ -3711,6 +3711,7 @@ class Xpdl extends processes
if($idVal['TAS_UID']==$idTask){ if($idVal['TAS_UID']==$idTask){
$coordinateX=$idVal['TAS_POSX']; $coordinateX=$idVal['TAS_POSX'];
$coordinateY=$idVal['TAS_POSY']; $coordinateY=$idVal['TAS_POSY'];
$tas_uid =$idVal['TAS_UID'];
} }
} }
$positionX = $coordinateX+65; $positionX = $coordinateX+65;
@@ -3730,6 +3731,7 @@ class Xpdl extends processes
if($idVal['TAS_UID']==$idTask){ if($idVal['TAS_UID']==$idTask){
$coordinateX=$idVal['TAS_POSX']; $coordinateX=$idVal['TAS_POSX'];
$coordinateY=$idVal['TAS_POSY']; $coordinateY=$idVal['TAS_POSY'];
$tas_uid =$idVal['TAS_UID'];
} }
} }
$positionX = $coordinateX + 120; $positionX = $coordinateX + 120;
@@ -3747,6 +3749,7 @@ class Xpdl extends processes
$events[$countEvents]['1'] = 'bpmnEventEmptyEnd'; $events[$countEvents]['1'] = 'bpmnEventEmptyEnd';
$events[$countEvents]['2'] = $positionX-25; $events[$countEvents]['2'] = $positionX-25;
$events[$countEvents]['3'] = $positionY+35; $events[$countEvents]['3'] = $positionY+35;
$events[$countEvents]['4'] = $tas_uid;
$countEvents = $countEvents + 1; $countEvents = $countEvents + 1;
$end = 0; $end = 0;
$endEvent = 0; $endEvent = 0;

View File

@@ -214,7 +214,8 @@ class Event extends BaseEvent {
{ {
$oEvent->setEvnRelatedTo( $aData['EVN_RELATED_TO'] ); $oEvent->setEvnRelatedTo( $aData['EVN_RELATED_TO'] );
if ( $aData['EVN_RELATED_TO'] == 'SINGLE' ) { if ( $aData['EVN_RELATED_TO'] == 'SINGLE' ) {
$oEvent->setTasUid( $aData['TAS_UID'] ); if(isset($aData['TAS_UID']) && $aData['TAS_UID'] != '')
$oEvent->setTasUid( $aData['TAS_UID'] );
$oEvent->setEvnTasUidTo( ''); $oEvent->setEvnTasUidTo( '');
$oEvent->setEvnTasUidFrom( '' ); $oEvent->setEvnTasUidFrom( '' );
} }
@@ -225,6 +226,11 @@ class Event extends BaseEvent {
} }
} }
if(isset($aData['EVN_POSX']))
$oEvent->setEvnPosx($aData['EVN_POSX']);
if(isset($aData['EVN_POSY']))
$oEvent->setEvnPosy($aData['EVN_POSY']);
if(isset($aData['EVN_TAS_ESTIMATED_DURATION'])) if(isset($aData['EVN_TAS_ESTIMATED_DURATION']))
$oEvent->setEvnTasEstimatedDuration( $aData['EVN_TAS_ESTIMATED_DURATION'] ); $oEvent->setEvnTasEstimatedDuration( $aData['EVN_TAS_ESTIMATED_DURATION'] );
if(isset($aData['EVN_WHEN_OCCURS'])) if(isset($aData['EVN_WHEN_OCCURS']))
@@ -249,7 +255,7 @@ class Event extends BaseEvent {
$oEvent->setEvnAction( $aData['EVN_ACTION'] ); $oEvent->setEvnAction( $aData['EVN_ACTION'] );
//if ( isset ($aData['ENV_MAX_ATTEMPTS'] )) $oEvent->setEvnMaxAttempts( 3 ); //if ( isset ($aData['ENV_MAX_ATTEMPTS'] )) $oEvent->setEvnMaxAttempts( 3 );
if (isset($aData['EVN_ACTION_PARAMETERS'])) { if (isset($aData['EVN_ACTION_PARAMETERS']) && $aData['EVN_ACTION_PARAMETERS'] != 0) {
$oTP = new TemplatePower(PATH_TPL . 'events' . PATH_SEP . 'sendMessage.tpl'); $oTP = new TemplatePower(PATH_TPL . 'events' . PATH_SEP . 'sendMessage.tpl');
$oTP->prepare(); $oTP->prepare();

View File

@@ -76,6 +76,7 @@
} }
$arrayEvents[$count]['2'] = $value['TAS_POSX']+68; $arrayEvents[$count]['2'] = $value['TAS_POSX']+68;
$arrayEvents[$count]['3'] = $value['TAS_POSY']-50; $arrayEvents[$count]['3'] = $value['TAS_POSY']-50;
$arrayEvents[$count]['4'] = $value['TAS_UID'];
$arrayRoutes[$countRoutes]['0']= G::generateUniqueID(); $arrayRoutes[$countRoutes]['0']= G::generateUniqueID();
$arrayRoutes[$countRoutes]['1']= $arrayEvents[$count]['0']; $arrayRoutes[$countRoutes]['1']= $arrayEvents[$count]['0'];
$arrayRoutes[$countRoutes]['2']= $value['TAS_UID']; $arrayRoutes[$countRoutes]['2']= $value['TAS_UID'];
@@ -95,6 +96,7 @@
$arrayEvents[$count]['1'] = $value['EVN_TYPE']; $arrayEvents[$count]['1'] = $value['EVN_TYPE'];
$arrayEvents[$count]['2'] = $value['EVN_POSX']; $arrayEvents[$count]['2'] = $value['EVN_POSX'];
$arrayEvents[$count]['3'] = $value['EVN_POSY']; $arrayEvents[$count]['3'] = $value['EVN_POSY'];
$arrayEvents[$count]['4'] = $value['TAS_UID'];
$count = $count+ 1; $count = $count+ 1;
} }
} }

View File

@@ -57,6 +57,10 @@ if ( isset ($_REQUEST['action']) ) {
$sOutput = $oProcessMap->saveTaskPosition($oData->uid, $oData->position->x, $oData->position->y); $sOutput = $oProcessMap->saveTaskPosition($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput; echo $sOutput;
break; break;
case 'saveEventPosition':
$sOutput = $oProcessMap->saveEventPosition($oData->uid, $oData->position->x, $oData->position->y);
echo $sOutput;
break;
case 'saveGatewayPosition': case 'saveGatewayPosition':
$sOutput = $oProcessMap->saveGatewayPosition($oData->uid, $oData->position->x, $oData->position->y); $sOutput = $oProcessMap->saveGatewayPosition($oData->uid, $oData->position->x, $oData->position->y);
//echo $sOutput; //echo $sOutput;

View File

@@ -428,22 +428,30 @@ MyWorkflow.prototype.toggleShapes=function(item)
newShape.workflow.addFigure(connObj); newShape.workflow.addFigure(connObj);
} }
} }
newShape.mode = 'ddEvent';
//Saving Asynchronously deleted shape and new created shape into DB //Saving Asynchronously deleted shape and new created shape into DB
if(item.type.match(/Boundary/)) if(item.type.match(/Boundary/))
{ {
newShape.actiontype = 'updateTask'; newShape.actiontype = 'updateTask';
workflow.saveShape(newShape); workflow.saveShape(newShape);
} }
if(newShape.type.match(/Event/) && newShape.type.match(/Inter/) && !item.type.match(/Boundary/)) /*if(newShape.type.match(/Event/) && newShape.type.match(/Inter/) && !item.type.match(/Boundary/))
{ {
newShape.actiontype = 'updateEvent'; newShape.actiontype = 'updateEvent';
//Set the Old Id to the Newly created Event //Set the Old Id to the Newly created Event
newShape.html.id = oldWorkflow.id; newShape.html.id = oldWorkflow.id;
newShape.id = oldWorkflow.id; newShape.id = oldWorkflow.id;
newShape.workflow.saveShape(newShape); newShape.workflow.saveShape(newShape);
}*/
if(newShape.type.match(/Event/) && !item.type.match(/Boundary/))
{
newShape.actiontype = 'addEvent';
//Set the Old Id to the Newly created Event
newShape.html.id = oldWorkflow.id;
newShape.id = oldWorkflow.id;
newShape.workflow.saveShape(newShape);
} }
if(newShape.type == 'bpmnEventMessageStart' || newShape.type == 'bpmnEventTimerStart') /* if(newShape.type == 'bpmnEventMessageStart' || newShape.type == 'bpmnEventTimerStart')
{ {
newShape.workflow.currentSelection = newShape; newShape.workflow.currentSelection = newShape;
var task_details = workflow.getStartEventConn(newShape,'targetPort','OutputPort'); var task_details = workflow.getStartEventConn(newShape,'targetPort','OutputPort');
@@ -467,7 +475,7 @@ MyWorkflow.prototype.toggleShapes=function(item)
newShape.actiontype = 'saveStartEvent'; newShape.actiontype = 'saveStartEvent';
newShape.workflow.saveShape(newShape); newShape.workflow.saveShape(newShape);
} }
} }*/
else if(newShape.type.match(/Gateway/)) else if(newShape.type.match(/Gateway/))
{ {
var shape = new Array(); var shape = new Array();
@@ -1070,6 +1078,12 @@ MyWorkflow.prototype.saveShape= function(oNewShape)
case 'saveTaskPosition': case 'saveTaskPosition':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+pos+'}'; urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+pos+'}';
break; break;
case 'saveEventPosition':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+pos+'}';
break;
case 'saveTextPosition':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+pos+'}';
break;
case 'saveTaskCordinates': case 'saveTaskCordinates':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+cordinates+'}'; urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+cordinates+'}';
break; break;
@@ -1088,9 +1102,6 @@ MyWorkflow.prototype.saveShape= function(oNewShape)
case 'updateText': case 'updateText':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","label":"'+newlabel+'"}'; urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","label":"'+newlabel+'"}';
break; break;
case 'saveTextPosition':
urlparams = '?action='+actiontype+'&data={"uid":"'+ shapeId +'","position":'+pos+'}';
break;
case 'saveStartEvent': case 'saveStartEvent':
//If we change Event to start from Message/Timer then Delete the record from Events Table //If we change Event to start from Message/Timer then Delete the record from Events Table
this.deleteEvent(oNewShape); this.deleteEvent(oNewShape);
@@ -1100,10 +1111,12 @@ MyWorkflow.prototype.saveShape= function(oNewShape)
break; break;
case 'addEvent': case 'addEvent':
var tas_uid=''; var tas_uid='';
if(typeof oNewShape.workflow != 'undefined' && oNewShape.workflow != null) //if(typeof oNewShape.workflow != 'undefined' && oNewShape.workflow != null)
tas_uid = oNewShape.workflow.taskUid[0].value; // tas_uid = oNewShape.workflow.taskUid[0].value;
var tas_type = oNewShape.type; var evn_type = oNewShape.type;
urlparams = '?action='+actiontype+'&data={"uid":"'+ pro_uid +'","tas_uid":"'+tas_uid+'","tas_type":"'+tas_type+'","position":'+pos+'}'; var mode = oNewShape.mode;
var evn_uid = oNewShape.id;
urlparams = '?action='+actiontype+'&data={"uid":"'+ pro_uid +'","tas_uid":"'+tas_uid+'","evn_type":"'+evn_type+'","position":'+pos+',"mode":"'+mode+'","evn_uid":"'+evn_uid+'"}';
break; break;
case 'updateEvent': case 'updateEvent':
var evn_uid = oNewShape.id var evn_uid = oNewShape.id

View File

@@ -207,6 +207,10 @@ if(typeof workflow.currentSelection != 'undefined' && workflow.currentSelection
currObj.actiontype = 'saveGatewayPosition'; currObj.actiontype = 'saveGatewayPosition';
currObj.workflow.saveShape(currObj); currObj.workflow.saveShape(currObj);
} }
else if(currObj.type.match(/Event/)){
currObj.actiontype = 'saveEventPosition';
currObj.workflow.saveShape(currObj);
}
} }
} }
workflow.setBoundary(currObj); workflow.setBoundary(currObj);

View File

@@ -816,9 +816,9 @@ Ext.onReady ( function() {
workflow.saveShape(NewShape); //Saving Annotations when user drags and drops it workflow.saveShape(NewShape); //Saving Annotations when user drags and drops it
}else if(data.name.match(/Event/)){ }else if(data.name.match(/Event/)){
NewShape.actiontype = 'addEvent'; NewShape.actiontype = 'addEvent';
NewShape.mode = 'ddEvent';
workflow.saveShape(NewShape); //Saving Annotations when user drags and drops it workflow.saveShape(NewShape); //Saving Annotations when user drags and drops it
} }
var scrollLeft = workflow.getScrollLeft(); var scrollLeft = workflow.getScrollLeft();
var scrollTop = workflow.getScrollTop(); var scrollTop = workflow.getScrollTop();
workflow.addFigure(NewShape,e.xy[0]-xOffset+scrollLeft,e.xy[1]-yOffset+scrollTop); workflow.addFigure(NewShape,e.xy[0]-xOffset+scrollLeft,e.xy[1]-yOffset+scrollTop);
@@ -980,7 +980,8 @@ Ext.onReady ( function() {
case 'events': case 'events':
for(var k=0;k<shapes.events.length;k++){ for(var k=0;k<shapes.events.length;k++){
var srceventtype = shapes.events[k][1]; var srceventtype = shapes.events[k][1];
if(! srceventtype.match(/End/)) var tas_uid = shapes.events[k][4];
if(! srceventtype.match(/End/) && tas_uid != '')
{ {
NewShape = eval("new "+srceventtype+"(workflow)"); NewShape = eval("new "+srceventtype+"(workflow)");
NewShape.x = shapes.events[k][2]; NewShape.x = shapes.events[k][2];
@@ -991,6 +992,16 @@ Ext.onReady ( function() {
NewShape.html.id = shapes.events[k][0]; NewShape.html.id = shapes.events[k][0];
NewShape.id = shapes.events[k][0]; NewShape.id = shapes.events[k][0];
} }
else if(tas_uid == ''){
NewShape = eval("new "+srceventtype+"(workflow)");
NewShape.x = shapes.events[k][2];
NewShape.y = shapes.events[k][3];
workflow.setBoundary(NewShape);
workflow.addFigure(NewShape, NewShape.x, NewShape.y);
//Setting newshape id to the old shape id
NewShape.html.id = shapes.events[k][0];
NewShape.id = shapes.events[k][0];
}
} }
break; break;
case 'annotations': case 'annotations':