<?xml version="1.0" encoding="UTF-8"?>
 <!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->

<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://ofbiz.apache.org/Widget-Form" xsi:schemaLocation="http://ofbiz.apache.org/Widget-Form http://ofbiz.apache.org/dtds/widget-form.xsd">

    <form name="EditSprintTask" type="upload" target="createSprintBacklogTask" default-map-name="task">
        <actions>
            <entity-and entity-name="CustRequestWorkEffort" list="sprintBacklogTasks">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
            <entity-condition entity-name="ScrumProjectSprintBacklog" list="scrumProjectSprintBacklogs">
                <condition-list combine="and">
                    <condition-expr field-name="childWorkEffortId" from-field="parameters.sprintId" ignore-if-empty="true"/>
                    <condition-expr field-name="custRequestId" from-field="parameters.custRequestId" ignore-if-empty="true"/>
                    <condition-expr field-name="workEffortTypeId" value="SCRUM_PROJECT"/>
                    <condition-expr field-name="childWorkEffortTypeId" value="SCRUM_SPRINT"/>
                    <condition-expr field-name="childCurrentStatusId" value="SPRINT_ACTIVE"/>
                </condition-list>
                <order-by field-name="childWorkEffortName"/>
                <order-by field-name="custRequestName"/>
            </entity-condition>
            <entity-and entity-name="WorkEffortPartyAssignment" list="assignTo" filter-by-date="true">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
            <entity-one entity-name="WorkEffort" value-field="sprint">
                <field-map field-name="workEffortId" from-field="sprintId"/>
            </entity-one>
            <set field="sprintStart" from-field="sprint.actualStartDate" type="Date"/>
            <set field="sprintEnd" from-field="sprint.actualCompletionDate" type="Date"/>
            <entity-and entity-name="PartyDetailAndWorkEffortAssign" list="sprintMembers" filter-by-date="true">
                <field-map field-name="workEffortId" from-field="parameters.sprintId"/>
            </entity-and>
            <set field="partyId" value="${groovy: if (assignTo.size() != 0) return assignTo.get(0).getString(&quot;partyId&quot;)}"/>
            <set field="nullField" type="String"/>
            <service service-name="getScrumPlanHour" result-map="resultMap">
                <field-map field-name="taskId" from-field="parameters.taskId"/>
                <field-map field-name="custRequestId" from-field="nullField"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="projectId" from-field="nullField"/>
            </service>
            <service service-name="getScrumActualHour" result-map="results">
                <field-map field-name="projectId" from-field="nullField"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="taskId" from-field="taskId"/>
            </service>
        </actions>
        <field name="projectId"><hidden value="${parameters.projectId}"/></field>
        <field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
        <field name="workEffortId" use-when="task!=null"><hidden value="${parameters.taskId}"/></field>
        <field name="taskId" use-when="task!=null"><hidden value="${parameters.taskId}"/></field>
        <field name="id" use-when="task!=null" title="Task Id" disabled="true"><text default-value="${parameters.taskId}"/></field>
        <field name="workEffortName" title="${uiLabelMap.ScrumTaskName}" required-field="true" tooltip="${uiLabelMap.ScrumToolTip100CharsMaximun}"><text/></field>
        <field name="workEffortTypeId" title="${uiLabelMap.ScrumTaskType}" required-field="true">
            <drop-down>
                <entity-options entity-name="WorkEffortType" key-field-name="workEffortTypeId">
                    <entity-constraint name="parentTypeId" value="SCRUM_TASK"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="custRequestId" use-when="task==null" title="${uiLabelMap.ScrumSprintBacklog}">
            <drop-down>
                <list-options key-name="custRequestId" list-name="scrumProjectSprintBacklogs"/>
            </drop-down>
        </field>
        <field name="custRequestId" use-when="task!=null" title="${uiLabelMap.ScrumSprintBacklog}" map-name="parameters">
            <display-entity entity-name="CustRequest" key-field-name="custRequestId" description="${groovy: if (scrumProjectSprintBacklogs.size() != 0) backlog = scrumProjectSprintBacklogs.get(0); return backlog.getString(&quot;childWorkEffortName&quot;) +' - '+backlog.getString(&quot;description&quot;);}">
                <sub-hyperlink target="ViewProdBacklogItem" description="[${parameters.custRequestId}]">
                    <parameter param-name="custRequestId" from-field="parameters.custRequestId"/>
                    <parameter param-name="productId" from-field="parameters.projectId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="planHours" title="${uiLabelMap.ScrumPlannedHours}"><text size="3" default-value="${resultMap.planHours}"/></field>
        <field name="actualHours" use-when="task!=null" title="${uiLabelMap.ScrumActualHours}" disabled="true"><text default-value="${results.actualHours}" size="3"/></field>
        <!--<field name="actualHours" use-when="task==null" title="Actual Hours"><text size="3"/></field>-->
        <field name="currentStatusId" use-when="task==null"><hidden value="STS_CREATED"/></field>
        <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonMax250Chars}"><textarea/></field>
        <field name="uploadedFile" title="${uiLabelMap.ContentFile}"><file/></field>
        <field name="contentTypeId"><hidden value="DOCUMENT"/></field>
        <field name="resourceStatusId"><hidden value="CTNT_PUBLISHED"/></field>
        <field name="workEffortContentTypeId"><hidden value="CREATED_MEDIA"/></field>
        <field name="mimeTypeId"><hidden value="application/octet-stream"/></field>
        <!--<field name="actualStartDate" title="Start Date" tooltip="The start date should be in Sprint Duration (${sprintStart} - ${sprintEnd})."><date-time type="date"/></field>-->
        <!--<field name="estimatedCompletionDate"><date-time type="timestamp"/></field>-->
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}">
            <drop-down no-current-selected-key="${partyId}" allow-empty="true">
                <list-options key-name="partyId" list-name="sprintMembers" description="${lastName}, ${firstName} ${middleName}"/>
            </drop-down>
        </field>
        <field name="createButton" use-when="task==null"  title="${uiLabelMap.CommonCreate}"><submit/></field>
        <field name="UpdateButton" use-when="task!=null"  title="${uiLabelMap.CommonUpdate}"><submit/></field>
    </form>
    <form name="SprintTasksList" target="updateSprintTask?projectId=${parameters.projectId}" type="list" list-name="tasksList" separate-columns="true" odd-row-style="alternate-row" even-row-style="even-row" 
        header-row-style="header-row" default-table-style="basic-table hover-bar" use-row-submit="true">
        <row-actions>
            <entity-and entity-name="CustRequestWorkEffort" list="custRequestWorkEfforts">
                <field-map field-name="workEffortId" from-field="workEffortId"/>
            </entity-and>
            <set field="custRequestId" value="${groovy: if (custRequestWorkEfforts.size() != 0) return custRequestWorkEfforts.get(0).getString(&quot;custRequestId&quot;)}"/>
            <entity-one entity-name="CustRequest" value-field="custRequest"/>
        </row-actions>
        <field name="workEffortId" title="Task">
            <display-entity entity-name="WorkEffort" key-field-name="workEffortId" description="${workEffortName}">
                <sub-hyperlink target="SprintTaskView" link-type="hidden-form"  description="${workEffortId}">
                    <parameter param-name="projectId" from-field="parameters.projectId"/>
                    <parameter param-name="taskId" from-field="workEffortId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <!--<field name="projectId"><display-entity entity-name="WorkEffort" key-field-name="workEffortId" description="${workEffortName}"/></field>-->
        <field name="sprintId" title="Sprint">
            <display-entity entity-name="WorkEffort" description="${workEffortName}" key-field-name="workEffortId"/>
        </field>
        <field name="sprintBacklog"><display description="${custRequest.description}"/></field>
        <field name="currentStatusId">
            <display-entity entity-name="StatusItem" key-field-name="statusId"/>
        </field>
        <field name="estimatedHours"><text size="3" default-value="${groovy: if (estimatedMilliSeconds != null) return estimatedMilliSeconds/3600000}"/></field>
        <field name="actualHours"><text size="3" default-value="${groovy: if (actualMilliSeconds != null) return actualMilliSeconds/3600000}"/></field>
        <field name="priority" title="${uiLabelMap.CommonPriority}">
            <drop-down allow-empty="true" current="selected" current-description="${priority}">
                <option key="1" description="1"/>
                <option key="2" description="2"/>
                <option key="3" description="3"/>
                <option key="4" description="4"/>
                <option key="5" description="5"/>
                <option key="6" description="6"/>
                <option key="7" description="7"/>
                <option key="8" description="8"/>
                <option key="9" description="9"/>
            </drop-down>
        </field>
        <field name="estimatedStartDate"><date-time type="timestamp"/></field>
        <field name="estimatedCompletionDate"><date-time type="timestamp"/></field>
        <field name="update" title="${uiLabelMap.CommonUpdate}"><submit/></field>
    </form>
    <form name="SprintTasksListNoAction" extends="SprintTasksList" type="list">
        <field name="estimatedHours"><display description="${groovy: if (estimatedMilliSeconds != null) return estimatedMilliSeconds/3600000}"/></field>
        <field name="actualHours"><display description="${groovy: if (actualMilliSeconds != null) return actualMilliSeconds/3600000}"/></field>
        <field name="priority" title="${uiLabelMap.CommonPriority}"><display/></field>
        <field name="estimatedStartDate"><display type="date-time"/></field>
        <field name="estimatedCompletionDate"><display type="date-time"/></field>
        <field name="update" title="${uiLabelMap.CommonUpdate}"><hidden/></field>
    </form>
    
    <form name="TaskInfo" type="single">
        <actions>
            <entity-one entity-name="WorkEffort" value-field="resultTask">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-one>
            <entity-and entity-name="CustRequestWorkEffort" list="resultBacklog">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
            <entity-one entity-name="CustRequest" value-field="custRequest">
                <field-map field-name="custRequestId" from-field="resultBacklog[0].custRequestId"/>
            </entity-one>
            <entity-and entity-name="CustRequestItem" list="productList">
                <field-map field-name="custRequestId" from-field="resultBacklog[0].custRequestId"/>
            </entity-and>
            <entity-one entity-name="WorkEffort" value-field="resultSprint">
                <field-map field-name="workEffortId" from-field="resultTask.workEffortParentId"/>
            </entity-one>
            <entity-one entity-name="WorkEffort" value-field="listProject">
                <field-map field-name="workEffortId" from-field="resultSprint.workEffortParentId"/>
            </entity-one>
            <set field="projectName" from-field="listProject.workEffortName"/>
            <set field="projectId" from-field="listProject.workEffortId"/>
            <set field="sprintName" from-field="resultSprint.workEffortName"/>
            <set field="sprintId" from-field="resultSprint.workEffortId"/>
            <set field="currentStatusId" from-field="resultTask.currentStatusId"/>
            <entity-one entity-name="WorkEffortType" value-field="workEffortType">
              <field-map field-name="workEffortTypeId" from-field="resultTask.workEffortTypeId"/>
            </entity-one>
            <entity-and entity-name="WorkEffortPartyAssignment" list="assignedTos">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
                <order-by field-name="-thruDate"/>
            </entity-and>
            <entity-one entity-name="StatusItem" value-field="resultStatus">
                <field-map field-name="statusId" from-field="currentStatusId"/>
            </entity-one>
            <set field="productId" from-field="productList[0].productId"/>
            <entity-one entity-name="Product" value-field="product">
                <field-map field-name="productId" from-field="productId"/>
            </entity-one>
            <entity-and entity-name="ProductAndRole" list="companyList">
                <field-map field-name="productId" from-field="productId"/>
                <field-map field-name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
            </entity-and>
            <set field="partyId" value="${groovy: if (assignedTos.size() != 0) return assignedTos.get(0).getString(&quot;partyId&quot;)}" type="String"/>
            <set field="nullField" type="String"/>
            <service service-name="getScrumPlanHour" result-map="resultPlanHour">
                <field-map field-name="projectId" from-field="nullField"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="custRequestId" from-field="custRequestId"/>
                <field-map field-name="taskId" from-field="nullField"/>
            </service>
            <service service-name="getScrumActualHour" result-map="result">
                <field-map field-name="taskId" from-field="parameters.taskId"/>
                <field-map field-name="partyId" from-field="partyId"/>
            </service>
        </actions>
        <field name="workEffortName" title="${uiLabelMap.ScrumTaskName}"><display description="${resultTask.workEffortName}"/></field>
        <field name="workEffortTypeId" title="${uiLabelMap.ScrumTaskType}" ><display description="${workEffortType.description}"/></field>
        <field name="custRequestId" title="${uiLabelMap.ScrumProductBacklog}">
            <hyperlink description="${custRequest.description} [${custRequest.custRequestId}]" target="ViewProdBacklogItem">
                <parameter param-name="custRequestId" from-field="custRequest.custRequestId"/>
                <parameter param-name="productId" from-field="productId"/>
            </hyperlink>
        </field>
        <field name="sprintName" title="${uiLabelMap.ScrumSprint}" use-when="sprintId!=null">
            <hyperlink description="${sprintName} [${sprintId}]" target="ViewSprint">
                <parameter param-name="projectId" from-field="projectId"/>
                <parameter param-name="sprintId" from-field="sprintId"/>
            </hyperlink>
        </field>
        <field name="projectName" title="${uiLabelMap.ScrumProject}" use-when="projectId!=null">
            <hyperlink description="${projectName} [${projectId}]" target="viewScrumProject">
                <parameter param-name="projectId"/>
            </hyperlink>
        </field>
        <field name="productId" title="${uiLabelMap.PageTitleProduct}">
            <hyperlink description="${product.internalName} [${productId}]" target="ViewProduct">
                <parameter param-name="productId" from-field="productId"/>
            </hyperlink>
        </field>
        <field name="groupName" title="${uiLabelMap.ScrumCompany}">
            <hyperlink description="${companyList[0].groupName}" target="viewprofile">
                <parameter param-name="partyId" from-field="companyList[0].partyId"/>
            </hyperlink>
        </field>
        <field name="description" title="${uiLabelMap.CommonDescription}"><display description="${resultTask.description}"/></field>
        <field name="currentStatusId"><display description="${resultStatus.description}"/></field>
        <field name="planHours"><display description="${resultPlanHour.initPlanHours}"/></field>
        <field name="actualHours"><display description="${groovy: if (result != null) return result.actualHours}"/></field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" use-when="partyId==null"><display/></field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" use-when="partyId!=null">
            <display-entity entity-name="Person" description="${lastName} ${firstName} ${middleName}" key-field-name="partyId">
                <sub-hyperlink target="viewprofile" description=" [${partyId}]">
                    <parameter param-name="partyId" from-field="partyId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
    </form>
    <form name="TaskInfoForStakeholder" extends="TaskInfo">
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" use-when="partyId!=null">
            <display-entity entity-name="Person" description="${lastName} ${firstName} ${middleName} [${partyId}]" key-field-name="partyId"/>
        </field>
    </form>

    <form name="InfoTestTaskNote" type="single" target="CreateTestNote">
        <actions>
            <entity-condition entity-name="ProjectSprintBacklogAndTask" list="tasks">
                <condition-list>
                    <condition-expr field-name="taskId" from-field="parameters.taskId"/>
                    <condition-expr field-name="sprintTypeId" value="SCRUM_SPRINT"/>
                    <condition-list combine="or">
                        <condition-expr field-name="taskTypeId" value="SCRUM_TASK_ERROR"/>
                        <condition-expr field-name="taskTypeId" value="SCRUM_TASK_IMPL"/>
                        <condition-expr field-name="taskTypeId" value="SCRUM_TASK_INST"/>
                        <condition-expr field-name="taskTypeId" value="SCRUM_TASK_TEST"/>
                    </condition-list>
                </condition-list>
            </entity-condition>
            <set field="taskId" from-field="task.workEffortId"/>
            <set field="projectName" value="${groovy: if (tasks.size() != 0) return tasks.get(0).getString(&quot;projectName&quot;)}"/>
            <set field="sprintName" value="${groovy: if (tasks.size() != 0) return tasks.get(0).getString(&quot;sprintName&quot;)}"/>
            <set field="description" value="${groovy: if (tasks.size() != 0) return tasks.get(0).getString(&quot;description&quot;)}"/>
            <set field="custRequestId" value="${groovy: if (tasks.size() != 0) return tasks.get(0).getString(&quot;custRequestId&quot;)}"/>
            
            <entity-one entity-name="WorkEffortType" value-field="workEffortType"/>
            <entity-and entity-name="WorkEffortPartyAssignment" list="assignedTos">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
            <set field="partyId" value="${groovy: if (assignedTos.size() != 0) return assignedTos.get(0).getString(&quot;partyId&quot;)}" type="String"/>
            <entity-one entity-name="Person" value-field="person"/>
            <service service-name="getScrumActualHour" result-map="result">
                <field-map field-name="taskId" from-field="parameters.taskId"/>
            </service>
            <set field="nullField" type="String"/>
            <service service-name="getScrumPlanHour" result-map="resultPlanHour">
                <field-map field-name="projectId" from-field="nullField"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="custRequestId" from-field="nullField"/>
                <field-map field-name="taskId" from-field="parameters.taskId"/>
            </service>
        </actions>
        <field name="workEffortName" title="${uiLabelMap.ScrumTaskName}"><display description="${task.workEffortName}"/></field>
        <field name="workEffortTypeId" title="${uiLabelMap.ScrumTaskType}"><display-entity entity-name="WorkEffortType" key-field-name="workEffortTypeId"/></field>
        <field name="sprintName" title="${uiLabelMap.ScrumSprint}"><hidden value="${sprintName}"/></field>
        <field name="projectName" title="${uiLabelMap.ScrumProject}"><hidden value="${projectName}"/></field>
        <field name="custRequestDesp" title="${uiLabelMap.ScrumProductBacklog}"><display description="${description}"/></field>
        <field name="description" title="${uiLabelMap.CommonDescription}"><hidden value="${task.description}"/></field>
        <field name="currentStatusId"><display-entity entity-name="StatusItem" key-field-name="statusId"/></field>
        <field name="planHours"><hidden value="${resultPlanHour.planHours}"/></field>
        <field name="actualHours"><hidden value="${groovy: if (result != null) return result.actualHours}"/></field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}"><hidden value ="${person.lastName} ${person.firstName}"/></field>
        <field name="howToTest" title="${uiLabelMap.ScrumHowToTest}"><textarea/></field>
        <field name="workEffortId" title="${uiLabelMap.ScrumTaskId}"><hidden value="${taskId}"/></field>
        <field name="custRequestId" title="${uiLabelMap.ScrumCustRequestId}"><hidden value="${custRequestId}"/></field>
        <field name="submitButton" title="${uiLabelMap.CommonSave}" widget-style="smallSubmit" >
            <submit/>
        </field>
    </form>
    
    <form name="TaskMembersList" type="list" target="removeTaskMember" default-map-name="workEffort" list-name="listIt" use-row-submit="true" paginate-target="taskView" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar">
        <actions>
            <entity-and entity-name="WorkEffortPartyAssignView" list="listIt" filter-by-date="true">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
        </actions>
        <field name="partyId"><hidden/></field>
        <field name="workEffortId"><hidden/></field>
        <field name="firstName"><display/></field>
        <field name="lastName"><display/></field>
        <field name="groupName"><display/></field>
        <field name="roleTypeId">
            <display-entity entity-name="RoleType"/>
        </field>
        <field name="fromDate"><display/></field>
        <field name="thruDate"><display/></field>
        <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
        <field name="submitButton" title="${uiLabelMap.CommonDelete}"><submit/></field>
        <field name="projectId"><hidden value="${parameters.projectId}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
    </form>
    <form name="TaskMembersListNoAction" type="list" extends="TaskMembersList">
        <field name="_rowSubmit"><hidden/></field>
        <field name="submitButton"><hidden/></field>
    </form>
    <form name="AddTaskMember" type="single" target="addTaskMember">
        <actions>
            <entity-and entity-name="WorkEffortPartyAssignView" list="sprintMembers">
                <field-map field-name="workEffortId" from-field="task.workEffortParentId"/>
            </entity-and>
        </actions>
        <field name="partyId" title="Sprint Members">
            <drop-down >
                <list-options key-name="partyId" list-name="sprintMembers" description="${firstName}"/>
            </drop-down>
        </field>
        <field name="roleTypeId"><hidden value="SCRUM_TEAM"/></field>
        <field name="statusId"><hidden value="SCAS_ASSIGNED"/></field>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="submitButton" title="Assign"><submit button-type="button"/></field>
        <field name="projectId"><hidden value="${parameters.projectId}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
    </form>
    <form name="AssignTaskOtherProject" type="single" target="updateTask" default-map-name="task">
        <field name="workEffortId"><hidden/></field>
        <field name="workEffortParentId" entry-name="empty" title="${uiLabelMap.ScrumTaskPhase}" required-field="true">
            <drop-down allow-empty="false">
                <entity-options entity-name="ProjectPartyAndPhase" key-field-name="phaseId" description="${projectName} -- ${phaseName}">
                    <entity-constraint name="partyId" env-name="userLogin.partyId"/>
                    <entity-constraint name="projectId" operator="not-equals" env-name="projectId"/>
                    <entity-order-by field-name="projectName"/>
                    <entity-order-by field-name="phaseName"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="save" title="${uiLabelMap.CommonSave}"><submit/></field>
    </form>
    <form name="EditTask" type="single" target="updateTask" default-map-name="task">
        <actions>
            <entity-condition entity-name="ScrumProjectSprintBacklog" list="scrumProjectSprintBacklogs">
                <condition-list combine="and">
                    <condition-expr field-name="workEffortId" from-field="parameters.projectId"/>
                    <condition-expr field-name="childWorkEffortId" from-field="parameters.sprintId"/>
                    <condition-expr field-name="workEffortTypeId" value="SCRUM_PROJECT"/>
                    <condition-expr field-name="childWorkEffortTypeId" value="SCRUM_SPRINT"/>
                </condition-list>
                <order-by field-name="childWorkEffortName"/>
                <order-by field-name="custRequestName"/>
            </entity-condition>
            <entity-condition entity-name="ProjectSprintBacklogAndTask" list="taskRelateds">
                <condition-list combine="and">
                    <condition-expr field-name="taskId" from-field="parameters.taskId"/>
                    <condition-expr field-name="sprintTypeId" value="SCRUM_SPRINT"/>
                </condition-list>
                <order-by field-name="custRequestId"/>
                <order-by field-name="taskTypeId"/>
            </entity-condition>
            <entity-and entity-name="CustRequestWorkEffort" list="custRequestWorkEfforts">
                <field-map field-name="workEffortId" from-field="workEffortId"/>
            </entity-and>
            <set field="custRequestId" value="${groovy: if (custRequestWorkEfforts.size() != 0) return custRequestWorkEfforts.get(0).getString(&quot;custRequestId&quot;)}" type="String"/>
            <set field="currentStatusId" from-field="task.currentStatusId"/>
            <entity-one entity-name="CustRequest" value-field="custRequest"/>
            <entity-one entity-name="WorkEffort" value-field="sprint">
                <field-map field-name="workEffortId" from-field="task.workEffortParentId"/>
            </entity-one>
            <entity-condition entity-name="ScrumProjectSprintBacklog" list="scrumProjectSprintBacklogs">
                <condition-list combine="and">
                    <condition-expr field-name="workEffortId" from-field="parameters.projectId" ignore-if-empty="true"/>
                    <condition-expr field-name="custRequestId" from-field="parameters.custRequestId" ignore-if-empty="true"/>
                    <condition-expr field-name="workEffortTypeId" value="SCRUM_PROJECT"/>
                    <condition-expr field-name="childWorkEffortTypeId" value="SCRUM_SPRINT"/>
                    <condition-expr field-name="childCurrentStatusId" value="SPRINT_ACTIVE"/>
                </condition-list>
                <order-by field-name="childWorkEffortName"/>
                <order-by field-name="custRequestName"/>
            </entity-condition>
            <entity-one entity-name="WorkEffort" value-field="project">
                <field-map field-name="workEffortId" from-field="sprint.workEffortParentId"/>
            </entity-one>
            <entity-and entity-name="WorkEffortPartyAssignView" list="taskOwner" filter-by-date="true">
                <field-map field-name="workEffortId" from-field="parameters.taskId"/>
            </entity-and>
            <entity-condition entity-name="PartyDetailAndWorkEffortAssign" list="sprintMembers" filter-by-date="true">
                <condition-list combine="and">
                    <condition-expr field-name="workEffortId" from-field="taskRelateds[0].sprintId" ignore-if-empty="true"/>
                    <condition-expr field-name="workEffortId" from-field="parameters.sprintId" ignore-if-empty="true"/>
                    <condition-expr field-name="roleTypeId" value="SCRUM_TEAM" operator="equals"/>
                </condition-list>
            </entity-condition>
            <set field="nullField" type="String"/>
            <service service-name="getScrumPlanHour" result-map="resultMap">
                <field-map field-name="taskId" from-field="parameters.taskId"/>
                <field-map field-name="custRequestId" from-field="nullField"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="projectId" from-field="nullField"/>
            </service>
            <service service-name="getScrumActualHour" result-map="results">
                <field-map field-name="taskId" from-field="parameters.taskId"/>
                <field-map field-name="partyId" from-field="taskOwner[0].partyId"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="projectId" from-field="nullField"/>
            </service>
        </actions>
        <alt-target use-when="task==null" target="createTask"/>
        <field name="projectId" use-when="task!=null&amp;&amp;project!=null"><display description="${project.workEffortName}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
        <field name="id" use-when="task!=null" title="Task Id" disabled="true"><text default-value="${parameters.taskId}"/></field>
        <field name="workEffortName" title="${uiLabelMap.ScrumTaskName}" required-field="true"><text size="60"/></field>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="workEffortTypeId" title="${uiLabelMap.ScrumTaskType}" required-field="true">
            <drop-down>
                <entity-options entity-name="WorkEffortType" key-field-name="workEffortTypeId">
                    <entity-constraint name="parentTypeId" value="SCRUM_TASK"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="projectId" action="javascript:document.EditTask.action='EditTask';document.EditTask.submit();" event="onchange" use-when="task==null" required-field="true">
            <drop-down allow-empty="false">
                <entity-options description="${workEffortName}" entity-name="WorkEffort" key-field-name="workEffortId">
                    <entity-constraint name="workEffortTypeId" value="SCRUM_PROJECT"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="sprintId" action="javascript:document.EditTask.action='EditTask';document.EditTask.submit();" event="onchange" use-when="task==null">
            <drop-down allow-empty="true">
                <entity-options description="${childWorkEffortName}" entity-name="WorkEffortAndChild" key-field-name="childWorkEffortId">
                    <entity-constraint name="workEffortId" env-name="parameters.projectId"/>
                    <entity-constraint name="childWorkEffortTypeId" value="SCRUM_SPRINT"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="custRequestId" title="${uiLabelMap.ScrumSprintBacklog}" use-when="task==null">
            <drop-down allow-empty="false">
                <list-options key-name="custRequestId" list-name="scrumProjectSprintBacklogs" description="${childWorkEffortName} - ${description}"/>
            </drop-down>
        </field>
        <field name="custRequestId" use-when="task!=null&amp;&amp;project!=null" title="${uiLabelMap.ScrumSprintBacklog}" map-name="parameters">
            <display-entity entity-name="CustRequest" key-field-name="custRequestId" description="${groovy: if (scrumProjectSprintBacklogs.size() != 0) backlog = scrumProjectSprintBacklogs.get(0); return backlog.getString(&quot;childWorkEffortName&quot;) +' - '+backlog.getString(&quot;description&quot;);}">
                <sub-hyperlink target="ViewProdBacklogItem" description="[${parameters.custRequestId}]">
                    <parameter param-name="custRequestId" from-field="parameters.custRequestId"/>
                    <parameter param-name="productId" from-field="parameters.projectId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="custRequestId" use-when="task!=null&amp;&amp;project==null" title="${uiLabelMap.ScrumSprintBacklog}" map-name="parameters">
            <display-entity entity-name="CustRequest" key-field-name="custRequestId">
                <sub-hyperlink target="ViewProdBacklogItem" description="[${parameters.custRequestId}]">
                    <parameter param-name="custRequestId" from-field="parameters.custRequestId"/>
                    <parameter param-name="productId" from-field="parameters.projectId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="planHours" title="${uiLabelMap.ScrumPlanHours}"><text size="3" default-value="${resultMap.planHours}"/></field>
        <field name="actualHours" use-when="task!=null" title="${uiLabelMap.ScrumActualHours}" disabled="true"><text default-value="${results.actualHours}" size="3"/></field>
        <field name="currentStatusId"  use-when="task==null"><hidden value="STS_CREATED"/></field>
        <field name="uploadedFile" use-when="task==null"><file/></field>
        <field name="contentTypeId" use-when="task==null"><hidden value="DOCUMENT"/></field>
        <field name="resourceStatusId" use-when="task==null"><hidden value="CTNT_PUBLISHED"/></field>
        <field name="workEffortContentTypeId" use-when="task==null"><hidden value="CREATED_MEDIA"/></field>
        <field name="mimeTypeId" use-when="task==null"><hidden value="application/octet-stream"/></field>
        <field name="description" title="${uiLabelMap.CommonDescription}" tooltip="${uiLabelMap.CommonMax250Chars}"><textarea/></field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignTo}" use-when="project!=null">
            <drop-down no-current-selected-key="${taskOwner[0].partyId}" allow-empty="true">
                <list-options list-name="sprintMembers" key-name="partyId" description="${lastName} ${firstName} ${middleName} ${groupName}"/>
            </drop-down>
        </field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignTo}" use-when="project==null">
            <drop-down no-current-selected-key="${taskOwner[0].partyId}" allow-empty="true">
                <entity-options description="${lastName} ${firstName} ${middleName}" entity-name="ScrumMemberUserLoginAndSecurityGroup" key-field-name="partyId">
                    <entity-constraint name="partyStatusId" operator="not-equals" value="PARTY_DISABLED"/>
                    <entity-constraint name="groupId" operator="equals" value="SCRUM_TEAM"/>
                    <entity-constraint name="enabled" operator="not-equals" value="N"/>
                </entity-options>
            </drop-down>
        </field>
        <!--<field name="estimatedStartDate"><date-time type="timestamp"/></field>
        <field name="estimatedCompletionDate"><date-time type="timestamp"/></field>-->
        <field name="create" title="${uiLabelMap.CommonCreate}" use-when="task==null" action="javascript:document.EditTask.action='createTask';document.EditTask.enctype='multipart/form-data';document.EditTask.submit();" event="onclick"><submit/></field>
        <field name="update" title="${uiLabelMap.CommonUpdate}" use-when="task!=null"><submit/></field>
    </form>
    <form name="AddTaskNote" type="single" header-row-style="header-row" default-table-style="basic-table" 
        target="createTaskNote?taskId=${parameters.taskId}">
        <field name="workEffortId"><hidden/></field>
        <field name="noteName"><text/> </field>
        <field name="noteInfo"><textarea/></field>
        <field name="createButton"><submit button-type="button"/></field>
    </form>
    <form name="ListTaskNote" type="list" list-name="workNoteList"
        odd-row-style="alternate-row" default-table-style="basic-table hover-bar" paginate-target="TaskNote">
        <row-actions>
            <entity-one entity-name="NoteData" auto-field-map="true" value-field="note"/>
        </row-actions>
        <field name="noteId"><hidden/> </field>
        <field name="noteName"><display description="${note.noteName}"/></field>
        <field name="noteInfo"><display description="${note.noteInfo}"/></field>
        <field name="noteDateTime"><display description="${note.noteDateTime}"/></field>
        <field name="noteParty"><display description="${note.noteParty}"/></field>
        <field name="removeNote" title=" " widget-style="buttontext">
            <hyperlink description="${uiLabelMap.CommonDelete}" target="deleteTaskNote">
                <parameter param-name="noteId" from-field="noteId"/>
                <parameter param-name="taskId" from-field="workEffortId"/>
                <parameter param-name="workEffortId" from-field="workEffortId"/>
            </hyperlink>
        </field>
    </form>
    <form name="ListTaskNoteInfo" extends="ListTaskNote">
        <field name="removeNote"><ignored/></field>
    </form>
    <form name="AddTaskPartyAssign" target="addScrumTaskAssignment" title="" type="single"
        header-row-style="header-row" default-table-style="basic-table">
        <actions>
            <entity-one entity-name="WorkEffort" value-field="task"/>
            <entity-condition entity-name="WorkEffortPartyAssignView"  filter-by-date="true" list="sprintMembers">
                <condition-expr field-name="workEffortId" from-field="task.workEffortParentId"/>
                <select-field field-name="partyId"/>
                <select-field field-name="lastName"/>
                <select-field field-name="firstName"/>
                <select-field field-name="middleName"/>
                <select-field field-name="groupName"/>
                <order-by field-name="lastName"/>
                <order-by field-name="firstName"/>
                <order-by field-name="middleName"/>
                <order-by field-name="groupName"/>
            </entity-condition>
        </actions>
        <field name="statusId"><hidden value="SCAS_ASSIGNED"/></field>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
        <field name="partyId">
            <drop-down  allow-empty="true" current="selected">
                <list-options list-name="sprintMembers" key-name="partyId" description="${lastName} ${firstName} ${middleName} ${groupName}"/>
            </drop-down>
        </field>
        <field name="roleTypeId"><hidden value="SCRUM_MEMBER"/></field>
        <field name="fromDate"><date-time type="date"/></field>
        <field name="thruDate"><date-time type="date"/></field>
        <field name="submitButton" title="${uiLabelMap.CommonAdd}" widget-style="smallSubmit"><submit button-type="button"/></field>
    </form>
    <form name="ListTaskParties" type="list" list-name="taskMembers" target="deleteTaskPartyAssign"
        odd-row-style="alternate-row" default-table-style="basic-table hover-bar" use-row-submit="true">
        <actions>
            <entity-condition entity-name="WorkEffortPartyAssignView"  filter-by-date="true" list="taskMembers">
                <condition-expr field-name="workEffortId" from-field="parameters.taskId"/>
                <order-by field-name="lastName"/>
                <order-by field-name="firstName"/>
                <order-by field-name="middleName"/>
                <order-by field-name="groupName"/>
            </entity-condition>
        </actions>
        <field name="partyId" title="${uiLabelMap.CommonName}">
            <hyperlink description="${lastName} ${firstName}" target="viewprofile">
                <parameter param-name="partyId"/>
            </hyperlink>
        </field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="fromDate"><display type="date"/></field>
        <field name="thruDate"><display type="date"/></field>
        <field name="roleTypeId"><hidden/></field>
        <field name="remove"><submit/></field>
    </form>
    <form name="ListTaskPartiesNoAction" extends="ListTaskParties">
        <field name="remove"><hidden/></field>
    </form>
    
    <form name="MyTasks" type="list" list-name="taskPartyList" paginate-target="MyWork" paginate-index-field="MyTasks_index" paginate-size-field="MyTasks_size"
    odd-row-style="alternate-row" default-table-style="basic-table hover-bar" target="updateMyTask?${MyTasks_url}">
        <row-actions>
            <service service-name="getScrumActualHour" result-map="results">
                <field-map field-name="taskId" from-field="taskId"/>
            </service>
            <service service-name="getScrumTaskInfo" result-map="taskInfo">
                <field-map field-name="taskId" from-field="taskId"/>
                <field-map field-name="partyId" from-field="partyId"/>
            </service>
            <set field="workEffortId"  from-field="taskId"/>
            <entity-and entity-name="WorkEffortPartyAssignment" list="listWorkAssignment">
                <field-map field-name="workEffortId" from-field="taskId"/>
                <field-map field-name="partyId" from-field="partyId"/>
            </entity-and>
            <set field="roleTypeId" from-field="listWorkAssignment[0].roleTypeId"/>
            <set field="fromDate" from-field="listWorkAssignment[0].fromDate"/>
        </row-actions>
        <field name="workEffortId"><hidden/></field>
        <field name="taskName" title="${uiLabelMap.ScrumTaskName}" widget-style="buttontext">
            <hyperlink description="${taskName} - [${taskId}] " target="taskView" also-hidden="false">
                <parameter param-name="taskId" from-field="workEffortId"/>
            </hyperlink>
        </field>
        <field name="taskTypeId" title="${uiLabelMap.ScrumTaskType}" use-when="&quot;SCRUM_TASK_ERROR&quot;.equals(taskTypeId)" widget-style="alert">
            <display-entity entity-name="WorkEffortType" key-field-name="workEffortTypeId"/>
        </field>
        <field name="taskTypeId" title="${uiLabelMap.ScrumTaskType}" use-when="!&quot;SCRUM_TASK_ERROR&quot;.equals(taskTypeId)">
            <display-entity entity-name="WorkEffortType" key-field-name="workEffortTypeId"/>
        </field>
        <field name="sprintName" title="${uiLabelMap.ScrumSprint}"><display/></field>
        <field name="productBacklogName" entry-name="description" title="${uiLabelMap.ScrumProductBacklog}" ><display/></field>
        <field name="taskCurrentStatusId"><display-entity entity-name="StatusItem" key-field-name="statusId"/></field>
        <field name="taskActualStartDate" title="${uiLabelMap.CommonActualStartDate}"><display type="date"/></field>
        <field name="actualHours"><display description="${results.actualHours}"/></field>
        <field name="planHours">
            <text default-value="${taskInfo.planHours}" size="2"/>
        </field>
        <field name="UpdateButton" title="${uiLabelMap.CommonUpdate}"><submit/></field>
        <field name="RemoveButton" title="${uiLabelMap.CommonRemove}" widget-style="buttontext">
            <hyperlink description="${uiLabelMap.CommonRemove}" target="unassignPartyFromWorkEffort" confirmation-message="Are you sure to remove this task ?" link-type="hidden-form">
                <parameter param-name="workEffortId" from-field="taskId"/>
                <parameter param-name="partyId" from-field="partyId"/>
                <parameter param-name="roleTypeId" from-field="roleTypeId"/>
                <parameter param-name="fromDate" from-field="fromDate"/>
            </hyperlink>
        </field>
    </form>
    
    <form name="AssignTaskToMe" type="single" target="addTaskAssignment">
        <field name="partyId"><hidden value="${userLogin.partyId}"/></field>
        <field name="taskId" parameter-name="workEffortId" title="${uiLabelMap.ScrumTaskName}">
            <drop-down allow-empty="true">
                <list-options key-name="taskId" list-name="taskList" description="${projectName}${productName} - ${sprintName} - ${groovy:description.substring(0,Math.min(description.length(),30))} - ${groovy:taskName.substring(0,Math.min(taskName.length(),20))} [${taskId}]"/>
            </drop-down>
        </field>
        <field name="addButton"><submit/></field>
    </form>
    
    <form name="TasksList" type="list" list-name="projectSprintBacklogAndTasks" target="updateTaskList" paginate-target="FindTask" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar" use-row-submit="true">
        <row-actions>
            <entity-condition entity-name="ScrumMemberUserLoginAndSecurityGroup" list="party">
                <condition-list combine="and">
                    <condition-expr field-name="partyStatusId" operator="not-equals" value="PARTY_DISABLED"/>
                    <condition-expr field-name="groupId" operator="equals" value="SCRUM_TEAM"/>
                    <condition-expr field-name="partyId" operator="equals" from-field="partyId"/>
                </condition-list>
            </entity-condition>
            <set field="taskActualMilliSeconds" value="${groovy: if (taskActualMilliSeconds != null) return taskActualMilliSeconds/3600000}"/>
            <service service-name="getScrumActualHour" result-map="result">
                <field-map field-name="taskId" from-field="taskId"/>
            </service>
            <set field="nullField" type="String"/>
            <service service-name="getScrumPlanHour" result-map="resultMap">
                <field-map field-name="taskId" from-field="nullField"/>
                <field-map field-name="custRequestId"/>
                <field-map field-name="sprintId" from-field="nullField"/>
                <field-map field-name="projectId" from-field="nullField"/>
            </service>
            <set field="taskEstimatedMilliSeconds" from-field="resultMap.initPlanHours"/>
        </row-actions>
        <field name="taskId" title="${uiLabelMap.ScrumTask}" parameter-name="workEffortId">
            <hyperlink target="taskView" link-type="hidden-form"  description="${taskName} - [${taskId}]">
                <parameter param-name="taskId"/>
            </hyperlink>
        </field>
        <field name="sprintId" title="${uiLabelMap.ScrumSprint}" use-when="sprintId!=null">
            <display-entity entity-name="WorkEffort" key-field-name="workEffortId" description=" ">
                <sub-hyperlink target="ViewSprint" description="${sprintName} - [${sprintId}]" >
                    <parameter param-name="projectId"/>
                    <parameter param-name="sprintId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="sprintId" use-when="sprintId==null">
            <hyperlink description="${uiLabelMap.ScrumUnplanSprint}" target="unplanBacklog">
                <parameter param-name="productId" from-field="productId"/>
            </hyperlink>
        </field>
        <field name="projectId" title="${uiLabelMap.ScrumProject}" use-when="projectId!=null">
            <display-entity entity-name="WorkEffort" key-field-name="workEffortId" description=" ">
                <sub-hyperlink target="viewScrumProject" description="${projectName} - [${projectId}]">
                    <parameter param-name="projectId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="custRequestId" title="${uiLabelMap.ScrumSprintBacklog}">
            <display-entity entity-name="CustRequest" key-field-name="custRequestId" description=" ">
                <sub-hyperlink target="ViewProdBacklogItem" description="${description} - [${custRequestId}]">
                    <parameter param-name="custRequestId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="taskTypeId" >
            <display-entity entity-name="WorkEffortType" key-field-name="workEffortTypeId"/>
        </field>
        <field name="taskCurrentStatusId" title="${uiLabelMap.CommonStatus}">
            <display-entity entity-name="StatusItem" key-field-name="statusId"/>
        </field>
        
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" >
            <display description="${party[0].lastName} ${party[0].firstName}"/>
        </field>
        <field name="taskCreatedDate" title="${uiLabelMap.FormFieldTitle_createdDate}"><display type="date"/></field>
        <field name="taskEstimatedMilliSeconds" title="${uiLabelMap.ScrumPlannedHours}" parameter-name="planHours"><display></display></field>
        <field name="taskActualMilliSeconds" title="${uiLabelMap.ScrumActualHours}" parameter-name="actualHours"><display description="${result.actualHours}"/></field>
        <field name="taskEstimatedStartDate" title="${uiLabelMap.CommonStartDate}" parameter-name="estimatedStartDate"><display type="date"/></field>
        <field name="editButton" title=" " widget-style="buttontext">
            <hyperlink description="${uiLabelMap.CommonEdit}" target="EditTask" link-type="hidden-form">
                <parameter param-name="taskId"/>
                <parameter param-name="sprintId"></parameter>
            </hyperlink>
        </field>
        <field name="deleteButton" title=" " widget-style="buttontext">
            <hyperlink description="${uiLabelMap.CommonDelete}" target="deleteTask" link-type="hidden-form" confirmation-message="Are you sure to delete this task?">
                <parameter param-name="custRequestId"/>
                <parameter param-name="workEffortId" from-field="taskId"/>
            </hyperlink>
        </field>
    </form>

    <form name="TasksListError" extends="TasksList" list-name="errorTaskList" paginate-index-field="TasksListError_index" paginate-size-field="TasksListError_size">
    </form>
    <form name="TasksListInstall" extends="TasksList" list-name="installTaskList" paginate-index-field="TasksListInstall_index" paginate-size-field="TasksListInstall_size">
    </form>
    <form name="TasksListTest" extends="TasksList" list-name="testTaskList" paginate-index-field="TasksListTest_index" paginate-size-field="TasksListTest_size">
    </form>
    <form name="TasksListCoding" extends="TasksList" list-name="implementTaskList" paginate-index-field="TasksListCoding_index" paginate-size-field="TasksListCoding_size">
    </form>
    <form name="FindTask" type="single" target="FindTask">
        <actions>
            <entity-condition entity-name="StatusItem" list="statusItemList">
               <condition-list combine="and">
                   <condition-expr field-name="statusTypeId" operator="equals" value="SCRUM_TASK_STATUS"/>
                   <condition-expr field-name="statusId" operator="not-equals" value="STS_CREATED_AS"/>
                   <condition-expr field-name="statusId" operator="not-equals" value="STS_CREATED_IP"/>
                   <condition-expr field-name="statusId" operator="not-equals" value="STS_CREATED_UA"/>
               </condition-list>
            </entity-condition>
        </actions>
        <field name="taskId"><text/></field>
        <field name="taskName" position="2"><text/></field>
        <field name="taskTypeId" title="Task Type">
            <drop-down allow-empty="true">
                <entity-options entity-name="WorkEffortType" key-field-name="workEffortTypeId">
                    <entity-constraint name="parentTypeId" value="SCRUM_TASK"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="unplannedFlag" position="2" title="${uiLabelMap.ScrumUnplanBacklog}">
            <drop-down allow-empty="true" >
                <option key="Y" description="${uiLabelMap.CommonY}"/>
                <option key="N" description="${uiLabelMap.CommonN}"/>
            </drop-down>
        </field>
        <field name="statusId" title="${uiLabelMap.CommonStatus}">
            <drop-down allow-empty="true">
                <list-options key-name="statusId" list-name="statusItemList"/>
            </drop-down>
        </field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" position="2">
            <lookup target-form-name="LookupPerson" client-autocomplete-field="true" />
        </field>
        <field name="sprintId"><text/></field>
        <field name="sprintName" position="2"><text/></field>
        <field name="projectId"><text/></field>
        <field name="projectName" position="2"><text/></field>
        <field name="findButton" title="${uiLabelMap.CommonFind}"><submit/></field>
    </form>
    <form name="TasksListNoAction" extends="TasksList">
        <field name="partyId">
            <display-entity entity-name="Person" key-field-name="partyId" description="${lastName} ${firstName}"></display-entity>
        </field>
        <field name="taskEstimatedMilliSeconds"><display/></field>
        <field name="updateButton"><hidden/></field>
        <field name="editButton"><hidden/></field>
        <field name="deleteButton"><hidden/></field>
    </form>
    <form name="TasksListErrorNoAction" extends="TasksListNoAction" list-name="errorTaskList" paginate-index-field="TasksListErrorNoAction_index" paginate-size-field="TasksListErrorNoAction_size">
    </form>
    <form name="TasksListInstallNoAction" extends="TasksListNoAction" list-name="installTaskList" paginate-index-field="TasksListInstallNoAction_index" paginate-size-field="TasksListInstallNoAction_size">
    </form>
    <form name="TasksListTestNoAction" extends="TasksListNoAction" list-name="testTaskList" paginate-index-field="TasksListTestNoAction_index" paginate-size-field="TasksListTestNoAction_size">
    </form>
    <form name="TasksListCodingNoAction" extends="TasksListNoAction" list-name="implementTaskList" paginate-index-field="TasksListCodingNoAction_index" paginate-size-field="TasksListCodingNoAction_size">
    </form>
    <form name="FindTaskRevision" target="FindTaskRevision" type="single"
        header-row-style="header-row" default-table-style="basic-table">
        <field name="productId"><lookup target-form-name="LookupProduct"/> </field>
        <field name="custRequestId" title="${uiLabelMap.ScrumBacklogId}"><text/> </field>
        <field name="workEffortId" title="${uiLabelMap.ScrumTaskId}"><text/> </field>
        <field name="findButton" title="${uiLabelMap.CommonFind}"><submit/></field>
     </form>
    <form name="ListTaskRevisions" list-name="listIt" title="" type="list" paginate-target="TaskView" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" default-table-style="basic-table hover-bar">
        <row-actions>
            <entity-and entity-name="ContentRole" list="contentRole">
                <field-map field-name="roleTypeId" value="OWNER"/>
                <field-map field-name="contentId" from-field="contentId"/>
            </entity-and>
            <set field="partyId" value="${contentRole[0].partyId}"/>
            <property-to-field resource="revision" property="revision.url" field="url"/>
        </row-actions>
        <field name="contentName" title="${uiLabelMap.ScrumRevision}" widget-style="buttontext">
                <hyperlink description="${contentName}" target="RevisionInfo?repository=${url}${drObjectInfo}" link-type="anchor" target-window="_BLANK" target-type="plain"/>
        </field>
        <field name="description" title="${uiLabelMap.CommonMessage}"><display description="${groovy:description.toString().substring(0,Math.min(description.toString().length(),100))}"/></field>
        <field name="partyId" title="${uiLabelMap.ScrumCommitter}">
            <display-entity entity-name="PartyNameView" key-field-name="partyId" description="${firstName} ${lastName} ${middleName}"/>
        </field>
    </form>
    <form name="TaskRevisionTotals" extends="ListTaskRevisions" paginate-target="FindTaskRevision">
        <field name="productId" title="${uiLabelMap.ScrumProductName}">
            <display-entity entity-name="Product" description="${groovy:internalName.toString().substring(0,Math.min(internalName.toString().length(),25))}" key-field-name="productId">
             <sub-hyperlink target="ViewProduct" description="[${productId}]">
                 <parameter param-name="productId"/>
             </sub-hyperlink>
            </display-entity>
         </field>
        <field name="custRequestId" title="${uiLabelMap.ScrumProductBacklog}">
            <display-entity entity-name="CustRequest" description="${groovy:description.toString().substring(0,Math.min(description.toString().length(),25))}" key-field-name="custRequestId">
                <sub-hyperlink target="ViewProdBacklogItem" description="[${custRequestId}]">
                    <parameter param-name="custRequestId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="workEffortId" title="${uiLabelMap.ScrumTaskName}">
            <display-entity entity-name="WorkEffort" description="${groovy:workEffortName.toString().substring(0,Math.min(workEffortName.toString().length(),25))}" key-field-name="workEffortId">
                <sub-hyperlink target="taskView" description="[${workEffortId}]">
                    <parameter param-name="taskId" from-field="workEffortId"/>
                </sub-hyperlink>
            </display-entity>
        </field>
        <field name="fromDate"><display/></field>
        <sort-order>
            <sort-field name="contentName"/>
            <sort-field name="description"/>
            <sort-field name="productId"/>
            <sort-field name="custRequestId"/>
            <sort-field name="workEffortId"/>
            <sort-field name="fromDate"/>
            <sort-field name="partyId"/>
        </sort-order>
    </form>
    <form name="TaskMember" type="single" target="addMemberTask">
        <actions>
            <entity-condition entity-name="RoleType" list="roleTypeList">
                <condition-list combine="or">
                    <condition-expr field-name="roleTypeId" value="SCRUM_MASTER"/>
                    <condition-expr field-name="roleTypeId" value="SCRUM_TEAM"/>
                </condition-list>
                <order-by field-name="-description"/>
            </entity-condition>
            <entity-condition entity-name="WorkEffortPartyAssignView" list="scrumMembers">
                <condition-list combine="and">
                    <condition-expr field-name="workEffortId" from-field="sprint.sprintId"/>
                    <condition-expr field-name="roleTypeId" value="SCRUM_TEAM"/>
                </condition-list>
            </entity-condition>
        </actions>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
        <field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
        <field name="statusId"><hidden value="SCAS_ASSIGNED"/></field>
        <field name="partyId"  title="${uiLabelMap.ScrumProjectMembers}" use-when="parameters.get(&quot;partyId&quot;)!=null&amp;&amp;sprint!=null">
            <display-entity entity-name="PartyNameView"  description="${lastName}, ${firstName} ${middleName}" key-field-name="partyId">
                <sub-hyperlink target="taskMember?taskId=${parameters.taskId}" description="[${uiLabelMap.CommonChange}]"/>
            </display-entity>
        </field>
        <field name="partyId"  title="${uiLabelMap.ScrumAssignTo}" use-when="parameters.get(&quot;partyId&quot;)!=null&amp;&amp;sprint==null">
            <display-entity entity-name="PartyNameView"  description="${lastName}, ${firstName} ${middleName}" key-field-name="partyId">
                <sub-hyperlink target="taskMember?taskId=${parameters.taskId}" description="[${uiLabelMap.CommonChange}]"/>
            </display-entity>
        </field>
        <field name="partyId" title="${uiLabelMap.ScrumProjectMembers}" event="onChange" action="javascript:document.taskMember.action='taskMember';document.taskMember.submit();" use-when="parameters.get(&quot;partyId&quot;)==null&amp;&amp;sprint!=null">
            <drop-down allow-empty="true">
                <list-options key-name="partyId" list-name="scrumMembers" description="${lastName} ${firstName} ${middleName}" list-entry-name=""/>
            </drop-down>
        </field>
        <field name="partyId" title="${uiLabelMap.ScrumAssignTo}" event="onChange" action="javascript:document.taskMember.action='taskMember';document.taskMember.submit();" use-when="parameters.get(&quot;partyId&quot;)==null&amp;&amp;sprint==null">
            <drop-down allow-empty="true">
                <entity-options description="${lastName} ${firstName} ${middleName}" entity-name="ScrumMemberUserLoginAndSecurityGroup" key-field-name="partyId">
                    <entity-constraint name="partyStatusId" operator="not-equals" value="PARTY_DISABLED"/>
                    <entity-constraint name="groupId" operator="equals" value="SCRUM_TEAM"/>
                    <entity-constraint name="enabled" operator="not-equals" value="N"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="roleTypeId" use-when="parameters.get(&quot;partyId&quot;)!=null&amp;&amp;sprint==null">
            <drop-down current="selected" allow-empty="false">
                <list-options key-name="roleTypeId" list-name="roleTypeList"/>
            </drop-down>
        </field>
        <field name="roleTypeId" use-when="parameters.get(&quot;partyId&quot;)!=null&amp;&amp;sprint!=null">
            <drop-down current="selected" allow-empty="false">
                <entity-options entity-name="WorkEffortPartyAssignAndRoleType">
                    <entity-constraint name="partyId" operator="equals" value="${parameters.partyId}"/>
                    <entity-constraint name="workEffortId" operator="equals" value="${sprint.sprintId}"/>
                </entity-options>
            </drop-down>
        </field>
        <field name="fromDate"><date-time/></field>
        <field name="thruDate"><date-time/></field>
        <field name="submitButton" title="${uiLabelMap.CommonAdd}"><submit/></field>
    </form>
    
    <form name="TaskMemberList" type="list" target="removeMemberTask" list-name="taskMembers" use-row-submit="true" paginate-target="taskMember" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar">
        <actions>
            <entity-and entity-name="WorkEffortPartyAssignView" list="taskMembers" filter-by-date="true">
                <field-map field-name="workEffortId" from-field="workEffortId"/>
            </entity-and>
        </actions>
        <field name="workEffortId"><hidden value="${parameters.taskId}"/></field>
        <field name="taskId"><hidden value="${parameters.taskId}"/></field>
        <field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
        <field name="partyId"><hidden/></field>
        <field name="memberName" title="${uiLabelMap.ScrumMembersName}">
            <hyperlink description="${lastName} ${firstName} ${middleName} [${partyId}]" target="viewprofile">
                <parameter param-name="partyId"/>
            </hyperlink>
        </field>
        <field name="roleTypeId">
            <display-entity entity-name="RoleType"/>
        </field>
        <field name="fromDate"><display type="date"/></field>
        <field name="thruDate"><display type="date"/></field>
        <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
        <field name="submitButton" title="${uiLabelMap.CommonRemove}"><submit/></field>
    </form>
    <form name="TaskMemberListInfo" type="list" extends="TaskMemberList" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar">
        <field name="submitButton" title="${uiLabelMap.CommonAdd}"><hidden/></field>
    </form>
    <form name="TaskMemberListInfoForStakeholder" type="list" extends="TaskMemberList" separate-columns="true"
        odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar">
        <field name="memberName" title="${uiLabelMap.ScrumMembersName}">
            <display description="${lastName} ${firstName} ${middleName} [${partyId}]"></display>
        </field>
        <field name="submitButton" title="${uiLabelMap.CommonAdd}"><hidden/></field>
    </form>
</forms>
