2010-12-02 23:34:41 +00:00
<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name= "patterns_Current" type= "xmlform" width= "100%" enableTemplate= "1" >
2014-04-21 10:21:01 -04:00
<action type= "hidden" />
<LANG type= "private" />
<ROU_UID type= "hidden" />
<PROCESS type= "hidden" />
<TASK type= "hidden" />
<ROU_TYPE_OLD type= "hidden" />
<TITLE type= "title" showInTable= "0" >
<en > <![CDATA[Workflow Pattern]]> </en>
</TITLE>
<ROU_TYPE type= "dropdown" >
<en > <![CDATA[Type]]> <option name= "" > <![CDATA[- Select -]]> </option> <option name= "SEQUENTIAL" > <![CDATA[Sequential]]> </option> <option name= "SELECT" > <![CDATA[Selection]]> </option> <option name= "EVALUATE" > <![CDATA[Evaluation]]> </option> <option name= "PARALLEL" > <![CDATA[Parallel (fork)]]> </option> <option name= "PARALLEL-BY-EVALUATION" > <![CDATA[Parallel by evaluation (fork)]]> </option> <option name= "SEC-JOIN" > <![CDATA[Parallel (join)]]> </option> </en>
</ROU_TYPE>
<ROU_NEXT_TASK type= "dropdown" > < ![CDATA[
2010-12-02 23:34:41 +00:00
SELECT TAS_UID, CON_VALUE FROM TASK LEFT JOIN CONTENT ON (TAS_UID = CON_ID AND CON_CATEGORY = 'TAS_TITLE' AND CON_LANG = '@#LANG') WHERE PRO_UID = '@#PROCESS'
2014-04-21 10:21:01 -04:00
]]><en > <![CDATA[Next Task]]> <option name= "-1" > <![CDATA[End of process]]> </option> <option name= "-2" > <![CDATA[Leaf task]]> </option> </en> </ROU_NEXT_TASK>
<ROU_TO_LAST_USER type= "dropdown" >
<en > <![CDATA[Selection of executant]]> <option name= "FALSE" > <![CDATA[Rules and user groups]]> </option> <option name= "TRUE" > <![CDATA[Last executant of the task]]> </option> </en>
</ROU_TO_LAST_USER>
<GRID_SELECT_TYPE type= "grid" xmlgrid= "patterns/patterns_GridSelectType" addRow= "1" deleteRow= "1" editRow= "" />
<GRID_EVALUATE_TYPE type= "grid" xmlgrid= "patterns/patterns_GridEvaluateType" addRow= "1" deleteRow= "1" editRow= "" />
<GRID_PARALLEL_TYPE type= "grid" xmlgrid= "patterns/patterns_GridParallelType" addRow= "1" deleteRow= "1" editRow= "" />
<GRID_PARALLEL_EVALUATION_TYPE type= "grid" xmlgrid= "patterns/patterns_GridParallelByEvaluationType" addRow= "1" deleteRow= "1" editRow= "" />
<SAVE type= "button" onclick= "savePattern(this.form);" >
<en > <![CDATA[Save]]> </en>
</SAVE>
<JS type= "javascript" > < ![CDATA[
2010-12-02 23:34:41 +00:00
var savePattern = function(oForm)
{
var oAux;
var oType = getField('ROU_TYPE');
var oOldType = getField('ROU_TYPE_OLD');
var i = 1;
var aData = {};
var bContinue = true;
if (oType.value != oOldType.value)
{
if (!confirm('You are changing the pattern, are you sure?'))
{
return false;
}
}
switch (oType.value)
{
case 'SELECT':
var aAux = [];
while (oAux = document.getElementById('form[GRID_SELECT_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
if (!aAux.inArray(oAux.value))
{
aAux.push(oAux.value);
}
else
{
bContinue = false;
}
i++;
}
break;
case 'EVALUATE':
var aAux = [];
while (oAux = document.getElementById('form[GRID_EVALUATE_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
if (!aAux.inArray(oAux.value))
{
aAux.push(oAux.value);
}
else
{
bContinue = false;
}
i++;
}
break;
case 'PARALLEL':
var aAux = [];
while (oAux = document.getElementById('form[GRID_PARALLEL_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
if (!aAux.inArray(oAux.value))
{
aAux.push(oAux.value);
}
else
{
bContinue = false;
}
i++;
}
break;
case 'PARALLEL-BY-EVALUATION':
var aAux = [];
while (oAux = document.getElementById('form[GRID_PARALLEL_EVALUATION_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
if (!aAux.inArray(oAux.value))
{
aAux.push(oAux.value);
}
else
{
bContinue = false;
}
i++;
}
break;
}
if (!bContinue)
{
alert('You cannot select to the same task several times!');
return bContinue;
}
i = 1;
aData.tas_uid = getField('TASK').value;
aData.data = [];
switch (oType.value)
{
case 'SEQUENTIAL':
aData.type = 0;
aData.data.push(getField('ROU_NEXT_TASK').value);
break;
case 'SELECT':
aData.type = 1;
while (oAux = document.getElementById('form[GRID_SELECT_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
aData.data.push(oAux.value);
i++;
}
break;
case 'EVALUATE':
aData.type = 2;
while (oAux = document.getElementById('form[GRID_EVALUATE_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
aData.data.push(oAux.value);
i++;
}
break;
case 'PARALLEL':
aData.type = 3;
while (oAux = document.getElementById('form[GRID_PARALLEL_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
aData.data.push(oAux.value);
i++;
}
break;
case 'PARALLEL-BY-EVALUATION':
aData.type = 4;
while (oAux = document.getElementById('form[GRID_PARALLEL_EVALUATION_TYPE][' + i + '][ROU_NEXT_TASK]'))
{
aData.data.push(oAux.value);
i++;
}
break;
case 'SEC-JOIN':
aData.type = 5;
aData.data.push(getField('ROU_NEXT_TASK').value);
break;
}
Pm.data.build.derivation(aData);
ajax_post(oForm.action, oForm, 'POST');
Pm.tmp.derivationsPanel.remove();
};
var onChangePattern = function(oEvent, oType)
{
oType = (oType ? oType : oEvent.target || window.event.srcElement);
switch (oType.value)
{
case '':
hideRowById('ROU_NEXT_TASK');
hideRowById('ROU_TO_LAST_USER');
hideRowById('GRID_SELECT_TYPE');
hideRowById('GRID_EVALUATE_TYPE');
hideRowById('GRID_PARALLEL_TYPE');
hideRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
case 'SEQUENTIAL':
case 'SEC-JOIN':
showRowById('ROU_NEXT_TASK');
showRowById('ROU_TO_LAST_USER');
hideRowById('GRID_SELECT_TYPE');
hideRowById('GRID_EVALUATE_TYPE');
hideRowById('GRID_PARALLEL_TYPE');
hideRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
case 'SELECT':
hideRowById('ROU_NEXT_TASK');
hideRowById('ROU_TO_LAST_USER');
showRowById('GRID_SELECT_TYPE');
hideRowById('GRID_EVALUATE_TYPE');
hideRowById('GRID_PARALLEL_TYPE');
hideRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
case 'EVALUATE':
hideRowById('ROU_NEXT_TASK');
hideRowById('ROU_TO_LAST_USER');
hideRowById('GRID_SELECT_TYPE');
showRowById('GRID_EVALUATE_TYPE');
hideRowById('GRID_PARALLEL_TYPE');
hideRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
case 'PARALLEL':
hideRowById('ROU_NEXT_TASK');
hideRowById('ROU_TO_LAST_USER');
hideRowById('GRID_SELECT_TYPE');
hideRowById('GRID_EVALUATE_TYPE');
showRowById('GRID_PARALLEL_TYPE');
hideRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
case 'PARALLEL-BY-EVALUATION':
hideRowById('ROU_NEXT_TASK');
hideRowById('ROU_TO_LAST_USER');
hideRowById('GRID_SELECT_TYPE');
hideRowById('GRID_EVALUATE_TYPE');
hideRowById('GRID_PARALLEL_TYPE');
showRowById('GRID_PARALLEL_EVALUATION_TYPE');
break;
}
};
leimnud.event.add(getField('ROU_TYPE'), 'change', {method:onChangePattern, instance:this, event:true});
onChangePattern(null, getField('ROU_TYPE'));
]]></JS>
2014-04-21 10:21:01 -04:00
</dynaForm>