diff --git a/workflow/engine/methods/bpmn/processes_Ajax.php b/workflow/engine/methods/bpmn/processes_Ajax.php index 59a570a83..3fa48cb78 100755 --- a/workflow/engine/methods/bpmn/processes_Ajax.php +++ b/workflow/engine/methods/bpmn/processes_Ajax.php @@ -275,20 +275,35 @@ if ( isset ($_REQUEST['action']) ) { } break; - case 'saveSubProcessVariables': + case 'saveSubprocessDetails': //$aTask=$oTask->load($_POST['form']['TASKS']); //$aTask=$oTask->load($_POST['form']['PRO_UID']); $out = array(); $in = array(); - if(isset($_POST['VAR_OUT1'])) + + if(isset($_POST['VAR_OUT']) && $_POST['VAR_OUT'] != '') { - $out[$_POST['VAR_OUT1']] = $_POST['VAR_OUT2']; + $varOut = explode('|',$_POST['VAR_OUT']); + $aVarOut1 = json_decode($varOut[0]); + $aVarOut2 = json_decode($varOut[1]); + for($i=1; $i<=count($aVarOut1); $i++) + { + $out[$aVarOut1[$i-1]]= $aVarOut2[$i-1]; + } } - if(isset($_POST['VAR_IN1'])) + if(isset($_POST['VAR_IN']) && $_POST['VAR_IN'] != '') { - $in[$_POST['VAR_IN1']] = $_POST['VAR_IN2']; + $varIn = explode('|',$_POST['VAR_IN']); + $aVarIn1 = json_decode($varIn[0]); + $aVarIn2 = json_decode($varIn[1]); + for($i=1; $i<=count($aVarIn1); $i++) + { + $in[$aVarIn1[$i-1]]= $aVarIn2[$i-1]; + } } + if($_POST['VAR_IN'] == '') + $in[$_POST['VAR_IN']] = ''; $aTask=($_POST['TASKS']!=0)?$oTask->load($_POST['TASKS']):0; //$aTask['PRO_UID']=0; @@ -297,14 +312,14 @@ if ( isset ($_REQUEST['action']) ) { $_POST['SP_SYNCHRONOUS'] = '0'; } - if ( !isset ( $_POST['form']['SP_SYNCHRONOUS']) ) { + if ( !isset ( $_POST['SP_SYNCHRONOUS']) ) { $_POST['SP_SYNCHRONOUS'] = '0'; } require_once 'classes/model/SubProcess.php'; $oOP = new SubProcess(); $aData = array('SP_UID' => $_POST['SP_UID'],//G::generateUniqueID(), - 'PRO_UID' => $_POST['PRO_UID'], + 'PRO_UID' => $aTask['PRO_UID'], 'TAS_UID' => $_POST['TASKS'], 'PRO_PARENT' => $_POST['PRO_PARENT'], 'TAS_PARENT' => $_POST['TAS_PARENT'], @@ -316,17 +331,19 @@ if ( isset ($_REQUEST['action']) ) { 'SP_VARIABLES_IN' => serialize($in), 'SP_GRID_IN' => ''); - $oOP->update($aData); break; - case'saveSubprocessDetails': + case'saveSubprocessDetails11': + //$aTask=($_POST['TASKS']!=0)?$oTask->load($_POST['TASKS']):0; require_once 'classes/model/SubProcess.php'; $oOP = new SubProcess(); $aData = array( - 'SP_UID' => $_POST['SP_UID'], - 'PRO_UID' => $_POST['PRO_UID'], - 'SP_SYNCHRONOUS' => $_POST['SP_SYNCHRONOUS'], + 'SP_UID' => $_POST['SP_UID'], + 'PRO_UID' => $_POST['PRO_UID'], + 'PRO_PARENT' => $_POST['PRO_PARENT'], + 'TAS_PARENT' => $_POST['TAS_PARENT'], + 'SP_SYNCHRONOUS' => $_POST['SP_SYNCHRONOUS'] ); $oOP->update($aData); diff --git a/workflow/engine/templates/bpmn/ProcessOptions.js b/workflow/engine/templates/bpmn/ProcessOptions.js index 2baf8c4f1..d4de76709 100755 --- a/workflow/engine/templates/bpmn/ProcessOptions.js +++ b/workflow/engine/templates/bpmn/ProcessOptions.js @@ -14,10 +14,10 @@ ProcessOptions.prototype.addDynaform= function(_5625) var pro_uid = workflow.getUrlVars(); var dynaFields = Ext.data.Record.create([ - { name: 'DYN_UID', type: 'string'}, - { name: 'DYN_TYPE', type: 'string'}, - { name: 'DYN_TITLE', type: 'string'}, - { name: 'DYN_DISCRIPTION',type: 'string'}, + {name: 'DYN_UID', type: 'string'}, + {name: 'DYN_TYPE', type: 'string'}, + {name: 'DYN_TITLE', type: 'string'}, + {name: 'DYN_DISCRIPTION',type: 'string'}, {name: 'ACTION', type: 'string'} ]); @@ -127,9 +127,9 @@ ProcessOptions.prototype.addDynaform= function(_5625) //Creating store for getting list of additional PM tables var additionalTablesFields = Ext.data.Record.create([ - { name: 'ADD_TAB_UID', type: 'string'}, - { name: 'ADD_TAB_NAME', type: 'string'}, - { name: 'ADD_TAB_DESCRIPTION',type: 'string'} + {name: 'ADD_TAB_UID', type: 'string'}, + {name: 'ADD_TAB_NAME', type: 'string'}, + {name: 'ADD_TAB_DESCRIPTION',type: 'string'} ]); var additionalTables = new Ext.data.JsonStore({ @@ -146,10 +146,10 @@ ProcessOptions.prototype.addDynaform= function(_5625) //Creating store for getting list of Fields of additional PM tables var TablesFields = Ext.data.Record.create([ - { name: 'FLD_UID',type: 'string'}, - { name: 'FLD_NAME',type: 'string'}, - { name: 'FLD_DESCRIPTION',type: 'string'}, - { name: 'FLD_TYPE',type: 'string'} + {name: 'FLD_UID',type: 'string'}, + {name: 'FLD_NAME',type: 'string'}, + {name: 'FLD_DESCRIPTION',type: 'string'}, + {name: 'FLD_TYPE',type: 'string'} ]); var tablesFieldsStore = new Ext.data.JsonStore({ @@ -192,6 +192,19 @@ ProcessOptions.prototype.addDynaform= function(_5625) } }); } + function renderName(value, metaData, record, rowIndex, colIndex, store) { + var returnString = ""; + if(record.get("sex") == "male") { + metaData.attr = 'style="color: blue;"'; + returnString += "Mr."; + } + if(record.get("sex") == "female") { + metaData.attr = 'style="color: red;"'; + returnString += "Mrs."; + } + returnString += " "+value; + return returnString; +} var dynaformColumns = new Ext.grid.ColumnModel({ columns: [ @@ -214,7 +227,7 @@ ProcessOptions.prototype.addDynaform= function(_5625) editor: new Ext.form.TextField({ allowBlank: false }) - }, + },{ header: "Name", dataIndex: "name", renderer: renderName}, { sortable: false, renderer: function(val, meta, record) @@ -538,14 +551,14 @@ ProcessOptions.prototype.dbConnection = function() //Database store code starts here var dbConnFields = Ext.data.Record.create([ - { name: 'DBS_UID',type: 'string'}, - { name: 'DBS_TYPE',type: 'string'}, - { name: 'DBS_SERVER',type: 'string'}, - { name: 'DBS_DATABASE_NAME',type: 'string'}, - { name: 'DBS_USERNAME',type: 'string'}, - { name: 'DBS_PASSWORD',type: 'string'}, - { name: 'DBS_PORT',type: 'string'}, - { name: 'DBS_DESCRIPTION',type: 'string'} + {name: 'DBS_UID',type: 'string'}, + {name: 'DBS_TYPE',type: 'string'}, + {name: 'DBS_SERVER',type: 'string'}, + {name: 'DBS_DATABASE_NAME',type: 'string'}, + {name: 'DBS_USERNAME',type: 'string'}, + {name: 'DBS_PASSWORD',type: 'string'}, + {name: 'DBS_PORT',type: 'string'}, + {name: 'DBS_DESCRIPTION',type: 'string'} ]); var btnNew = new Ext.Button({ @@ -1326,9 +1339,9 @@ ProcessOptions.prototype.addInputDoc= function(_5625) store: new Ext.data.JsonStore({ fields : ['name', 'value'], data : [ - {name : 'original', value: 'ORIGINAL'}, - {name : 'legal copy', value: 'COPYLEGAL'}, - {name : 'copy', value: 'COPY'} + {name : 'Original', value: 'ORIGINAL'}, + {name : 'Legal Copy', value: 'COPYLEGAL'}, + {name : 'Copy', value: 'COPY'} ]}) }] },{ @@ -1438,10 +1451,10 @@ ProcessOptions.prototype.addInputDoc= function(_5625) var sDocTitle = getForm.INP_DOC_TITLE; var sFormNeeded = getForm.INP_DOC_FORM_NEEDED; var sOrig = getForm.INP_DOC_ORIGINAL; - if(sOrig == "") + if(sOrig == "" || sOrig == "Original") sOrig = 'ORIGINAL'; - if(sOrig == 'legal copy') + if(sOrig == 'Legal Copy') sOrig = 'COPYLEGAL'; if(sFormNeeded == 'Digital') @@ -1809,7 +1822,7 @@ ProcessOptions.prototype.addOutputDoc= function(_5625) monitorValid :true, labelWidth : 100, bodyStyle :'padding:5px 5px 0', - defaults :{ autoScroll:true }, + defaults :{autoScroll:true}, width : 500, items :[{ @@ -2165,7 +2178,7 @@ ProcessOptions.prototype.addOutputDoc= function(_5625) var newOPWindow = new Ext.Window({ title : _('ID_OUTPUT_DOCUMENTS'), width : 550, - defaults :{ autoScroll:true }, + defaults :{autoScroll:true}, height : 450, minWidth : 200, minHeight : 150, @@ -2181,7 +2194,7 @@ ProcessOptions.prototype.addOutputDoc= function(_5625) collapsible : false, maximizable : false, width : 550, - defaults :{ autoScroll:true }, + defaults :{autoScroll:true}, height : 420, minWidth : 200, minHeight : 150, @@ -2360,7 +2373,7 @@ ProcessOptions.prototype.addReportTable= function(_5625) collapsible : false, maximizable : false, width : 400, - defaults :{ autoScroll:true }, + defaults :{autoScroll:true}, height : 450, minWidth : 200, minHeight : 150, diff --git a/workflow/engine/templates/bpmn/TaskContext.js b/workflow/engine/templates/bpmn/TaskContext.js index 00cc38fab..85903edc2 100755 --- a/workflow/engine/templates/bpmn/TaskContext.js +++ b/workflow/engine/templates/bpmn/TaskContext.js @@ -2287,7 +2287,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) url : 'proxySubProcessProperties?pid='+pro_uid+'&tid='+taskId+'&type=0' //type=0 specifies Variables Out (Asynchronous) }) }); - variablesOutStore.load(); + variablesOutStore.load(); // create the Data Store of all Variables In var variablesInStore = new Ext.data.JsonStore({ @@ -2329,6 +2329,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) plugins : [editorOut], columns : [{ id : 'VAR_OUT1', + name : 'VAR_OUT1', header : 'Origin', dataIndex: 'VAR_OUT1', width : 200, @@ -2346,6 +2347,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) }, { id : 'VAR_OUT2', + name : 'VAR_OUT2', header : 'Target', dataIndex : 'VAR_OUT2', width : 200, @@ -2381,6 +2383,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) plugins : [editorIn], columns : [{ id : 'VAR_IN1', + name : 'VAR_IN1', header : 'Origin', dataIndex: 'VAR_IN1', width : 200, @@ -2398,6 +2401,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) }, { id : 'VAR_IN2', + name : 'VAR_IN2', header : 'Target', dataIndex : 'VAR_IN2', width : 200, @@ -2421,10 +2425,10 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) - editorOut.on({ + /* editorOut.on({ scope: this, afteredit: function(roweditor, changes, record, rowIndex) { - + var storeData = variableOutGrid.getStore(); var sSP_UID = spUID; var sProcess_Parent = proParent; var sSync = spSync; @@ -2458,6 +2462,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) editorIn.on({ scope: this, afteredit: function(roweditor, changes, record, rowIndex) { + var storeData = variableInGrid.getStore(); var sSP_UID = spUID; var sProcess_Parent = proParent; var sSync = spSync; @@ -2485,7 +2490,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) }); } - }); + });*/ var subProcessProperties = new Ext.FormPanel({ labelWidth : 110, // label settings here cascade unless overridden @@ -2568,6 +2573,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) }, { id :'variableout', + name :'VAR_OUT1', xtype:'fieldset', title: 'Variables Out', collapsible: false, @@ -2576,6 +2582,7 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) }, { id :'variablein', + name :'VAR_IN1', xtype:'fieldset', title: 'Variables In', //hidden: true, @@ -2591,13 +2598,15 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) method:'GET', waitMsg:'Loading....', success:function(form, action) { - spUID = action.result.data[0].SP_UID; - proParent = action.result.data[0].PRO_PARENT; - spSync = action.result.data[0].SP_SYNCHRONOUS; - tasParent = action.result.data[0].TAS_PARENT; - tasks = action.result.data[0].TASKS; - var processName = action.result.data[0].SPROCESS_NAME; - if(action.result.data.SP_SYNCHRONOUS == 0) + var response = action.response.responseText; + var aData = Ext.util.JSON.decode(response); + spUID = aData.data[0].SP_UID; + proParent = aData.data[0].PRO_PARENT; + spSync = aData.data[0].SP_SYNCHRONOUS; + tasParent = aData.data[0].TAS_PARENT; + tasks = aData.data[0].TASKS; + var processName = aData.data[0].SPROCESS_NAME; + if(action.result.data[0].SP_SYNCHRONOUS == 0) { Ext.getCmp("variablein").hide(); form.findField('SP_SYNCHRONOUS').setValue('Asynchronous'); @@ -2634,21 +2643,56 @@ TaskContext.prototype.editSubProcessProperties= function(_3525) text: 'Save', handler: function(){ var getForm = subProcessProperties.getForm().getValues(); - var sTask_Parent = getForm.SEL_PROCESS; + + //Getting data from Grid (Variables In and Out) + var storeOutData = variableOutGrid.getStore(); + var storeInData = variableInGrid.getStore(); + var storeOutLength = storeOutData.data.items.length; + var storeInLength = storeInData.data.items.length; + var varOut1 = new Array(); + var varOut2 = new Array(); + for(var i=0;i