<%@ include file="/portal/include/include_java.jsp" %>

<c:set var="TASK_STATUS_COMPLETED"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_COMPLETED%></c:set>
<c:set var="TASK_STATUS_CANCELLED"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_CANCELLED%></c:set>
<c:set var="TASK_STATUS_SUBMITTED"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_SUBMITTED%></c:set>
<c:set var="TASK_STATUS_RUNNING"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_RUNNING%></c:set>
<c:set var="TASK_STATUS_ABORTED"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_ABORTED%></c:set>
<c:set var="TASK_STATUS_PAUSED"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_PAUSED%></c:set>
<c:set var="TASK_STATUS_ERROR"><%=com.appiancorp.suiteapi.process.TaskSummary.TASK_STATUS_ERROR%></c:set>

<c:set var="enctype" value=""/>
<c:set var="df" value="${formConfig.dynamicForm}"/>
<c:if test="${df.containsLocalFile}">
  <c:set var="enctype" value="multipart/form-data"/>
</c:if>

<c:choose>
  <c:when test="${requestScope.$p != null}">
    <c:set var="pageId" value="${requestScope.$p}"/>
  </c:when>
  <c:when test="${param.$p != null}">
    <c:set var="pageId" value="${param.$p}"/>
  </c:when>
</c:choose>

<c:choose>
  <c:when test="${requestScope.$i != null}">
    <c:set var="portletId" value="${requestScope.$i}"/>
  </c:when>
  <c:when test="${param.$i != null}">
    <c:set var="portletId" value="${param.$i}"/>
  </c:when>
</c:choose>

<c:choose><c:when test="${portletId != null}">
  <c:set var="portletTarget" value="true"/>
</c:when><c:otherwise>
  <c:set var="portletTarget" value="false"/>
</c:otherwise></c:choose>

<c:choose>
  <c:when test="${!empty requestScope.$dataCtx}">
    <c:set var="dataCtx" value="${requestScope.$dataCtx}"/>
  </c:when>
  <c:when test="${!empty param.$dataCtx}">
    <c:set var="dataCtx" value="${param.$dataCtx}"/>
  </c:when>
</c:choose>

<script type="text/javascript">
$(document).ready(function() {
  <c:forEach items="${_ATC_.fullMap}" var="type">
    <c:forEach items="${type.value}" var="appianObject">
      <c:if test="${!empty appianObject.value}">
        setAppianDisplayName("<asi:out encoding="js" value='${type.key}'/>","<asi:out encoding="js" value='${appianObject.key}'/>","<asi:out encoding="js" value='${appianObject.value}'/>");
      </c:if>
    </c:forEach>
  </c:forEach>

  var namespace = '<asi:out encoding="js" value="${portletId}" />'; // assuming one form per portlet
  if(!namespace || namespace.trim() === '') {
    namespace = 'JSON_TASK_NS';
  } else {
    namespace = 'JSON_TASK_NS_' + namespace;
  }
  window.startRender = new Date();
  window.FormDesigner[namespace] = {};
  window.FormDesigner[namespace].extraParams = {
    enctype : '<asi:out encoding="js" value="${enctype}"/>',
    pageId : '<asi:out encoding="js" value="${pageId}" />',
    portletId : '<asi:out encoding="js" value="${portletId}" />',
    portletTarget : '<asi:out encoding="js" value="${portletTarget}" />',
    activityId : '<asi:out encoding="js" value="${_activityId_}"/>',
    $dashboardModelId : '<asi:out encoding="js" value="${param.$dashboardModelId}"/>',
    $navContentId : '<asi:out encoding="js" value="${param.$navContentId}"/>',
    $dashboardProcessId : '<asi:out encoding="js" value="${param.$dashboardProcessId}"/>',
    $isDefaultDashboard : '<asi:out encoding="js" value="${param.$isDefaultDashboard}"/>',
    $dataCtx : '<asi:out encoding="js" value="${dataCtx}"/>',
    disabledOverride : '<asi:out encoding="js" value="${task.status == TASK_STATUS_COMPLETED || task.status == TASK_STATUS_SUBMITTED ||  task.status == TASK_STATUS_RUNNING || task.status == TASK_STATUS_ABORTED || task.status == TASK_STATUS_ERROR || task.isTaskProtected || task.isPausedByException || task.status==TASK_STATUS_PAUSED || task.processStatus==PROCESS_STATE_PAUSED || task.status==TASK_STATUS_CANCELLED}"/>',
    task_completed :'<asi:out encoding="js" value="${task.completed}" />'
  };
  window.FormDesigner[namespace].isTaskForm = true;
  window.FormDesigner[namespace].activityChaining = {
    backButtonEnabled : "true" === "<asi:out encoding="js" value="${task.metadata.backButtonEnabled}"/>",
    backButtonReadOnly : "true" === "<asi:out encoding="js" value="${task.status==TASK_STATUS_CANCELLED}"/>",
    chained : "true" === "<asi:out encoding="js" value="${task.metadata.chained}"/>"
  };
  var jsonAcps = <c:out value="${jsonParams}" escapeXml="false" />;
  window.FormDesigner[namespace].modelerParams = jsonAcps;
  var jsonForm = <c:out value="${jsonForm}" escapeXml="false" />;
  var container = "filterZone";
  var portletId = '<asi:out encoding="js" value="${portletId}"/>';
  if(portletId){
    container+='_'+portletId;
  }
  window.FormDesigner.renderForm(jsonForm, $$(container), namespace);
});
</script>
