<?xml version="1.0" encoding="UTF-8"?>
<dynaForm name="tasks_AssignmentRules" width="99%" mode="edit" enableTemplate="0" border="0" height="305px">
  <TAS_UID type="hidden"/>
  <INDEX type="hidden"/>
  <IFORM type="hidden"/>
  <PRO_UID type="private"/>
  <LANG type="private"/>
  <TAS_ASSIGN_TYPE type="radiogroup" defaultvalue="BALANCED" group="1">
    <en><![CDATA[Case to be assigned by]]><option name="BALANCED"><![CDATA[Cyclical Assignment]]></option><option name="MANUAL"><![CDATA[Manual Assignment]]></option><option name="EVALUATE"><![CDATA[Value Based Assignment]]></option><option name="REPORT_TO"><![CDATA[Reports to]]></option><option name="SELF_SERVICE"><![CDATA[Self Service]]></option><option name="SELF_SERVICE_EVALUATE"><![CDATA[Self Service Value Based Assignment]]></option></en>
  </TAS_ASSIGN_TYPE>
  <TAS_ASSIGN_VARIABLE type="textpm" size="40" maxlength="155" defaultvalue="@@SYS_NEXT_USER_TO_BE_ASSIGNED" showVars="1" process="@#PRO_UID">
    <en><![CDATA[Variable for Value Based Assignment]]></en>
  </TAS_ASSIGN_VARIABLE>
  <TAS_GROUP_VARIABLE type="textpm" size="40" maxlength="155" defaultvalue="@@SYS_GROUP_TO_BE_ASSIGNED" showVars="1" process="@#PRO_UID">
    <en><![CDATA[Variable for Self Service Value Based Assignment]]></en>
  </TAS_GROUP_VARIABLE>
  <!-- this feature is temporarily disabled -->
  <!--TAS_MI_INSTANCE_VARIABLE type="textpm" size="40" maxlength="155" defaultvalue="@@SYS_VAR_TOTAL_INSTANCE" showVars="1" process="@#PRO_UID">
  <en>Variable for No of Instances</en>
</TAS_MI_INSTANCE_VARIABLE>
<TAS_MI_COMPLETE_VARIABLE type="textpm" size="40" maxlength="155" defaultvalue="@@SYS_VAR_TOTAL_INSTANCES_COMPLETE" showVars="1" process="@#PRO_UID">
  <en>Variable for No of Instances to complete</en>
</TAS_MI_COMPLETE_VARIABLE-->
  <TAS_SELFSERVICE_TIMEOUT type="checkbox" value="1">
    <en><![CDATA[Set a timeout]]></en>
  </TAS_SELFSERVICE_TIMEOUT>
  <TAS_SELFSERVICE_TIME type="text" required="1" validate="Int" size="3">
    <en><![CDATA[Time]]></en>
  </TAS_SELFSERVICE_TIME>
  <TAS_SELFSERVICE_TIME_UNIT type="dropdown">
    <en><![CDATA[Time unit]]><option name="HOURS"><![CDATA[Hours]]></option><option name="DAYS"><![CDATA[Days]]></option><option name="MINUTES"><![CDATA[Minutes]]></option></en>
  </TAS_SELFSERVICE_TIME_UNIT>
  <TAS_SELFSERVICE_TRIGGER_UID type="dropdown" required="1"><![CDATA[
    SELECT TGR.TRI_UID, CON.CON_VALUE
    FROM   TRIGGERS AS TGR, CONTENT AS CON
    WHERE  TGR.PRO_UID = '@#PRO_UID' AND
           TGR.TRI_UID = CON.CON_ID AND CON.CON_CATEGORY = 'TRI_TITLE' AND CON.CON_LANG = '@#LANG'
    ORDER BY CON.CON_VALUE ASC
    ]]><en><![CDATA[Trigger to execute]]><option name=""><![CDATA[- Select a trigger -]]></option></en></TAS_SELFSERVICE_TRIGGER_UID>
  <!--//////////////////////////////////********//////////////////////////////////-->
  <TAS_SELFSERVICE_EXECUTION type="dropdown">
    <en><![CDATA[Execute Trigger]]><option name="EVERY_TIME"><![CDATA[Every time scheduled by cron]]></option><option name="ONCE"><![CDATA[Once]]></option></en>
  </TAS_SELFSERVICE_EXECUTION>
  <!--//////////////////////////////////********//////////////////////////////////-->
  <JS type="javascript"><![CDATA[
var selfServiceTimeoutDataShow = function (sw)
{
    hideRowById("TAS_SELFSERVICE_TIME");
    hideRowById("TAS_SELFSERVICE_TIME_UNIT");
    hideRowById("TAS_SELFSERVICE_TRIGGER_UID");

    if (sw == true) {
        showRowById("TAS_SELFSERVICE_TIME");
        showRowById("TAS_SELFSERVICE_TIME_UNIT");
        showRowById("TAS_SELFSERVICE_TRIGGER_UID");
    }
};

var showTextpm = function ()
{
    hideRowById("TAS_ASSIGN_VARIABLE");
    hideRowById("TAS_GROUP_VARIABLE");
    /* this feature is temporarily disabled
    hideRowById("TAS_MI_INSTANCE_VARIABLE");
    hideRowById("TAS_MI_COMPLETE_VARIABLE");
    */
    hideRowById("TAS_SELFSERVICE_TIMEOUT");

    selfServiceTimeoutDataShow(false);

    /* this feature is temporarily disabled
    if(getField("TAS_ASSIGN_TYPE][STATIC_MI").checked == true || getField("TAS_ASSIGN_TYPE][CANCEL_MI").checked == true) {
        showRowById("TAS_MI_INSTANCE_VARIABLE");
        showRowById("TAS_MI_COMPLETE_VARIABLE");
        hideRowById("TAS_ASSIGN_VARIABLE");
    } else */

    if (getField("TAS_ASSIGN_TYPE][EVALUATE").checked == true) {
        getField("TAS_SELFSERVICE_TIMEOUT").checked = false;

        showRowById("TAS_ASSIGN_VARIABLE");
        //getField("TAS_GROUP_VARIABLE").value = "";
    } else {
        if (getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE") && getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE").checked) {
            showRowById("TAS_GROUP_VARIABLE");
            showRowById("TAS_SELFSERVICE_TIMEOUT");

            if (getField("TAS_GROUP_VARIABLE").value == "") {
                getField("TAS_GROUP_VARIABLE").value = "@" + "@" + "SYS_GROUP_TO_BE_ASSIGNED"; //the class xmlform replace this variable @@SYS_GROUP_TO_BE_ASSIGNED
            }

            selfServiceTimeoutDataShow(getField("TAS_SELFSERVICE_TIMEOUT").checked);
        } else {
            if (getField("TAS_ASSIGN_TYPE][SELF_SERVICE").checked) {
                showRowById("TAS_SELFSERVICE_TIMEOUT");

                selfServiceTimeoutDataShow(getField("TAS_SELFSERVICE_TIMEOUT").checked);
            } else {
                getField("TAS_SELFSERVICE_TIMEOUT").checked = false;

                //getField("TAS_GROUP_VARIABLE").value = "";
            }
        }
    }
};

/* Recovery data */
if (aTaskFlag[1])
{
  switch (oTaskData.TAS_ASSIGN_TYPE)
  {
    case "SELF_SERVICE":
    case "SELF_SERVICE_EVALUATE":
        if (oTaskData.TAS_ASSIGN_TYPE == "SELF_SERVICE") {
            getField("TAS_ASSIGN_TYPE][SELF_SERVICE").checked = true;
        } else {
            getField("TAS_GROUP_VARIABLE").value = oTaskData.TAS_GROUP_VARIABLE;
            if (getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE")) {
                getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE").checked = true;
            }
        }

        getField("TAS_SELFSERVICE_TIMEOUT").checked = (oTaskData.TAS_SELFSERVICE_TIMEOUT == 1)? true : false;
        getField("TAS_SELFSERVICE_TIME").value = oTaskData.TAS_SELFSERVICE_TIME;

        if (oTaskData.TAS_SELFSERVICE_TIME_UNIT != "") {
            getField("TAS_SELFSERVICE_TIME_UNIT").value = oTaskData.TAS_SELFSERVICE_TIME_UNIT;
        }

        getField("TAS_SELFSERVICE_TRIGGER_UID").value = oTaskData.TAS_SELFSERVICE_TRIGGER_UID;

        showTextpm();
        break;
    case 'REPORT_TO':
      getField('TAS_ASSIGN_TYPE][REPORT_TO').checked = true;
      showTextpm();
    break;
    case 'BALANCED':
      getField('TAS_ASSIGN_TYPE][BALANCED').checked = true;
      showTextpm();
    break;
    case 'MANUAL':
      getField('TAS_ASSIGN_TYPE][MANUAL').checked = true;
      showTextpm();
    break;
    case 'EVALUATE':
      getField('TAS_ASSIGN_TYPE][EVALUATE').checked = true;
      showTextpm();
    break;
    case 'SELFSERVICE':
      getField('TAS_ASSIGN_TYPE][SELFSERVICE').checked = true;
      showTextpm();
    break;
    /* this feature is temporarily disabled
    case 'STATIC_MI':
      getField('TAS_ASSIGN_TYPE][STATIC_MI').checked = true;
      showTextpm();
    break;
    case 'CANCEL_MI':
      getField('TAS_ASSIGN_TYPE][CANCEL_MI').checked = true;
      showTextpm();
    break;*/
  }
  getField('TAS_ASSIGN_VARIABLE').value         = oTaskData.TAS_ASSIGN_VARIABLE;
/*
  getField('TAS_MI_INSTANCE_VARIABLE').value    = oTaskData.TAS_MI_INSTANCE_VARIABLE;
  getField('TAS_MI_COMPLETE_VARIABLE').value    = oTaskData.TAS_MI_COMPLETE_VARIABLE;
*/
  /*getField('TAS_DERIVATION').checked          = (oTaskData.TAS_DERIVATION == 'TRUE' ? true : false);
  getField('TAS_PRIORITY_VARIABLE').checked     = (oTaskData.TAS_PRIORITY_VARIABLE == 'TRUE' ? true : false);
  getField('TAS_ASSIGN_LOCATION').checked       = (oTaskData.TAS_ASSIGN_LOCATION == 'TRUE' ? true : false);
  getField('TAS_ASSIGN_LOCATION_ADHOC').checked = (oTaskData.TAS_ASSIGN_LOCATION_ADHOC == 'TRUE' ? true : false);
  getField('TAS_OWNER_APP').value               = oTaskData.TAS_OWNER_APP;*/
}
else
{
saveDataTaskTemporal(2);
aTaskFlag[1] = true;
showTextpm();
}

leimnud.event.add(getField('TAS_ASSIGN_TYPE][SELF_SERVICE'), 'click', function() {
  showTextpm();
});

if (getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE")) {
    leimnud.event.add(
        getField("TAS_ASSIGN_TYPE][SELF_SERVICE_EVALUATE"),
        "click",
        function ()
        {
            showTextpm();
        }
    );
}

leimnud.event.add(getField('TAS_ASSIGN_TYPE][REPORT_TO'), 'click', function() {
  showTextpm();
});

leimnud.event.add(getField('TAS_ASSIGN_TYPE][BALANCED'), 'click', function() {
  showTextpm();
});
leimnud.event.add(getField('TAS_ASSIGN_TYPE][MANUAL'), 'click', function() {
  showTextpm();
});
leimnud.event.add(getField('TAS_ASSIGN_TYPE][EVALUATE'), 'click', function() {
  showTextpm();
});
/* this feature is temporarily disabled
leimnud.event.add(getField('TAS_ASSIGN_TYPE][STATIC_MI'), 'click', function() {
  showTextpm();
});
leimnud.event.add(getField('TAS_ASSIGN_TYPE][CANCEL_MI'), 'click', function() {
  showTextpm();
});*/

if (!getField('TAS_ASSIGN_TYPE][EVALUATE').checked) {
  showTextpm();
}

leimnud.event.add(getField("TAS_SELFSERVICE_TIMEOUT"), "click", function () {
    selfServiceTimeoutDataShow(getField("TAS_SELFSERVICE_TIMEOUT").checked);
});


var _oVarsPanel_;
var showDynaformsFormVars = function(sFieldName, sAjaxServer, sProcess, sSymbol) {
	_oVarsPanel_ = new leimnud.module.panel();
	_oVarsPanel_.options = {
    limit    : true,
    size     : {w:600,h:420},
    position : {x:0,y:0,center:true},
    title    : '',
    theme    : 'processmaker',
    statusBar: false,
    control  : {drag:false,resize:true,close:true},
    fx       : {opacity:true,rolled:false,modal:true}
  };
  _oVarsPanel_.make();
  _oVarsPanel_.events = {
    remove:function() {
      delete _oVarsPanel_;
    }.extend(this)
  };
  _oVarsPanel_.loader.show();
  oRPC = new leimnud.module.rpc.xmlhttp({
    url   : sAjaxServer,
    method: 'POST',
    args  : 'sFieldName=' + sFieldName + '&sProcess=' + sProcess + '&sSymbol=' + sSymbol + '&sNoShowLeyend=1'
  });
  oRPC.callback = function(oRPC) {
    _oVarsPanel_.loader.hide();
    var scs = oRPC.xmlhttp.responseText.extractScript();
    _oVarsPanel_.addContent(oRPC.xmlhttp.responseText);
    scs.evalScript();
  }.extend(this);
  oRPC.make();
};

var insertFormVar = function(sFieldName, sValue) {
	oAux = document.getElementById(sFieldName);
	if (oAux.setSelectionRange) {
	  oAux.value     = '';
		var rangeStart = oAux.selectionStart;
    var rangeEnd   = oAux.selectionEnd;
    var tempStr1   = oAux.value.substring(0,rangeStart);
    var tempStr2   = oAux.value.substring(rangeEnd);
    oAux.value     = tempStr1 + sValue + tempStr2;
	}
	else {
	  if (document.selection) {
	    oAux.focus();
      oAux.value   = '';
      document.selection.createRange().text = sValue;
	  }
	}
	_oVarsPanel_.remove();
};

]]></JS>
</dynaForm>
