Spaces:
Sleeping
Sleeping
processmaker-community / processmaker-files /workflow /engine /xmlform /patterns /patterns_Current.xml
| <dynaForm name="patterns_Current" type="xmlform" width="100%" enableTemplate="1"> | |
| <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[ | |
| 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' | |
| ]]><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[ | |
| 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> | |
| </dynaForm> | |