Completed saving and loading Gateway...

This commit is contained in:
safan
2011-02-15 13:21:37 +00:00
parent e3c152cad7
commit f458ccf78e
4 changed files with 96 additions and 8 deletions

View File

@@ -1462,7 +1462,7 @@ class processMap {
try {
$oGateway = new Gateway ( );
$aData = array();
$aData['PRO_UID'] = $oData->pro_uid;
$aData['PRO_UID'] = $oData->pro_uid;
$aData['GAT_X'] = $oData->position->x;
$aData['GAT_Y'] = $oData->position->y;
$aData['GAT_TYPE'] = $oData->gat_type;
@@ -1472,6 +1472,8 @@ class processMap {
$sGat_uid = $oGateway->create($aData);
}else{
$aData['GAT_UID'] = $sGat_uid;
$aData['TAS_UID'] = $oData->tas_from;
$aData['GAT_NEXT_TASK'] = $oData->tas_to;
$oGateway->update($aData);
}
$oEncode->uid = $sGat_uid;

View File

@@ -44,7 +44,6 @@ if($aData['ROU_TYPE'] != 'SEQUENTIAL')
$aGatewayFields['GAT_NEXT_TASK'] = $aData['ROU_NEXT_TASK'][0];
$aGatewayFields['GAT_TYPE'] = $aData['GAT_TYPE'];
$oGateway->update($aGatewayFields);
die;
//$sGatewayUID = $oProcessMap->saveNewGateway($aData['PROCESS'], $aData['TASK'][0], $aData['ROU_NEXT_TASK'][0]);
//echo $sGatewayUID.'|';
}
@@ -54,6 +53,7 @@ else
G::LoadClass('tasks');
$oTasks = new Tasks();
$rou_id = 0;
$aFields['GAT_UID'] = $aData['GAT_UID'];
switch ($aData['action']) {
case 'savePattern':
//if ($aData['ROU_TYPE'] != $aData['ROU_TYPE_OLD'])

View File

@@ -1174,8 +1174,7 @@ MyWorkflow.prototype.saveShape= function(oNewShape)
case 'addGateway':
var gat_uid = oNewShape.id
var gat_type = oNewShape.type;
var mode = oNewShape.mode;
urlparams = '?action='+actiontype+'&data={"pro_uid":"'+ pro_uid +'","gat_uid":"'+gat_uid +'","gat_type":"'+gat_type+'","position":'+pos+',"mode":"'+mode+'"}';
urlparams = '?action='+actiontype+'&data={"pro_uid":"'+ pro_uid +'","gat_uid":"'+gat_uid +'","gat_type":"'+gat_type+'","position":'+pos+'}';
break;
}
//var urlparams = '?action='+actiontype+'&data={"uid":"'+ pro_uid +'","position":'+pos+'}';
@@ -1217,6 +1216,9 @@ MyWorkflow.prototype.saveShape= function(oNewShape)
else if(oNewShape.type.match(/Start/) && oNewShape.type.match(/Event/)){
workflow.saveEvents(oNewShape);
}
else if(oNewShape.type.match(/Gateway/)){
workflow.saveGateways(oNewShape);
}
}
},
failure: function(){
@@ -1450,6 +1452,77 @@ MyWorkflow.prototype.getStartEventConn = function(oShape,sPort,sPortType)
return aStartTask;
}
/**
* save Gateway depending on the Shape Type
* @Param oGateway Object
* @Param sTaskUID string
* @Author Safan Maredia
*/
MyWorkflow.prototype.saveGateways = function(oGateway){
var task_uid = new Array();
var next_task_uid = new Array();
var urlparams = '';
var xpos = oGateway.x;
var ypos = oGateway.y;
var pos = '{"x":'+xpos+',"y":'+ypos+'}';
var ports = oGateway.getPorts();
var len =ports.data.length;
//Get all the connection of the shape
var conn = new Array();
var count1 = 0;
var count2 = 0;
for(var i=0; i<=len; i++){
if(typeof ports.data[i] === 'object')
conn[i] = ports.data[i].getConnections();
}
//Get ALL the connections for the specified PORT
for(i = 0; i< conn.length ; i++){
if(typeof conn[i] != 'undefined')
for(var j = 0; j < conn[i].data.length ; j++){
if(typeof conn[i].data[j] != 'undefined'){
if(conn[i].data[j].sourcePort.parentNode.type != oGateway.type){
// task_uid[count1] = new Array();
task_uid = conn[i].data[j].sourcePort.parentNode.id;
count1++;
}
if(conn[i].data[j].targetPort.parentNode.type != oGateway.type){
// task_uid[count2] = new Array();
next_task_uid = conn[i].data[j].targetPort.parentNode.id;
//count2++;
}
}
}
}
// var staskUid = Ext.util.JSON.encode(task_uid);
// var sNextTaskUid = Ext.util.JSON.encode(next_task_uid);
urlparams = '?action=addGateway&data={"pro_uid":"'+ pro_uid +'","tas_from":"'+task_uid+'","tas_to":"'+next_task_uid+'","gat_type":"'+oGateway.type+'","gat_uid":"'+oGateway.id+'","position":'+pos+'}';
if(urlparams != ''){
Ext.Ajax.request({
url: "processes_Ajax.php"+ urlparams,
success: function(response) {
if(response.responseText != '')
{
// workflow.currentSelection.id = response.responseText;
/*if(workflow.currentSelection.type.match(/Inter/) && workflow.currentSelection.type.match(/Event/)){
workflow.currentSelection.id = response.responseText;
var newObj = workflow.currentSelection;
var preObj = new Array();
preObj.type = 'bpmnTask';
preObj.id = task_uid[0];
newObj.evn_uid = workflow.currentSelection.id;
newObj.task_to = next_task_uid[0];
this.workflow.saveRoute(preObj,newObj);
}*/
}
},
failure: function(){
Ext.Msg.alert ('Failure');
}
});
}
}
/**
* save Event depending on the Shape Type
* @Param oShape Object
@@ -1644,8 +1717,8 @@ MyWorkflow.prototype.saveRoute = function(preObj,newObj)
var staskUid = Ext.util.JSON.encode(task_uid);
var sNextTaskUid = Ext.util.JSON.encode(next_task_uid);
var sGatUid = preObj.id;
var sGatType = preObj.type;
if(staskUid != '')
var sGatType = preObj.type;
if(task_uid.length > 0 && next_task_uid.length > 0)
{
Ext.Ajax.request({
url: "patterns_Ajax.php",
@@ -1684,6 +1757,8 @@ MyWorkflow.prototype.saveRoute = function(preObj,newObj)
}
});
}
else
workflow.saveGateways(preObj);
}
MyWorkflow.prototype.deleteRoute = function(oConn,iVal){

View File

@@ -323,6 +323,12 @@ InputPort.prototype.onDrop = function (port) {
newObj = port.parentNode;
workflow.saveRoute(newObj,shape);
}
//Routing from gateway to task
else if(bpmnType.match(/Gateway/) && port.parentNode.type.match(/Task/)){
preObj = this.workflow.currentSelection;
newObj = port.parentNode;
this.workflow.saveRoute(preObj,newObj);
}
//Routing from task to Intermediate event
else if(port.parentNode.type.match(/Inter/) && port.parentNode.type.match(/Event/) && bpmnType.match(/Task/)){
workflow.saveEvents(port.parentNode);
@@ -396,6 +402,11 @@ OutputPort.prototype.onDrop = function (port) {
preObj = this.workflow.currentSelection;
this.workflow.saveRoute(preObj,shape);
}
else if(bpmnType.match(/Task/) && port.parentNode.type.match(/Gateway/)){ //Routing from task to gateway
newObj = port.parentNode;
preObj = this.workflow.currentSelection;
this.workflow.saveRoute(newObj,preObj);
}
}
};
@@ -749,8 +760,8 @@ bpmnTask.prototype.addShapes = function (oStore) {
conn.setTarget(newShape.getPort("input2"));
conn.setSource(workflow.currentSelection.getPort("output1"));
workflow.addFigure(conn);
//newShape.actiontype = 'addGateway';
//workflow.saveShape(newShape);
newShape.actiontype = 'addGateway';
workflow.saveShape(newShape);
}
else if (newShape.type.match(/Start/)) {
conn.setTarget(newShape.getPort("output1"));