blob: 492c99891ff842d06fbec4b084c5cd1f97a73beb [file] [log] [blame]
<?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="SprintList" type="list" use-row-submit="true" list-name="listIt" target="DeleteSprint" paginate-target="SprintList" 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>
<set field="input.noConditionFind" value="N"/>
<set field="input.workEffortParentId" from-field="parameters.projectId"/>
<set field="input.workEffortTypeId" value="SCRUM_SPRINT"/>
<set field="input.currentStatusId" value="SPRINT_ACTIVE"/>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="input"/>
<field-map field-name="entityName" value="WorkEffort"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
<field-map field-name="orderBy" value="estimatedStartDate"/>
</service>
</actions>
<row-actions>
<set field="estimatedHours" value="${estimatedMilliSeconds/1000/60/60}" type="Long"/>
</row-actions>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="workEffortId"><hidden value="${workEffortId}"/></field>
<field name="workEffortName" title="Sprint Name">
<hyperlink description="${workEffortName}" target="ViewSprint">
<parameter param-name="sprintId" from-field="workEffortId"/>
<parameter param-name="projectId" from-field="projectWorkEffort.workEffortId"/>
</hyperlink>
</field>
<field name="currentStatusId" title="Current Status"><display-entity entity-name="StatusItem" key-field-name="statusId"></display-entity></field>
<field name="actualStartDate" title="Start Date"><display></display></field>
<field name="actualCompletionDate" title="End Date"><display></display></field>
<field name="estimatedHours" title="Sprint Length (hours)"><display></display></field>
</form>
<form name="SprintListClosed" extends="SprintList">
<actions>
<set field="input.noConditionFind" value="N"/>
<set field="input.workEffortParentId" from-field="parameters.projectId"/>
<set field="input.workEffortTypeId" value="SCRUM_SPRINT"/>
<set field="input.currentStatusId" value="SPRINT_CLOSED"/>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="input"/>
<field-map field-name="entityName" value="WorkEffort"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
<field-map field-name="orderBy" value="estimatedStartDate"/>
</service>
</actions>
</form>
<form name="SprintBacklogList" type="list" use-row-submit="true" list-name="custRequestAndCustRequestItem" paginate-target="sprintBacklogListTarget" 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="WorkEffortAndProduct" list="projectList">
<field-map field-name="workEffortId" from-field="parameters.projectId"/>
</entity-and>
<set field="productId" from-field="projectList[0].productId"/>
<entity-condition entity-name="CustRequestAndCustRequestItem" list="custRequestAndCustRequestItem">
<condition-list combine="and">
<condition-expr field-name="custRequestTypeId" value="RF_PROD_BACKLOG" />
<condition-expr field-name="statusId" value="CRQ_ACCEPTED" />
<condition-expr field-name="productId" from-field="productId"/>
</condition-list>
<order-by field-name="custSequenceNum"/>
</entity-condition>
</actions>
<field name="custRequestId"><hidden/></field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogName}">
<hyperlink description="${context.description} - [${custRequestId}]" target="ViewProdBacklogItem">
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
</hyperlink>
</field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="custRequestId"><hidden/></field>
</form>
<form name="SprintBacklogListItems" type="list" use-row-submit="true" list-name="listIt" target="UpdateHours" paginate-target="ViewSprint" separate-columns="true"
odd-row-style="alternate-row" default-table-style="hover-bar basic-table">
<row-actions>
<!-- get total backlog item's plan hours -->
<set field="nullField" type="String"/>
<service service-name="getScrumPlanHour" result-map="backlogPlanHourOutMap">
<field-map field-name="custRequestId"/>
<field-map field-name="sprintId" from-field="nullField"/>
<field-map field-name="projectId" from-field="nullField"/>
</service>
<set field="backlogPlanHours" from-field="backlogPlanHourOutMap.planHours"/>
<!-- get task's plan hours -->
<service service-name="getScrumPlanHour" result-map="taskPlanHourOutMap">
<field-map field-name="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>
<set field="planHours" from-field="taskPlanHourOutMap.planHours"/>
<!-- condition -->
<set field="showPosition1" value="${groovy:String prev=(String)previousItem.get(&quot;custRequestId&quot;);return new Boolean(!(prev!=null&amp;&amp;prev.equals(custRequestId)));}" type="Boolean"/>
<!-- Get list of task for each sprint backlog -->
<entity-and entity-name="WorkEffortPartyAssignView" list="sprintMember">
<field-map field-name="workEffortId" from-field="sprintId"/>
<field-map field-name="roleTypeId" value="SCRUM_TEAM"/>
</entity-and>
<entity-and entity-name="WorkEffortPartyAssignView" list="assignedTos">
<field-map field-name="workEffortId" from-field="taskId"/>
</entity-and>
<set field="partyId" value="${assignedTos[0].partyId}"/>
<service service-name="getScrumActualHour" result-map="result">
<field-map field-name="taskId" from-field="taskId"/>
<field-map field-name="partyId" from-field="partyId"/>
</service>
<set field="taskActualHours" from-field="result.actualHours"/>
<entity-one entity-name="CustRequest" value-field="custRequest"/>
<set field="defaultBacklogPlanHours" value="${custRequest.custEstimatedMilliSeconds/3600000}"/>
<set field="initialPlannedHours" from-field="defaultBacklogPlanHours"/>
<entity-and entity-name="CustRequestItem" list="custRequestItems">
<field-map field-name="custRequestId" from-field="custRequestId"/>
</entity-and>
<entity-condition entity-name="CustRequestItem" list="custRequestItems">
<condition-list combine="and">
<condition-expr field-name="custRequestId" from-field="custRequestId"/>
<condition-expr field-name="productId" operator="not-equals" from-field="nullValue"/>
</condition-list>
</entity-condition>
<set field="productId" from-field="custRequestItems[0].productId"/>
</row-actions>
<field name="projectId" position="2"><hidden/></field>
<field name="sprintId" position="2"><hidden/></field>
<field name="taskId" position="2"><hidden/></field>
<field name="VIEW_SIZE_2" position="2"><hidden value="${parameters.VIEW_SIZE_2}"/></field>
<field name="VIEW_INDEX_2" position="2"><hidden value="${parameters.VIEW_INDEX_2}"/></field>
<field name="custRequestId" title="${uiLabelMap.ScrumSprintBacklog}" position="1" use-when="showPosition1&amp;&amp;&quot;${custRequestTypeId}&quot;!=&quot;RF_SCRUM_MEETINGS&quot;">
<display-entity entity-name="CustRequest" key-field-name="custRequestId" description=" ">
<sub-hyperlink target="ViewProdBacklogItem" description="${context.description} - [${custRequestId}]" link-type="hidden-form" target-window="_BLANK" link-style="buttontext">
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="custRequestId" title="${uiLabelMap.ScrumSprintBacklog}" position="1" use-when="showPosition1&amp;&amp;&quot;${custRequestTypeId}&quot;==&quot;RF_SCRUM_MEETINGS&quot;" widget-style="disabled">
<display-entity entity-name="CustRequest" key-field-name="custRequestId" description="${context.description} - [${custRequestId}]">
</display-entity>
</field>
<field name="custRequest.statusId" title="${uiLabelMap.ScrumStatusBacklog}" position="1" use-when="showPosition1&amp;&amp;&quot;Any&quot;.equals(paraBacklogStatusId)">
<display-entity entity-name="StatusItem" key-field-name="statusId"/>
</field>
<field name="taskId" title="${uiLabelMap.ScrumTab} ${uiLabelMap.ScrumTask}" position="2" parameter-name="workEffortId" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)">
<display-entity entity-name="WorkEffort" key-field-name="workEffortId" description=" ">
<sub-hyperlink target="taskView" description="${uiLabelMap.ScrumTab} ${taskName} - [${taskId}]" link-type="hidden-form" target-window="_BLANK">
<parameter param-name="projectId"/>
<parameter param-name="taskId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="taskTypeId" title="${uiLabelMap.ScrumTab} ${uiLabelMap.ScrumTaskType}" position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)">
<display-entity entity-name="WorkEffortType" key-field-name="workEffortTypeId" description="${uiLabelMap.ScrumTab} ${description}"/>
</field>
<field name="taskCurrentStatusId" title="${uiLabelMap.CommonStatus}" position="2" use-when="!&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display-entity entity-name="StatusItem" key-field-name="statusId"/></field>
<field name="taskCurrentStatusId" title="${uiLabelMap.CommonStatus}" position="2" use-when="&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)" widget-style="alert"><display-entity entity-name="StatusItem" key-field-name="statusId"/></field>
<field name="dummy1" title=" " position="1" use-when="showPosition1"><display description=" "/></field>
<field name="dummy2" title=" " position="1" use-when="showPosition1"><display description=" "/></field>
<field name="dummy3" title=" " position="1" use-when="showPosition1"><display description=" "/></field>
<field name="initialPlannedHours" title="Initial Plan / Total Plan" position="1" use-when="showPosition1"><display description="${initialPlannedHours} / ${backlogPlanHours}"/></field>
<field name="dummy4" title=" " position="1" use-when="showPosition1"><display description=" "/></field>
<field name="dummy5" title=" " position="1" use-when="showPosition1"><display description=" "/></field>
<field name="taskActualHours" title="${uiLabelMap.ScrumActualHours}" position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display/></field>
<field name="planHours" title="${uiLabelMap.ScrumPlannedHours}" position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display></display>
</field>
<field name="deleteButton" title=" " position="1" use-when="showPosition1&amp;&amp;!&quot;CRQ_COMPLETED&quot;.equals(&quot;${custRequest.statusId}&quot;)" widget-style="buttontext">
<hyperlink description="Delete" target="DeleteSprintBackLogs" confirmation-message="Are you sure to delete this sprint backlog ?" link-type="hidden-form">
<parameter param-name="custRequestId"/>
<parameter param-name="sprintId"/>
<parameter param-name="projectId"/>
</hyperlink>
</field>
<field name="newTask" title=" " position="1" use-when="showPosition1&amp;&amp;!&quot;CRQ_COMPLETED&quot;.equals(&quot;${custRequest.statusId}&quot;)" widget-style="buttontext">
<hyperlink description="Add Task" target="NewSprintBacklogTask" link-type="hidden-form">
<parameter param-name="custRequestId"/>
<parameter param-name="sprintId"/>
<parameter param-name="projectId"/>
</hyperlink>
</field>
<field name="dummy6" title=" " position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display description=" "/></field>
<field name="partyId" title="${uiLabelMap.ScrumAssignedTo}" position="2" parameter-name="partyId" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)">
<display-entity entity-name="PartyNameView" description="${lastName}, ${firstName} ${middleName}" key-field-name="partyId"/>
</field>
<field name="editTaskParty" title=" " position="2" use-when="!&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)" widget-style="buttontext">
<hyperlink description="${uiLabelMap.CommonEdit}" target="EditTask" link-type="hidden-form" target-window="_BLANK">
<parameter param-name="taskId"/>
<parameter param-name="sprintId"></parameter>
</hyperlink>
</field>
<field name="deleteTaskButton" title=" " position="2" use-when="!&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)" widget-style="buttontext">
<hyperlink description="Delete" target="DeleteTaskFromSprintOverview" confirmation-message="Are you sure to delete this task ?" link-type="hidden-form">
<parameter param-name="workEffortId" from-field="taskId"/>
<parameter param-name="custRequestId"/>
<parameter param-name="sprintId"/>
<parameter param-name="projectId"/>
</hyperlink>
</field>
<field name="setCompleteButton" title=" " widget-style="buttontext" use-when="!&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"
position="2">
<hyperlink description="${uiLabelMap.ScrumSetComplete}" target="setCompleteTask" link-type="hidden-form">
<parameter param-name="workEffortId" from-field="taskId"/>
<parameter param-name="sprintId"></parameter>
</hyperlink>
</field>
<field name="dummy7" title=" " position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display description=" "/></field>
</form>
<form name="SprintBacklogListItemsHideDelete" extends="SprintBacklogListItems">
<field name="planHours" title="${uiLabelMap.ScrumPlannedHours}" position="2" use-when="!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><display/></field>
<field name="deleteButton" position="1" use-when="showPosition1"><hidden/></field>
<field name="deleteTaskButton" position="2" use-when="!&quot;STS_COMPLETED&quot;.equals(taskCurrentStatusId)&amp;&amp;!&quot;SCRUM_SPRINT&quot;.equals(taskTypeId)"><hidden/></field>
<sort-order>
<sort-field name="custRequestId"/>
<sort-field name="taskId"/>
<sort-field name="custRequest.statusId"/>
<sort-field name="dummy1"/>
<sort-field name="dummy2"/>
<sort-field name="dummy4"/>
<sort-field name="dummy5"/>
<sort-field name="taskTypeId"/>
<sort-field name="taskCurrentStatusId"/>
<sort-field name="initialPlannedHours"/>
<sort-field name="planHours"/>
<sort-field name="newTask"/>
<sort-field name="dummy3"/>
</sort-order>
</form>
<form name="ShowSprintInfo" type="single" default-entity-name="WorkEffort" target="EditSprint" >
<actions>
<entity-one entity-name="WorkEffort" value-field="sprint">
<field-map field-name="workEffortId" from-field="parameters.sprintId"/>
</entity-one>
<entity-one entity-name="StatusItem" value-field="status">
<field-map field-name="statusId" from-field="sprint.currentStatusId"/>
</entity-one>
<set field="estimatedHrs" value="${sprint.estimatedMilliSeconds/1000/60/60/40}" type="Integer"/>
<entity-and entity-name="WorkEffortCustRequestView" list="custRequests">
<field-map field-name="workEffortId" from-field="parameters.sprintId"/>
</entity-and>
<entity-and entity-name="WorkEffortAndProduct" list="workeffAndProList">
<field-map field-name="workEffortId" from-field="sprint.workEffortParentId"/>
</entity-and>
<entity-one entity-name="Product" value-field="resultProduct">
<field-map field-name="productId" from-field="workeffAndProList[0].productId"/>
</entity-one>
<set field="maxHours" value="${groovy:
def memberSize = delegator.findByAnd(&quot;WorkEffortPartyAssignment&quot;, [&quot;workEffortId&quot;: parameters.sprintId], null, false);
maxHours = memberSize.size() * context.estimatedHrs * 40;
}"/>
<service service-name="getScrumPlanHour" result-map="planHourOutMap">
<field-map field-name="sprintId" from-field="parameters.sprintId"/>
</service>
<set field="planHours" from-field="planHourOutMap.planHours"/>
<set field="actualStartDate" from-field="sprint.actualStartDate" type="Timestamp"/>
<set field="actualCompletionDate" from-field="sprint.actualCompletionDate" type="Timestamp"/>
</actions>
<field name="productId" title="${uiLabelMap.ScrumProductName}">
<hyperlink description="${resultProduct.internalName} [${resultProduct.productId}]" target="ViewProduct">
<parameter param-name="productId" from-field="resultProduct.productId"/>
</hyperlink>
</field>
<field name="projectId" title="${uiLabelMap.ScrumProjectName}">
<hyperlink description="${project.workEffortName} [${project.workEffortId}]" target="viewScrumProject">
<parameter param-name="projectId" from-field="parameters.projectId"/>
</hyperlink>
</field>
<field name="workEffortName" title="${uiLabelMap.ScrumSprintName}"><display description="${sprint.workEffortName}"/></field>
<field name="description" title="${uiLabelMap.ScrumSprintGoal}" use-when="description!=null"><display description="${sprint.description}"/></field>
<field name="currentStatusId"><hidden/></field>
<field name="workEffortId"><hidden/></field>
<field name="statusId" title="${uiLabelMap.CommonStatus}">
<display description="${status.description}"/>
</field>
<field name="actualStartDate" title="${uiLabelMap.CommonStartDate}"><display type="date"/></field>
<field name="actualCompletionDate" title="${uiLabelMap.CommonEndDate}"><display type="date"/></field>
<field name="estimatedHrs" title="${uiLabelMap.ScrumSprintLengthWeeks}"><display description="${estimatedHrs} week(s)"/></field>
<field name="planHours" title="${uiLabelMap.ScrumPlannedHours}"><display description="${planHours} hours"/></field>
<field name="totalBacklogs" title="${uiLabelMap.PageTitleTotalBacklog}"><display description="reviewed:${reviewedBacklog} completed:${completedBacklog} total:${totalbacklog}"></display></field>
<field name="totalTasks" title="${uiLabelMap.PageTitleTotalTask}"><display description="created:${createdTask} completed:${completedTask} total:${totalTask}"></display></field>
<field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
<field name="sprintDuration"><hidden value="${estimatedMilliSeconds/144000000}"/></field>
</form>
<form name="EditSprint" type="single" extends="ShowSprintInfo" target="UpdateSprint">
<field name="workEffortParentId" entry-name="projectId" title="${uiLabelMap.ScrumSprintMoveToProject}">
<drop-down allow-empty="true">
<entity-options description="${workEffortName} [${workEffortId}]" entity-name="WorkEffortAndProduct" key-field-name="workEffortId">
<entity-constraint name="workEffortTypeId" operator="equals" value="SCRUM_PROJECT"/>
<entity-constraint name="currentStatusId" operator="equals" value="SPJ_ACTIVE"/>
<entity-constraint name="productId" operator="equals" value="${resultProduct.productId}"/>
</entity-options>
</drop-down>
</field>
<field name="workEffortName" title="${uiLabelMap.ScrumSprintName}"><text default-value="${sprint.workEffortName}"></text></field>
<field name="description" title="${uiLabelMap.ScrumSprintGoal}"><textarea default-value="${sprint.description}"/></field>
<field name="currentStatusId"><hidden value="${sprint.currentStatusId}"/></field>
<field name="actualStartDate"><date-time type="date" default-value="${sprint.actualStartDate}"/></field>
<field name="estimatedHrs" title="${uiLabelMap.ScrumSprintLength}"><hidden/></field>
<field name="sprintDuration" title="${uiLabelMap.ScrumSprintLengthWeeks}" >
<drop-down current-description="${estimatedHrs}" no-current-selected-key="${estimatedHrs}">
<option key="1" description="1"/>
<option key="2" description="2"/>
<option key="3" description="3"/>
<option key="4" description="4"/>
</drop-down>
</field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"> <hidden value="${parameters.sprintId}"/></field>
<field name="workEffortId"><hidden value="${parameters.sprintId}"/></field>
<field name="workEffortTypeId"><hidden value="SCRUM_SPRINT"/></field>
<field name="statusName"><hidden/></field>
<field name="statusId" title="${uiLabelMap.CommonStatus}">
<drop-down>
<entity-options entity-name="StatusItem">
<entity-constraint name="statusTypeId" operator="equals" value="SPRINT_STATUS"/>
</entity-options>
</drop-down>
</field>
<field name="totalBacklogs" ><ignored/> </field>
<field name="totalTasks"><ignored/> </field>
<field name="deleteButton"><hidden/></field>
<field name="actualDate" title="${uiLabelMap.CommonEndDate}"><hidden/></field>
<field name="maxHours" title="${uiLabelMap.ScrumMaximumHours}"><hidden/></field>
<field name="updateButton" title="${uiLabelMap.CommonUpdate}"><submit/></field>
<sort-order>
<sort-field name="productId"/>
<sort-field name="workEffortParentId"/>
<sort-field name="workEffortName"/>
<sort-field name="description"/>
<sort-field name="statusId"/>
<sort-field name="actualStartDate"/>
<sort-field name="actualCompletionDate"/>
<sort-field name="planHours"/>
<sort-field name="sprintDuration"/>
<sort-field name="updateButton"/>
</sort-order>
</form>
<form name="AddSprint" skip-end="true" type="single" target="createSprint" default-entity-name="WorkEffort" default-map-name="projectWorkEffort">
<field name="sprintName" title="${uiLabelMap.ScrumSprintName}"><text size="60"></text></field>
<field name="sprintDescription" title="${uiLabelMap.ScrumSprintGoal}"><textarea/></field>
<field name="workEffortTypeId"><hidden value="SCRUM_SPRINT"/></field>
<field name="currentStatusId"><hidden value="CRQ_DRAFT"/></field>
<field name="sprintEstimatedStart" title="${uiLabelMap.CommonStartDate}"><date-time type="date"/></field>
<field name="sprintDuration" title="${uiLabelMap.ScrumSprintLengthWeeks}">
<drop-down current-description="2" no-current-selected-key="2">
<option key="1" description="1"/>
<option key="2" description="2"/>
<option key="3" description="3"/>
<option key="4" description="4"/>
</drop-down>
</field>
</form>
<form name="AddSprintMember" type="single" target="addSprintMember" default-map-name="projectMembers">
<actions>
<entity-condition entity-name="ScrumMemberUserLoginAndSecurityGroup" distinct="true" list="listPerson">
<condition-list combine="and">
<condition-expr field-name="partyStatusId" operator="not-equals" value="PARTY_DISABLED"/>
<condition-expr field-name="thruDate" value="" operator="equals" ignore-if-empty="true"/>
<condition-expr field-name="groupId" value="SCRUM_TEAM" operator="equals"/>
</condition-list>
<select-field field-name="lastName"/>
<select-field field-name="firstName"/>
<select-field field-name="middleName"/>
<select-field field-name="partyId"/>
<order-by field-name="lastName"/>
</entity-condition>
<entity-and entity-name="WorkEffortAndProduct" list="projectList">
<field-map field-name="workEffortId" from-field="parameters.projectId"/>
</entity-and>
<set field="productId" from-field="projectList[0].productId"/>
<set field="sprintId" from-field="parameters.sprintId"/>
</actions>
<field name="productId"><hidden/></field>
<field name="partyId" title="${uiLabelMap.Person}" tooltip="${uiLabelMap.CommonPerson}" use-when="parameters.get(&quot;partyId&quot;)!=null" parameter-name="partyId">
<display-entity entity-name="PartyNameView" description="${lastName}, ${firstName} ${middleName}" key-field-name="partyId">
<sub-hyperlink target="SprintMember?sprintId=${parameters.sprintId}" description="[${uiLabelMap.CommonChange}]"/>
</display-entity>
</field>
<field name="partyId" title="${uiLabelMap.Person}" tooltip="${uiLabelMap.CommonPerson}" event="onchange" action="javascript:document.addSprintMember.action='SprintMember';document.addSprintMember.submit();" use-when="parameters.get(&quot;partyId&quot;)==null" parameter-name="partyId">
<drop-down allow-empty="false">
<option key="" description="- ${uiLabelMap.CommonSelectOne} -"/>
<list-options key-name="partyId" list-name="listPerson" description="${lastName} ${firstName} ${middleName}"/>
</drop-down>
</field>
<field name="roleTypeId">
<drop-down current="selected" allow-empty="false">
<entity-options entity-name="PartyRoleDetailAndPartyDetail">
<entity-constraint name="partyId" operator="equals" value="${parameters.partyId}"/>
<entity-constraint name="parentTypeId" operator="equals" value="SCRUM_MEMBER"/>
</entity-options>
</drop-down>
</field>
<field name="fromDate"><date-time/></field>
<field name="thruDate"><date-time/></field>
<field name="statusId"><hidden value="PRTYASGN_ASSIGNED"/></field>
<field name="workEffortId"><hidden value="${parameters.sprintId}"/></field>
<field name="submitButton" title="${uiLabelMap.ScrumAssign}"><submit button-type="button"/></field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
</form>
<form name="ListSprintMember" type="list" target="delSprintMember" list-name="listIt" use-row-submit="true" paginate-target="ViewSprint" 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>
<set field="input.noConditionFind" from-field="parameters.noConditionFind" default-value="Y"/>
<set field="input.workEffortId" from-field="parameters.sprintId"/>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="input"/>
<field-map field-name="entityName" value="WorkEffortPartyAssignView"/>
<field-map field-name="orderBy" value="firstName"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
</service>
</actions>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"> <hidden value="${parameters.sprintId}"/></field>
<field name="partyId"><hidden/></field>
<field name="workEffortId"><hidden value="${parameters.sprintId}"/></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 confirmation-message="Are you sure to delete selected member ?"/></field>
</form>
<form name="ListSprintMemberNoAction" extends="ListSprintMember">
<field name="submitButton"><hidden/></field>
</form>
<form name="ListSprintMemberForStakeholder" extends="ListSprintMember">
<field name="memberName" title="${uiLabelMap.ScrumMembersName}">
<display description="${lastName}, ${firstName} ${middleName} [${partyId}]"></display>
</field>
<field name="submitButton"><hidden/></field>
</form>
<form name="EditScrumProject" default-map-name="workEffort" target="updateScrumProject" title="" type="single">
<actions>
<entity-one entity-name="WorkEffortAttribute" value-field="workEffortAttMap">
<field-map field-name="workEffortId" from-field="workEffortId"/>
<field-map field-name="attrName" value="PROJECT_BILLED"/>
</entity-one>
<set field="workEffAttMap.billed" from-field="workEffortAttMap.attrValue"/>
</actions>
<alt-target use-when="workEffort==null" target="createScrumProject"/>
<field name="productId" title="${uiLabelMap.ScrumProductName}" use-when="workEffort==null">
<drop-down>
<entity-options description="${groupName} -- ${internalName}[${productId}]" entity-name="ProductAndRole" key-field-name="productId">
<entity-constraint name="supportDiscontinuationDate" operator="equals" value=""/>
<entity-constraint name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<entity-order-by field-name="groupName"/>
<entity-order-by field-name="internalName"/>
</entity-options>
</drop-down>
</field>
<field name="productId" title="${uiLabelMap.ScrumProjectMoveToProduct}" use-when="workEffort!=null">
<drop-down>
<entity-options description="${groupName} -- ${internalName}[${productId}]" entity-name="ProductAndRole" key-field-name="productId">
<entity-constraint name="partyId" operator="equals" value="${productAndRoleMap.partyId}"/>
<entity-constraint name="supportDiscontinuationDate" operator="equals" value=""/>
<entity-constraint name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<entity-order-by field-name="groupName"/>
<entity-order-by field-name="internalName"/>
</entity-options>
</drop-down>
</field>
<field name="productName" entry-name="productId" title="${uiLabelMap.ScrumProductName}" use-when="workEffort!=null" parameter-name="productName">
<display-entity entity-name="Product" key-field-name="productId" description="${internalName}"/>
</field>
<field name="workEffortId"><hidden/></field>
<field name="workEffortTypeId"><hidden value="SCRUM_PROJECT"/></field>
<field name="partyId"><hidden value="${userLogin.partyId}"/></field>
<field name="productOwnerId"><hidden value="${parameters.partyId}"/></field>
<field name="workEffortName" title="${uiLabelMap.ScrumProjectName}"><text/></field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" map-name="workEffAttMap">
<drop-down allow-empty="true">
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="currentStatusId" use-when="workEffortId==null"><hidden value="SPJ_ACTIVE"/></field>
<field name="description" title="${uiLabelMap.ScrumProjectGoal}"><textarea/></field>
<field name="currentStatusId" use-when="workEffortId!=null" title="${uiLabelMap.CommonStatus}">
<drop-down current="first-in-list" current-description="${currentStatus.description}">
<entity-options entity-name="StatusItem" key-field-name="statusId">
<entity-constraint name="statusTypeId" value="SCRUM_PROJECT_STATUS"/>
<entity-order-by field-name="description"/>
</entity-options>
</drop-down>
</field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="submitButton" title="${uiLabelMap.CommonSave}" widget-style="smallSubmit"><submit/></field>
</form>
<form name="NewScrumProject" extends="EditScrumProject">
<field name="productId" title="${uiLabelMap.ScrumProductName}"><display-entity entity-name="Product" description="${internalName} [${productId}]"/> </field>
</form>
<form name="ScrumProject" type="single" target="viewScrumProject" default-map-name="project">
<actions>
<entity-one entity-name="ProjectSprintBacklogAndTask" value-field="showDate">
<field-map field-name="projectId" from-field="project.workEffortId"/>
</entity-one>
<service service-name="getScrumActualHour" result-map="results">
<field-map field-name="projectId" from-field="project.workEffortId"/>
</service>
<entity-and entity-name="WorkEffort" list="sprintList">
<field-map field-name="workEffortParentId" from-field="parameters.projectId"/>
<field-map field-name="workEffortTypeId" value="SCRUM_SPRINT"/>
<order-by field-name="actualStartDate"/>
</entity-and>
<entity-one entity-name="Product" value-field="product">
<field-map field-name="productId" from-field="project.productId"/>
</entity-one>
<entity-and entity-name="ProductRole" list="productRoleList">
<field-map field-name="productId" from-field="product.productId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER"/>
</entity-and>
<set field="partyMap.productOwnerId" from-field="productRoleList[0].partyId"/>
<entity-one entity-name="WorkEffortAttribute" value-field="workEffortAttMap">
<field-map field-name="workEffortId" from-field="parameters.projectId"/>
<field-map field-name="attrName" value="PROJECT_BILLED"/>
</entity-one>
<set field="actualStartDate" from-field="sprintList[0].actualStartDate" type="Date"/>
</actions>
<field name="productId" title="${uiLabelMap.ScrumProductName}" entity-name="Product" parameter-name="productId">
<display-entity entity-name="Product" key-field-name="productId" description=" ">
<sub-hyperlink target="ViewProduct" description="${product.internalName} [${project.productId}]">
<parameter param-name="productId" from-field="project.productId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="workEffortName" title="${uiLabelMap.ScrumProjectName}"><display/></field>
<field name="productOwnerId" title="${uiLabelMap.ScrumProductOwner}" map-name="partyMap">
<display-entity entity-name="Person" key-field-name="partyId" description="${firstName} ${lastName} ${middleName} [${partyId}]"/>
</field>
<field name="description" title="${uiLabelMap.ScrumProjectGoal}"><display/></field>
<field name="billed" title="${uiLabelMap.ScrumBilled}"><display description="${workEffortAttMap.attrValue}"/></field>
<field name="currentStatusId" title="${uiLabelMap.CommonStatus}">
<display-entity entity-name="StatusItem" key-field-name="statusId"/>
</field>
<field name="actualStartDate"><display description="${actualStartDate}"/></field>
<field name="actualCompletionDate"><display type="date"/></field>
<field name="actualHours"><display description="${results.actualHours}"/></field>
</form>
<form name="EditProdBacklog" type="single" target="createProductBacklog" default-map-name="custRequest">
<actions>
<entity-one entity-name="CustRequest" value-field="custRequest"/>
<set field="nullField" type="Timestamp"/>
<set field="custRequestName" from-field="custRequest.custRequestName"/>
<set field="openDateTime" from-field="custRequest.openDateTime"/>
<set field="closedDateTime" from-field="custRequest.closedDateTime"/>
<entity-one entity-name="Product" value-field="product">
<field-map field-name="productId" from-field="parameters.productId"/>
</entity-one>
<entity-and entity-name="CustRequestNoteView" list="custRequestNotes">
<field-map field-name="custRequestId" from-field="custRequestId"/>
<field-map field-name="noteName" value="How to test"/>
</entity-and>
<entity-condition entity-name="ProductBacklog" list="workEffortlist">
<condition-list>
<condition-expr field-name="custRequestId" from-field="custRequestId"/>
<condition-expr field-name="workEffortTypeId" value="SCRUM_SPRINT"/>
</condition-list>
</entity-condition>
<entity-one entity-name="WorkEffort" value-field="workEffort">
<field-map field-name="workEffortId" from-field="workEffortlist[0].workEffortId"/>
</entity-one>
<set field="sprintName" from-field="workEffort.workEffortName"/>
<set field="projectId" from-field="workEffort.workEffortParentId"/>
<set field="noteInfo" from-field="custRequestNotes[0].noteInfo"/>
<entity-one entity-name="WorkEffortAttribute" value-field="workEffortAttMap">
<field-map field-name="workEffortId" from-field="projectId"/>
<field-map field-name="attrName" value="PROJECT_BILLED"/>
</entity-one>
<set field="projectBilled" from-field="workEffortAttMap.attrValue"/>
<entity-and entity-name="ProductRole" list="productRole">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="thruDate" from-field="nullField"/>
<order-by field-name="roleTypeId"/>
</entity-and>
<entity-one entity-name="ProductAndRole" value-field="Owner">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="partyId" from-field="productRole[0].partyId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER"/>
<field-map field-name="fromDate" from-field="productRole[0].fromDate"/>
</entity-one>
<entity-one entity-name="ProductAndRole" value-field="Company">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="partyId" from-field="productRole[1].partyId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<field-map field-name="fromDate" from-field="productRole[1].fromDate"/>
</entity-one>
<entity-and entity-name="PartyRelationshipAndPartyDetail" list="party">
<field-map field-name="partyIdFrom" from-field="Company.partyId"/>
<field-map field-name="roleTypeIdFrom" value="ACCOUNT"/>
<field-map field-name="roleTypeIdTo" value="CONTACT"/>
<field-map field-name="thruDate" from-field="nullField"/>
</entity-and>
<entity-condition entity-name="PartyRelationshipAndDetail" list="request">
<condition-expr field-name="partyId" from-field="custRequest.fromPartyId"/>
</entity-condition>
<entity-and entity-name="CustRequestItem" list="custRequestItems">
<field-map field-name="custRequestId" from-field="custRequestId"/>
</entity-and>
<set field="story" from-field="custRequestItems[0].story"/>
</actions>
<alt-target use-when="custRequestId!=null" target="updateProductBacklog?custRequestId=${parameters.custRequestId}"/>
<field name="sequence"><hidden value="${sequence}"/></field>
<field name="backStatusId" use-when="custRequest==null"><hidden value="CRQ_ACCEPTED"/> </field>
<field name="noteId"><hidden value="${custRequestNotes[0].noteId}"/></field>
<field name="productId"><hidden value="${parameters.productId}"/></field>
<field name="partyId"><hidden value="userLogin.partyId"/></field>
<field name="custRequestTypeId" use-when="custRequest==null"><hidden/></field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogItem}" required-field="true" tooltip="${uiLabelMap.ScrumMax255Chars}" use-when="custRequest==null">
<text size="63" maxlength="255"/>
</field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogItem}" required-field="true" tooltip="${uiLabelMap.ScrumMax255Chars}" use-when="custRequest!=null&amp;&amp;isTeamMember==false"><text size="63" maxlength="255"/></field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogItem}" use-when="custRequest!=null&amp;&amp;isTeamMember==true"><display/></field>
<field name="productId" map-name="product" title="${uiLabelMap.ScrumProjectMoveToProduct}" use-when="custRequest!=null&amp;&amp;isTeamMember==false">
<drop-down>
<entity-options description="${groupName} ${internalName}[${productId}]" entity-name="ProductAndRole" key-field-name="productId">
<entity-constraint name="partyId" operator="equals" value="${Company.partyId}"/>
<entity-constraint name="supportDiscontinuationDate" operator="equals" value=""/>
<entity-constraint name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<entity-order-by field-name="groupName"/>
<entity-order-by field-name="internalName"/>
</entity-options>
</drop-down>
</field>
<field name="productId" map-name="product" title="${uiLabelMap.ScrumProjectMoveToProduct}" use-when="custRequest!=null&amp;&amp;isTeamMember==true">
<display-entity entity-name="Product" description="${internalName} [${productId}]" key-field-name="productId"/>
</field>
<field name="groupName" title="${uiLabelMap.ScrumCompany}" parameter-name="partyIdFrom" use-when="custRequest!=null">
<display description="${Company.groupName}"/>
</field>
<field name="productOwerId" title="${uiLabelMap.ScrumProductOwner}" use-when="custRequest!=null">
<display description="${Owner.lastName} ${Owner.firstName} ${Owner.middleName}"/>
</field>
<field name="parentCustRequestId" title="${uiLabelMap.ScrumBacklogItemCategory}" use-when="custRequest==null">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" env-name="productId"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
<entity-order-by field-name="custRequestName"/>
</entity-options>
</drop-down>
</field>
<field name="parentCustRequestId" title="${uiLabelMap.ScrumBacklogItemCategory}" use-when="custRequest!=null&amp;&amp;isTeamMember==false">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" env-name="productId"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
</entity-options>
</drop-down>
</field>
<field name="parentCustRequestId" title="${uiLabelMap.ScrumBacklogItemCategory}" use-when="custRequest!=null&amp;&amp;isTeamMember==true">
<display-entity entity-name="CustRequest" description="${custRequestName}" key-field-name="custRequestId"/>
</field>
<field name="plannedTime" parameter-name="custEstimatedMilliSeconds" title="${uiLabelMap.ScrumPlannedTime}" tooltip="${uiLabelMap.ScrumHrs}" use-when="custRequest==null">
<text size="3"/>
</field>
<field name="plannedTime" parameter-name="custEstimatedMilliSeconds" title="${uiLabelMap.ScrumPlannedTime}" tooltip="${uiLabelMap.ScrumHrs}" use-when="custRequest!=null&amp;&amp;isTeamMember==false"><text size="3" default-value="${custRequest.custEstimatedMilliSeconds/3600000}"/></field>
<field name="plannedTime" parameter-name="custEstimatedMilliSeconds" title="${uiLabelMap.ScrumPlannedTime}" tooltip="${uiLabelMap.ScrumHrs}" use-when="custRequest!=null&amp;&amp;isTeamMember==true"><display description="${custRequest.custEstimatedMilliSeconds/3600000}"/></field>
<field name="custSequenceNum" title="${uiLabelMap.CommonSequenceNum}" use-when="custRequest==null">
<text size="3"></text>
</field>
<field name="custSequenceNum" title="${uiLabelMap.CommonSequenceNum}" use-when="custRequest!=null&amp;&amp;isTeamMember==false"><text size="3"></text></field>
<field name="custSequenceNum" title="${uiLabelMap.CommonSequenceNum}" use-when="custRequest!=null&amp;&amp;isTeamMember==true"><display/></field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" use-when="custRequest==null">
<drop-down allow-empty="false" no-current-selected-key="Y">
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" use-when="custRequest!=null&amp;&amp;isTeamMember==false&amp;&amp;projectBilled==null">
<drop-down allow-empty="false" no-current-selected-key="Y">
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" use-when="custRequest!=null&amp;&amp;isTeamMember==false&amp;&amp;projectBilled!=null" tooltip="${uiLabelMap.ScrumSetOnProjectLevel}">
<display/>
</field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" use-when="custRequest!=null&amp;&amp;isTeamMember==true"><display/></field>
<field name="custRequestTypeId" title="${uiLabelMap.ScrumUnplanBacklog}" use-when="isTeamMember==false">
<drop-down allow-empty="false" no-current-selected-key="N">
<option key="RF_UNPLAN_BACKLOG" description="${uiLabelMap.CommonY}"/>
<option key="RF_PROD_BACKLOG" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="custRequestTypeId" title="${uiLabelMap.ScrumUnplanBacklog}" use-when="custRequest!=null&amp;&amp;isTeamMember==true">
<display-entity entity-name="CustRequestType" key-field-name="custRequestTypeId"/>
</field>
<field name="unplannedFlag" title="${uiLabelMap.ScrumUnplanBacklog}" use-when="custRequest==null">
<drop-down allow-empty="false" no-current-selected-key="N">
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="statusId" title="${uiLabelMap.CommonStatus}" use-when="custRequest!=null">
<display-entity entity-name="StatusItem" key-field-name="statusId"></display-entity>
</field>
<field name="partyIdTo" title="${uiLabelMap.ScrumRequestName}" parameter-name="partyIdTo" use-when="custRequest!=null&amp;&amp;isTeamMember==false">
<drop-down no-current-selected-key="${custRequest.fromPartyId}" allow-empty="false">
<list-options list-name="party" description="${toLastName} ${toFirstName} ${toMiddleName}" key-name="partyIdTo"/>
</drop-down>
</field>
<field name="partyIdTo" title="${uiLabelMap.ScrumRequestName}" parameter-name="partyIdTo" use-when="custRequest!=null&amp;&amp;isTeamMember==true">
<display description="${request[0].lastName} ${request[0].firstName} ${request[0].middleName}"/>
</field>
<field name="Sprint" title="${uiLabelMap.ScrumSprintName}" use-when="sprintName!=null">
<hyperlink description="${sprintName} [${workEffortlist[0].workEffortId}]" target="ViewSprint">
<parameter param-name="prjectId" from-field="projectId"/>
<parameter param-name="sprintId" from-field="workEffortlist[0].workEffortId"/>
</hyperlink>
</field>
<field name="story" title="${uiLabelMap.ScrumStory}" use-when="custRequest==null">
<textarea rows="4" cols="60" default-value="${story}" />
</field>
<field name="story" title="${uiLabelMap.ScrumStory}" use-when="custRequest!=null&amp;&amp;isTeamMember==false"><textarea rows="4" cols="60" default-value="${story}" /></field>
<field name="story" title="${uiLabelMap.ScrumStory}" use-when="custRequest!=null&amp;&amp;isTeamMember==true"><display description="${story}"/></field>
<field name="noteInfo" title="${uiLabelMap.ScrumHowToTest}"><textarea rows="4" cols="60" default-value="${noteInfo}" /></field>
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit button-type="button"/></field>
<sort-order>
<sort-field name="description"/>
<sort-field name="productId"/>
<sort-field name="partyId"/>
<sort-field name="groupName"/>
<sort-field name="productOwerId"/>
<sort-field name="parentCustRequestId"/>
<sort-field name="Sprint"/>
<sort-field name="plannedTime"/>
<sort-field name="custSequenceNum"/>
<sort-field name="billed"/>
<sort-field name="unplannedFlag"/>
<sort-field name="custRequestTypeId"/>
<sort-field name="statusId"/>
<sort-field name="partyIdTo"/>
<sort-field name="productId"/>
<sort-field name="story"/>
<sort-field name="noteId"/>
<sort-field name="noteInfo"/>
<sort-field name="custRequestTypeId"/>
<sort-field name="submitButton"/>
</sort-order>
</form>
<form name="FindProdBacklog" type="single" target="ViewTotalBacklog">
<actions>
<entity-condition entity-name="ScrumMemberUserLoginAndSecurityGroup" list="requesterList">
<condition-list combine="or" >
<condition-expr field-name="groupId" value="SCRUM_MASTER"/>
<condition-expr field-name="groupId" value="SCRUM_PRODUCT_OWNER"/>
</condition-list>
</entity-condition>
</actions>
<field name="sequence"><hidden value="${sequence}"/></field>
<field name="productId"><hidden value="${parameters.productId}"/></field>
<field name="custRequestId" title="${uiLabelMap.ScrumProductBacklogId}"><text-find/></field>
<field name="fromPartyId" title="${uiLabelMap.ScrumRequesterName}" position="2">
<drop-down allow-empty="true">
<list-options key-name="partyId" list-name="requesterList" description="${lastName} ${firstName} ${middleName}"/>
</drop-down>
</field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogName}"><text-find/></field>
<field name="custRequestDate" title="${uiLabelMap.ScrumRequestDate}" position="2">
<date-time type="date"/>
</field>
<field name="parentCustRequestId" title="${uiLabelMap.ScrumBacklogItemCategory}">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" value="${parameters.productId}"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
<entity-order-by field-name="custRequestName"/>
</entity-options>
</drop-down>
</field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" position="2">
<drop-down allow-empty="true" current-description="" >
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="custRequestTypeId" title="${uiLabelMap.ScrumPlanned}">
<drop-down allow-empty="true">
<option key="RF_PROD_BACKLOG" description="${uiLabelMap.CommonY}"/>
<option key="RF_UNPLAN_BACKLOG" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="statusId" title="${uiLabelMap.CommonStatus}" position="2">
<drop-down allow-empty="true">
<entity-options entity-name="StatusItem" key-field-name="statusId">
<entity-constraint name="statusTypeId" value="CUSTREQ_STTS"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_PENDING"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_REJECTED"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_DRAFT"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_SUBMITTED"/>
<entity-order-by field-name="sequenceId"/>
</entity-options>
</drop-down>
</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.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="FindTotalBacklog" type="single" target="FindTotalBacklog">
<actions>
<entity-condition entity-name="ScrumMemberUserLoginAndSecurityGroup" list="requesterList">
<condition-list combine="or" >
<condition-expr field-name="groupId" value="SCRUM_MASTER"/>
<condition-expr field-name="groupId" value="SCRUM_PRODUCT_OWNER"/>
</condition-list>
</entity-condition>
</actions>
<field name="custRequestId" title="${uiLabelMap.ScrumProductBacklogId}"><text/></field>
<field name="productId" position="2"><text/></field>
<field name="description" title="${uiLabelMap.ScrumProductBacklogName}"><text/></field>
<field name="fromPartyId" title="${uiLabelMap.ScrumRequesterName}" position="2">
<drop-down allow-empty="true">
<option key=""/>
<list-options key-name="partyId" list-name="requesterList" description="${lastName} ${firstName} ${middleName}"/>
</drop-down>
</field>
<field name="parentCustRequestId" title="${uiLabelMap.ScrumBacklogItemCategory}">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" value="${parameters.productId}"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
<entity-order-by field-name="custRequestName"/>
</entity-options>
</drop-down>
</field>
<field name="custRequestDate" title="${uiLabelMap.ScrumRequestDate}" position="2">
<date-time type="date"/>
</field>
<field name="custRequestTypeId" title="${uiLabelMap.ScrumPlanned}">
<drop-down allow-empty="true">
<option key="RF_PROD_BACKLOG" description="${uiLabelMap.CommonY}"/>
<option key="RF_UNPLAN_BACKLOG" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="billed" title="${uiLabelMap.ScrumBilled}" position="2">
<drop-down allow-empty="true" current-description="" >
<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">
<entity-options entity-name="StatusItem" key-field-name="statusId">
<entity-constraint name="statusTypeId" value="CUSTREQ_STTS"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_PENDING"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_REJECTED"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_DRAFT"/>
<entity-constraint name="statusId" operator="not-equals" value="CRQ_SUBMITTED"/>
<entity-order-by field-name="sequenceId"/>
</entity-options>
</drop-down>
</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.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="ListProdBacklog" type="multi" use-row-submit="true" list-name="custRequestAndCustRequestItems" target="updateProductBacklogItemRow?productId=${productId}&amp;sequence=${sequence}&amp;" paginate-target="AddProdBacklog" separate-columns="true"
odd-row-style="alternate-row" default-table-style="basic-table hover-bar" paginate="true">
<actions>
<set field="parentCustRequestId" from-field="parameters.parentCustRequestId" default-value=""/>
</actions>
<row-actions>
<entity-one entity-name="CustRequest" value-field="custRequest"/>
<set field="description" from-field="custRequest.description"/>
<set field="custRequestCategoryGroupId" from-field="parentCustRequestId"/>
<set field="estimatedHours" value="${groovy:custEstimatedMilliSeconds!=null?custEstimatedMilliSeconds/3600000:0;}"/>
<set field="showPosition1" value="${groovy:String prev=(String)previousItem.get(&quot;parentCustRequestId&quot;);return new Boolean(!(prev!=null&amp;&amp;prev.equals(parentCustRequestId)));}" type="Boolean"/>
</row-actions>
<field name="postWorkHours"><hidden value="1"/></field>
<field name="priority"><hidden/></field>
<field name="custRequestCategoryGroupId" position="1" use-when="${groovy:showPosition1==true}" title="${uiLabelMap.ScrumCategory}">
<display-entity entity-name="CustRequest" key-field-name="custRequestId" description="${custRequestName}"/>
</field>
<!-- order button -->
<field name="top" position="2" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-end-up-green.png">
<parameter param-name="mode" value="TOP"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="orderBy" from-field="orderBy"/>
<parameter param-name="sequence" value="N"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="bot" position="2" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-end-down-green.png">
<parameter param-name="mode" value="BOT"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="orderBy" from-field="orderBy"/>
<parameter param-name="sequence" value="N"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="up" position="2" title=" " >
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-single-up-green.png">
<parameter param-name="mode" value="UP"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="orderBy" from-field="orderBy"/>
<parameter param-name="sequence" value="N"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="dwn" position="2" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-single-down-green.png">
<parameter param-name="mode" value="DWN"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="orderBy" from-field="orderBy"/>
<parameter param-name="sequence" value="N"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="custSequenceNum" position="2" title="${uiLabelMap.ScrumSeq}"><display/></field>
<field name="custRequestId" position="2" title="${uiLabelMap.ScrumProductBacklogItem}">
<hyperlink description="${description} [${custRequestId}]" target="ViewProdBacklogItem">
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
</hyperlink>
</field>
<field name="estimatedHours" position="2" title="${uiLabelMap.ScrumPlannedHours}"><text size="3"/></field>
<field name="parentCustRequestId" position="2" title="${uiLabelMap.ScrumCategory}">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" env-name="productId"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
</entity-options>
</drop-down>
</field>
<field name="deleteFlag" position="2" title="${uiLabelMap.CommonDelete}"><check/></field>
<field name="submitButton" widget-style="buttontext"><submit button-type="text-link"/></field>
</form>
<form name="ListProdBacklogForOwner" extends="ListProdBacklog">
<field name="estimatedHours" position="2" title="${uiLabelMap.ScrumPlannedHours}"><display/></field>
<field name="submitButton" widget-style="buttontext"><submit button-type="text-link"/></field>
</form>
<form name="ListProdBacklogBySeq" type="multi" use-row-submit="false" list-name="custRequestAndCustRequestItems" target="updateProductBacklogItemRow?productId=${productId}&amp;sequence=${sequence}&amp;backStatusId=CRQ_ACCEPTED"
paginate-target="AddProdBacklog" separate-columns="true" odd-row-style="alternate-row" default-table-style="basic-table hover-bar" paginate="true">
<row-actions>
<entity-one entity-name="CustRequest" value-field="custRequest"/>
<set field="product" from-field="custRequest.description"/>
<set field="estimatedHours" value="${groovy:custEstimatedMilliSeconds!=null?custEstimatedMilliSeconds/3600000:0;}"/>
</row-actions>
<field name="sequence"><hidden value="Y"/></field>
<field name="custRequestCategoryGroupId"><hidden/></field>
<!-- order button -->
<field name="top" position="1" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-end-up-green.png">
<parameter param-name="mode" value="TOP"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="sequence" value="Y"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="bot" position="1" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-end-down-green.png">
<parameter param-name="mode" value="BOT"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="sequence" value="Y"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="up" position="1" title=" " >
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-single-up-green.png">
<parameter param-name="mode" value="UP"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="sequence" value="Y"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="dwn" position="1" title=" ">
<hyperlink target="updateSprintBacklogseq" image-location="/images/arrow-single-down-green.png">
<parameter param-name="mode" value="DWN"/>
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
<parameter param-name="custRequestItemSeqId"/>
<parameter param-name="statusId" value="${parameters.statusId}"/>
<parameter param-name="sequence" value="Y"/>
<parameter param-name="VIEW_SIZE_1" from-field="viewSize"/>
<parameter param-name="VIEW_INDEX_1" from-field="viewIndex"/>
<parameter param-name="searchOption_custRequestId" value="${parameters.custRequestId}"/>
<parameter param-name="searchOption_custRequestId_op" value="${parameters.custRequestId_op}"/>
<parameter param-name="searchOption_custRequestId_ic" value="${parameters.custRequestId_ic}"/>
<parameter param-name="searchOption_description" value="${parameters.description}"/>
<parameter param-name="searchOption_description_op" value="${parameters.description_op}"/>
<parameter param-name="searchOption_description_ic" value="${parameters.description_ic}"/>
<parameter param-name="searchOption_parentCustRequestId" value="${parameters.parentCustRequestId}"/>
<parameter param-name="searchOption_statusId" value="${parameters.statusId}"/>
</hyperlink>
</field>
<field name="custSequenceNum" position="1" title="${uiLabelMap.ScrumSeq}"><display/></field>
<field name="realSequenceNum"><hidden/></field>
<field name="custRequestId"><hidden/></field>
<field name="backlogId" position="1" title="${uiLabelMap.ScrumBacklogId}">
<hyperlink description="${custRequestId}" target="ViewProdBacklogItem">
<parameter param-name="custRequestId"/>
<parameter param-name="productId"/>
</hyperlink>
</field>
<field name="description" position="1" title="${uiLabelMap.ScrumProductBacklogItem}">
<display description="${product}">
<in-place-editor url="updateCustRequest" cancel-control="button" saving-text="Updating..." text-between-controls=" ">
<simple-editor/>
<field-map field-name="custRequestId" from-field="custRequestId"/>
</in-place-editor>
</display>
</field>
<field name="newSequenceNum" title="${uiLabelMap.ScrumNewSequence}"><text size="3"/></field>
<field name="estimatedHours" position="1" title="${uiLabelMap.ScrumPlannedHours}"><text size="3"/></field>
<field name="parentCustRequestId" position="1" title="${uiLabelMap.ScrumCategory}">
<drop-down allow-empty="true">
<entity-options description="${custRequestName}" entity-name="CustRequestAndCustRequestItem" key-field-name="custRequestId">
<entity-constraint name="productId" env-name="productId"/>
<entity-constraint name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
</entity-options>
</drop-down>
</field>
<field name="setToReview" widget-style="buttontext" title="${uiLabelMap.ScrumMoveToUnplannedSprint}"><hidden/></field>
<field name="deleteFlag" position="1" title="${uiLabelMap.CommonDelete}" widget-style="buttontext">
<hyperlink description="${uiLabelMap.CommonDelete}" target="DeleteProductBacklogItem">
<parameter param-name="productId" from-field="parameters.productId"/>
<parameter param-name="custRequestId" from-field="custRequestId"/>
<parameter param-name="statusId" from-field="parameters.statusId"/>
</hyperlink>
</field>
<field name="submitButton" widget-style="buttontext"><submit button-type="text-link"/></field>
</form>
<form name="ListProdBacklogBySeqForOwner" extends="ListProdBacklogBySeq">
<field name="estimatedHours"><display/></field>
<field name="submitButton" widget-style="buttontext"><submit button-type="text-link"/></field>
</form>
<form name="ProjectList" type="list" target="main" odd-row-style="alternate-row" default-table-style="basic-table hover-bar" paginate-target="Sprints" list-name="sprints">
<actions>
<set field="isCurrentProject" value="${groovy: request.setAttribute(&quot;isCurrentProject&quot;, false);}" type="Boolean"/>
<set field="currentProject" value="${groovy: request.setAttribute(&quot;currentProject&quot;, ' ');}" type="String"/>
</actions>
<row-actions>
<set field="isCurrentProject" value="${groovy:
if (request.getAttribute(&quot;currentProject&quot;) != context.projectId)
request.setAttribute(&quot;isCurrentProject&quot;, false);
else
request.setAttribute(&quot;isCurrentProject&quot;, true);
if (request.getAttribute(&quot;currentProject&quot;) != context.projectId)
request.setAttribute(&quot;currentProject&quot;, context.projectId);
return (boolean)request.getAttribute(&quot;isCurrentProject&quot;);
}"
type="Boolean"/>
<set field="isCurrentCompany" value="${groovy:
if (request.getAttribute(&quot;currentCompany&quot;) != context.companyId)
request.setAttribute(&quot;isCurrentCompany&quot;, false);
else
request.setAttribute(&quot;isCurrentCompany&quot;, true);
if (request.getAttribute(&quot;currentCompany&quot;) != context.companyId)
request.setAttribute(&quot;currentCompany&quot;, context.companyId);
return (boolean)request.getAttribute(&quot;isCurrentCompany&quot;);
}"
type="Boolean"/>
<set field="estimatedHrs" value="${sprintEstimatedMilliSeconds/1000/60/60/40}" type="Integer"/>
<entity-and entity-name="WorkEffortCustRequestView" list="custRequests">
<field-map field-name="workEffortId" from-field="parameters.sprintId"/>
</entity-and>
<set field="nullField" type="String"/>
<service service-name="getScrumPlanHour" result-map="planHourOutMap">
<field-map field-name="projectId" from-field="nullField"/>
<field-map field-name="sprintId" from-field="context.sprintId"/>
</service>
<set field="planHours" from-field="planHourOutMap.planHours"/>
<service service-name="getScrumActualHour" result-map="resultActualHours" >
<field-map field-name="projectId" from-field="nullField"/>
<field-map field-name="sprintId" from-field="context.sprintId"/>
</service>
<set field="actualHours" from-field="resultActualHours.actualHours"/>
<set field="actualHoursNotBillYet" from-field="resultActualHours.actualHoursNotBillYet"/>
<service service-name="getScrumProject" result-map="result">
<field-map field-name="projectId" from-field="projectId"/>
</service>
<set field="productId" value="${result.projectInfo.productId}"/>
<set field="productOwnerId" value="${result.projectInfo.productOwnerId}"/>
<set field="productOwnerName" value="${result.projectInfo.productOwnerName}"/>
<entity-one entity-name="Product" value-field="product">
<field-map field-name="productId" from-field="productId"/>
</entity-one>
</row-actions>
<field name="companyId" title="${uiLabelMap.ScrumOwnerCompany}" position="1" use-when="!isCurrentCompany" widget-style="buttontext">
<hyperlink description="${companyName} [${companyId}]" target="viewprofile">
<parameter param-name="partyId" from-field="companyId"/>
</hyperlink>
</field>
<field name="projectName" title="${uiLabelMap.ScrumProject}" position="1" use-when="!isCurrentProject" widget-style="buttontext">
<hyperlink description="${projectName} [${projectId}]" target="viewScrumProject">
<parameter param-name="projectId"/>
</hyperlink>
</field>
<field name="productId" title="${uiLabelMap.ScrumProduct}" position="1" use-when="!isCurrentProject">
<display-entity entity-name="Product" description=" " key-field-name="productId">
<sub-hyperlink target="ViewProduct" description="${product.internalName} [${productId}]">
<parameter param-name="productId" from-field="productId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="productOwnerName" title="${uiLabelMap.ScrumProductOwner}" position="1" use-when="!isCurrentProject">
<hyperlink description="${productOwnerName} [${productOwnerId}]" target="viewprofile">
<parameter param-name="partyId" from-field="productOwnerId"/>
</hyperlink>
</field>
<field name="dummy" title=" " position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display description=" "/></field>
<field name="sprintName" title="${uiLabelMap.ScrumTab} ${uiLabelMap.ScrumSprint}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;">
<hyperlink description="${uiLabelMap.ScrumTab} ${sprintName} [${sprintId}]" target="ViewSprint">
<parameter param-name="projectId"/>
<parameter param-name="sprintId"/>
</hyperlink>
</field>
<field name="sprintCurrentStatusId" title="${uiLabelMap.CommonStatus}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;">
<display-entity entity-name="StatusItem" key-field-name="statusId"/>
</field>
<field name="estimatedHrs" title="${uiLabelMap.ScrumSprintLengthWeeks}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="planHours" title="${uiLabelMap.ScrumPlannedHours}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="actualHours" title="${uiLabelMap.ScrumActualHours}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="actualHoursNotBillYet" title="${uiLabelMap.ScrumActualHoursNotBill}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="sprintActualStartDate" title="${uiLabelMap.CommonStartDate}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display type="date"></display></field>
<field name="sprintActualCompletionDate" title="${uiLabelMap.CommonEndDate}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display type="date"></display></field>
</form>
<form name="ProjectListWithNoLinkProfile" extends="ProjectList">
<field name="companyId" title="${uiLabelMap.ScrumOwnerCompany}" position="1" use-when="!isCurrentCompany" widget-style="buttontext">
<display description="${companyName} [${companyId}]"/>
</field>
<field name="productOwnerName" title="${uiLabelMap.ScrumProductOwner}" position="1" use-when="!isCurrentProject">
<display description="${productOwnerName} [${productOwnerId}]"/>
</field>
</form>
<form name="ProjectAndSprintListInfo" type="list" target="ViewProduct" paginate-target="ViewProduct"
odd-row-style="alternate-row" default-table-style="basic-table hover-bar" list-name="sprints">
<actions>
<set field="isCurrentProject" value="${groovy: request.setAttribute(&quot;isCurrentProject&quot;, false);}" type="Boolean"/>
<set field="currentProject" value="${groovy: request.setAttribute(&quot;currentProject&quot;, ' ');}" type="String"/>
</actions>
<row-actions>
<set field="isCurrentProject" value="${groovy:
if (request.getAttribute(&quot;currentProject&quot;) != context.projectId)
request.setAttribute(&quot;isCurrentProject&quot;, false);
else
request.setAttribute(&quot;isCurrentProject&quot;, true);
if (request.getAttribute(&quot;currentProject&quot;) != context.projectId)
request.setAttribute(&quot;currentProject&quot;, context.projectId);
return (boolean)request.getAttribute(&quot;isCurrentProject&quot;);
}"
type="Boolean"/>
<service service-name="getScrumProject" result-map="result">
<field-map field-name="projectId" from-field="projectId"/>
</service>
<set field="productId" value="${result.projectInfo.productId}"/>
<set field="productOwnerName" value="${result.projectInfo.productOwnerName}"/>
<set field="estimatedHrs" value="${sprintEstimatedMilliSeconds/1000/60/60/40}" type="Integer"/>
<entity-and entity-name="WorkEffortCustRequestView" list="custRequests">
<field-map field-name="workEffortId" from-field="parameters.sprintId"/>
</entity-and>
<!-- get plan hour -->
<set field="nullField" type="String"/>
<service service-name="getScrumPlanHour" result-map="planHourOutMap">
<field-map field-name="projectId" from-field="nullField"/>
<field-map field-name="sprintId" from-field="context.sprintId"/>
</service>
<set field="planHours" from-field="planHourOutMap.planHours"/>
<!-- get actual hour -->
<service service-name="getScrumActualHour" result-map="resultActualHours" >
<field-map field-name="projectId" from-field="nullField"/>
<field-map field-name="sprintId" from-field="context.sprintId"/>
</service>
<set field="actualHours" from-field="resultActualHours.actualHours"/>
<set field="actualHoursNotBillYet" from-field="resultActualHours.actualHoursNotBillYet"/>
<!-- get project info -->
</row-actions>
<field name="projectName" title="${uiLabelMap.ScrumProject}" position="1" use-when="!isCurrentProject">
<hyperlink description="${projectName} [${projectId}]" target="viewScrumProject">
<parameter param-name="projectId" from-field="workEffortId"/>
</hyperlink>
</field>
<field name="sprintName" title="${uiLabelMap.ScrumTab} ${uiLabelMap.ScrumSprint}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;">
<hyperlink description="${uiLabelMap.ScrumTab} ${sprintName} [${sprintId}]" target="ViewSprint">
<parameter param-name="projectId"/>
<parameter param-name="sprintId"/>
</hyperlink>
</field>
<field name="sprintCurrentStatusId" title="${uiLabelMap.CommonStatus}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;">
<display-entity entity-name="StatusItem" key-field-name="statusId"/>
</field>
<field name="estimatedHrs" title="${uiLabelMap.ScrumSprintLengthWeeks}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="planHours" title="${uiLabelMap.ScrumPlannedHours}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="actualHours" title="${uiLabelMap.ScrumActualHours}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="actualHoursNotBillYet" title="${uiLabelMap.ScrumActualHoursNotBill}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display/></field>
<field name="sprintActualStartDate" title="${uiLabelMap.CommonStartDate}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display type="date"></display></field>
<field name="sprintActualCompletionDate" title="${uiLabelMap.CommonEndDate}" position="2" use-when="&quot;${sprintId}&quot;!=&quot;&quot;"><display type="date"></display></field>
</form>
<form name="SprintListInfo" extends="SprintList" odd-row-style="alternate-row" even-row-style="even-row" header-row-style="header-row" default-table-style="basic-table hover-bar" paginate-target="viewScrumProject">
<actions>
<set field="input.noConditionFind" value="N"/>
<set field="input.workEffortParentId" from-field="parameters.projectId"/>
<set field="input.workEffortTypeId" value="SCRUM_SPRINT"/>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="input"/>
<field-map field-name="entityName" value="WorkEffort"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
<field-map field-name="orderBy" value="actualStartDate DESC"/>
</service>
</actions>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="workEffortName" title="${uiLabelMap.ScrumSprintName}">
<hyperlink description="${workEffortName} [${workEffortId}]" target="ViewSprint">
<parameter param-name="sprintId" from-field="workEffortId"/>
<parameter param-name="projectId" from-field="project.workEffortId"/>
</hyperlink>
</field>
<field name="actualStartDate" title="${uiLabelMap.CommonStartDate}"><display type="date"/></field>
<field name="actualCompletionDate" title="${uiLabelMap.CommonEndDate}"><display type="date"/></field>
</form>
<form name="DailyMeetingMinute" type="single" target="createDailyNote">
<actions>
<entity-and entity-name="WorkEffortNote" list="workEffortNote">
<field-map field-name="workEffortId" from-field="parameters.workEffortId" />
<field-map field-name="noteId" from-field="parameters.noteId"/>
</entity-and>
</actions>
<field name="workEffortId"><hidden value="${parameters.projectId}"/></field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
<field name="statusId"><hidden value="CRQ_ACCEPTED"/></field>
<field name="noteId"><hidden value="${parameters.noteId}"/></field>
<field name="partyId"><hidden value="${userLogin.partyId}"/></field>
<field name="noteName1"><hidden value="What have you accomplish since the last meeting?"/></field>
<field name="noteName2"><hidden value="What are you going to do before the next meeting?"/></field>
<field name="noteName3"><hidden value="What problem are you having with to task?"/></field>
<field name="noteInfo1" title="${uiLabelMap.ScrumSinceLastMeeting}"><textarea rows="3" cols="60"/></field>
<field name="noteInfo2" title="${uiLabelMap.ScrumBeforeNextMeeting}"><textarea rows="3" cols="60"/></field>
<field name="noteInfo3" title="${uiLabelMap.ScrumProblemTask}"><textarea rows="3" cols="60"/></field>
<!-- <field name="noteDateTime" title="Create Date Perform"><date-time type="date"/></field> -->
<field name="submitButton" title="${uiLabelMap.CommonCreate}"><submit/></field>
</form>
<form name="ListDailyMeetingMinute" type="list" list-name="workEffortNoteAndDataList" use-row-submit="true" 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" paginate-target="DailyScrumMeetingMinute">
<actions>
<set field="projectId" from-field="parameters.workEffortId"/>
<entity-condition entity-name="WorkEffortNoteAndData" list="workEffortNoteAndDataList">
<condition-expr field-name="workEffortId" from-field="parameters.projectId"/>
<order-by field-name="noteId"/>
</entity-condition>
</actions>
<field name="workEffortId"><hidden value="${parameters.projectId}"/></field>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
<field name="noteId"><display/></field>
<field name="noteDateTime" title="${uiLabelMap.FormFieldTitle_createdDate}"><display type="date"></display>
<!--<hyperlink target="DailyScrumMeetingMinute">
<parameter param-name="workEffortId" from-field="parameters.workEffortId"/>
<parameter param-name="noteId" from-field="parameters.noteId"/>
<parameter param-name="noteParty" from-field="parameters.noteParty"/>
</hyperlink>-->
</field>
<field name="noteName" title="${uiLabelMap.ScrumQuestion}"><display></display></field>
<field name="noteInfo" title="${uiLabelMap.ScrumAnswer}"><display></display></field>
<field name="noteParty" title="${uiLabelMap.CommonCreatedBy}">
<display-entity entity-name="Person" key-field-name="partyId" description="${lastName} ${firstName} ${middleName} "/>
</field>
</form>
<form name="ViewDailyMeeting" target="ViewDailyMeetingMinutes" type="single" default-map-name="custRequest">
<actions>
<entity-and entity-name="CustRequestNote" list="custRequestNote">
<field-map field-name="custRequestId" from-field="parameters.custRequestId"/>
</entity-and>
<set field="test" value="${groovy: println(&quot;dddddddddddddddddddddddddddddd&quot;+custRequestNote)}"/>
<set field="noteId" from-field="custRequestNote[0].noteId"/>
<entity-and entity-name="NoteData" list="Question1">
<field-map field-name="noteId" from-field="custRequestNote[0].noteId"/>
<field-map field-name="noteName" value="Question1"/>
</entity-and>
<set field="test" value="${groovy: println(&quot;dddddddddddddddddddddddddddddd&quot;+Question1)}"/>
<set field="noteId" from-field="custRequestNote[1].noteId"/>
<entity-and entity-name="NoteData" list="Question2">
<field-map field-name="noteId" from-field="custRequestNote[1].noteId"/>
<field-map field-name="noteName" value="Question1"/>
</entity-and>
<set field="test" value="${groovy: println(&quot;dddddddddddddddddddddddddddddd&quot;+Question2)}"/>
<set field="noteId" from-field="custRequestNote[2].noteId"/>
<entity-and entity-name="NoteData" list="Question1">
<field-map field-name="noteId" from-field="custRequestNote[2].noteId"/>
<field-map field-name="noteName" value="Question3"/>
</entity-and>
<set field="test" value="${groovy: println(&quot;dddddddddddddddddddddddddddddd&quot;+Question3)}"/>
</actions>
<field name="custRequestId"><hidden value="${parameters.custRequestId}"/></field>
<field name="createdDate" title="Create Date Perform"><display/></field>
<field name="Question1" title="${uiLabelMap.ScrumSinceLastMeeting}"><display description="Since the last meeting ....."></display></field>
<field name="noteInfo1" title="Answer"><display description="${Question1[0].noteInfo}"/></field>
<field name="Question2" title="${uiLabelMap.ScrumBeforeNextMeeting}"><display description="To day ....."></display></field>
<field name="noteInfo2" title="Answer"><display description="${Question2[0].noteInfo}"/></field>
<field name="Question3" title="${uiLabelMap.ScrumProblemTask}"><display description="problem ....."></display></field>
<field name="noteInfo3" title="Answer"><display description="${Question3[0].noteInfo}"/></field>
</form>
<form name="AddSprintBacklog" type="single" target="createSprintBacklog">
<actions>
<entity-and entity-name="WorkEffortAndProduct" list="projectList">
<field-map field-name="workEffortId" from-field="parameters.projectId"/>
</entity-and>
<set field="productId" from-field="projectList[0].productId"/>
<entity-condition entity-name="CustRequestAndCustRequestItem" list="productBacklog">
<condition-list combine="and">
<condition-expr field-name="custRequestTypeId" value="RF_PROD_BACKLOG" />
<condition-expr field-name="statusId" value="CRQ_ACCEPTED" />
<condition-expr field-name="productId" from-field="productId"/>
</condition-list>
<order-by field-name="custSequenceNum"/>
</entity-condition>
<set field="maxNum" value="${groovy: return productBacklog.size();}"/>
</actions>
<field name="projectId"><hidden></hidden></field>
<field name="sprintId"><hidden/></field>
<field name="maxNum"><hidden value="${maxNum}"/></field>
<field name="sprintBacklogs" title="${uiLabelMap.ScrumSprintBacklogHowMany}" tooltip="${maxNum} remaining in Product Backlog"><text default-value="1"/></field>
<field name="submitButton"><submit button-type="button"/></field>
</form>
<form name="EditSprintBacklog" type="single" target="updateSprintBacklog" >
<actions>
<set field="custRequestId" from-field="parameters.custRequestId"/>
<entity-one entity-name="CustRequest" value-field="custRequest"/>
</actions>
<field name="projectId"><hidden value="${parameters.projectId}"/></field>
<field name="sprintId"><hidden value="${parameters.sprintId}"/></field>
<field name="custRequestId" title="${uiLabelMap.ScrumSprintBacklog}">
<display-entity entity-name="CustRequest" key-field-name="custRequestId" description="${custRequestName}"></display-entity>
</field>
<field name="custSequenceNum"><display/></field>
<field name="estimatedHours" title="${uiLabelMap.ScrumPlannedHours}"><text default-value="${groovy:return custRequest.custEstimatedMilliSeconds/3600000}"/></field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}"><submit/></field>
</form>
<!-- Product -->
<form name="EditProduct" type="single" target="createProductAndRole" default-map-name="product">
<actions>
<set field="supportDiscontinuationDate" from-field="supportDiscontinuationDate"/>
<set field="statusId" value="${groovy: if(supportDiscontinuationDate == null) return 'PRODUCT_ACTIVE' else return 'PRODUCT_CLOSED'}"/>
</actions>
<alt-target use-when="product!=null" target="updateProduct"/>
<field name="partyCompany"><hidden/></field>
<field name="partyId" title="${uiLabelMap.ScrumCompanyAndProductOwner}" tooltip="${uiLabelMap.ScrumCompanyNameShow} -- ${uiLabelMap.ScrumProductName}" event="onchange" action="javascript:document.EditProduct.partyCompany.value=this.options[this.selectedIndex].text;" parameter-name="partyId" use-when="companyCurrent==null">
<drop-down allow-empty="false" >
<option key="" description="-select one-"/>
<list-options list-name="scrumRolesPersonAndCompanyList" description="${groupName}[${partyIdFrom}] -- ${lastName} ${firstName} ${middleName}" key-name="partyId"/>
</drop-down>
</field>
<field name="partyId" title="${uiLabelMap.ScrumCompanyAndProductOwner}" tooltip="${uiLabelMap.ScrumCompanyNameShow} - ${uiLabelMap.ScrumProductName}" event="onchange" action="javascript:document.EditProduct.partyCompany.value=this.options[this.selectedIndex].text;" parameter-name="partyId" use-when="companyCurrent!=null">
<drop-down allow-empty="false" current-description="${companyCurrentList[0].groupName}[${companyCurrentList[0].partyIdFrom}] - ${companyCurrentList[0].lastName} ${companyCurrentList[0].firstName} ${companyCurrentList[0].middleName}" >
<option key="${companyCurrentList[0].groupName}[${companyCurrentList[0].partyIdFrom}] - ${companyCurrentList[0].lastName} ${companyCurrentList[0].firstName} ${companyCurrentList[0].middleName}(${companyCurrentList[0].partyId})" description="${companyCurrentList[0].groupName}[${companyCurrentList[0].partyIdFrom}] - ${companyCurrentList[0].lastName} ${companyCurrentList[0].firstName} ${companyCurrentList[0].middleName}"/>
<option key="" description=""/>
<list-options list-name="scrumRolesPersonAndCompanyList" description="${groupName}[${partyIdFrom}] - ${lastName} ${firstName} ${middleName}" key-name="partyId"/>
</drop-down>
</field>
<field name="statusId" title="${uiLabelMap.CommonStatus}" use-when="product!=null">
<drop-down>
<entity-options entity-name="StatusItem">
<entity-constraint name="statusTypeId" value="PRODUCT_STATUS"/>
</entity-options>
</drop-down>
</field>
<field name="internalName" title="${uiLabelMap.ScrumProductName}" required-field="true"><text/></field>
<field name="longDescription" title="${uiLabelMap.CommonDescription}"><textarea/></field>
<field name="productTypeId"><hidden value="SCRUM_ITEM"/></field>
<field name="productId"><hidden value="${parameters.productId}"/></field>
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" use-when="product==null" widget-style="smallSubmit"><submit button-type="button"/></field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}" position="1" use-when="product!=null" widget-style="smallSubmit" event="onClick" action="javascript: if(document.EditProduct.statusId.value == 'PRODUCT_CLOSED') {
if (confirm('Are you sure to close this product ?.')){
document.ViewEditProdBacklog.disable();
document.EditProduct.action = 'updateProduct';
document.EditProduct.submit();
}
else
document.EditProduct.action = 'EditProduct?statusId=PRODUCT_ACTIVE';
}"><submit button-type="button"/></field>
</form>
<form name="EditProductByProductOwner" type="single" extends="EditProduct" default-map-name="product">
<actions>
<entity-and entity-name="ProductRole" list="productRoles" filter-by-date="true">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER"/>
</entity-and>
<entity-and entity-name="ScrumPersonAndCompany" list="parties">
<field-map field-name="partyId" from-field="productRoles[0].partyId"/>
</entity-and>
<entity-and entity-name="ScrumRolesPersonAndCompany" list="companylist">
<field-map field-name="roleTypeId" value="PRODUCT_OWNER"/>
<field-map field-name="partyId" value="${userLogin.partyId}"/>
<order-by field-name="groupName"/>
<order-by field-name="lastName"/>
<order-by field-name="firstName"/>
</entity-and>
</actions>
</form>
<form name="ViewProduct" type="single" target="ViewProduct" default-map-name="product">
<actions>
<entity-and entity-name="ProductRole" list="productComRole">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<field-map field-name="thruDate" value=""/>
</entity-and>
<entity-and entity-name="ProductRole" list="productRole">
<field-map field-name="productId" from-field="parameters.productId"/>
<field-map field-name="roleTypeId" value="PRODUCT_OWNER"/>
<field-map field-name="thruDate" value=""/>
</entity-and>
<entity-and entity-name="ScrumPersonAndCompany" list="parties">
<field-map field-name="partyIdFrom" from-field="productComRole[0].partyId"/>
<field-map field-name="partyId" from-field="productRole[0].partyId"/>
</entity-and>
<set field="supportDiscontinuationDate" from-field="product.supportDiscontinuationDate"/>
<set field="statusMap.statusId" value="${groovy: if(supportDiscontinuationDate == null) return 'PRODUCT_ACTIVE' else return 'PRODUCT_CLOSED'}"/>
</actions>
<field name="productOwerId" title="${uiLabelMap.ScrumCompanyAndProductOwner}">
<hyperlink description="${parties[0].groupName} -- ${parties[0].lastName} ${parties[0].firstName} ${parties[0].middleName}" target="viewprofile">
<parameter param-name="partyId" from-field="productRole[0].partyId"/>
</hyperlink>
</field>
<field name="statusId" title="${uiLabelMap.CommonStatus}" use-when="product!=null" map-name="statusMap">
<display-entity entity-name="StatusItem"/>
</field>
<field name="internalName" title="${uiLabelMap.ScrumProductName}"><display description="${product.internalName} [${product.productId}]"/></field>
<field name="longDescription" title="${uiLabelMap.CommonDescription}"><display /></field>
<field name="productTypeId"><hidden value="SCRUM_ITEM"/></field>
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" use-when="product==null" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="ListProductBacklogCategories" type="list" use-row-submit="true" list-name="listIt" target="DeleteSprint" paginate-target="SprintList" 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-condition entity-name="CustRequestAndCustRequestItem" list="listIt">
<condition-list combine="and">
<condition-expr field-name="productId" from-field="productId"/>
<condition-expr field-name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
</condition-list>
</entity-condition>
</actions>
<row-actions>
<service service-name="getProductBacklogSize" result-map="result">
<field-map field-name="productId" from-field="productId"/>
<field-map field-name="statusId" value="CRQ_ACCEPTED"/>
<field-map field-name="parentCustRequestId" from-field="custRequestId"/>
</service>
<set field="open" from-field="result.productBacklogSize" type="Integer"/>
<service service-name="getProductBacklogSize" result-map="result">
<field-map field-name="productId" from-field="productId"/>
<field-map field-name="statusId" value="CRQ_REVIEWED"/>
<field-map field-name="parentCustRequestId" from-field="custRequestId"/>
</service>
<set field="beingImplemented" from-field="result.productBacklogSize" type="Integer"/>
<service service-name="getProductBacklogSize" result-map="result">
<field-map field-name="productId" from-field="productId"/>
<field-map field-name="statusId" value="CRQ_COMPLETED"/>
<field-map field-name="parentCustRequestId" from-field="custRequestId"/>
</service>
<set field="finished" from-field="result.productBacklogSize" type="Integer"/>
</row-actions>
<field name="custRequestId" title="${uiLabelMap.ScrumCategory}">
<display-entity entity-name="CustRequest" description=" ">
<sub-hyperlink target="EditProductBacklogCategory" description="${custRequestName} - [${custRequestId}]">
<parameter param-name="productId" from-field="productId"/>
<parameter param-name="custRequestId" from-field="custRequestId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="open" title="${uiLabelMap.ScrumOpen}"><display/></field>
<field name="beingImplemented" title="${uiLabelMap.ScrumBeingImplementBacklogItem}"><display/></field>
<field name="finished" title="${uiLabelMap.ScrumFinished}"><display/></field>
</form>
<form name="ListProductBacklogCategoriesNoAction" type="list" use-row-submit="true" list-name="listIt" target="DeleteSprint" paginate-target="SprintList" 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-condition entity-name="CustRequestAndCustRequestItem" list="listIt">
<condition-list combine="and">
<condition-expr field-name="productId" from-field="productId"/>
<condition-expr field-name="custRequestTypeId" value="RF_PARENT_BACKLOG"/>
</condition-list>
</entity-condition>
</actions>
<field name="custRequestId" title="${uiLabelMap.ScrumCategory}">
<display-entity entity-name="CustRequest" description="${custRequestName} - [${custRequestId}]"/>
</field>
</form>
<form name="EditProductBacklogCategory" type="single" target="createProductBacklogCategory" default-map-name="custRequest">
<alt-target use-when="custRequest!=null" target="updateProductBacklogCategory"/>
<field name="productId"><hidden value="${productId}"/></field>
<field name="custRequestId"><hidden/></field>
<field name="custRequestName" title="${uiLabelMap.ScrumCategory}"><text/></field>
<field name="submitButton" title="${uiLabelMap.CommonCreate}" use-when="custRequest==null" widget-style="smallSubmit"><submit button-type="button"/></field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}" use-when="custRequest!=null" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="ListProductByAdmin" type="list" default-entity-name="ProductRole" use-row-submit="true" list-name="listIt" target="deleteProduct" paginate-target="EditProduct" 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>
<set field="parameters.roleTypeId" value="PRODUCT_OWNER"></set>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="parameters"/>
<field-map field-name="entityName" value="ProductAndRole"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
</service>
</actions>
<row-actions>
<entity-one entity-name="Product" value-field="product">
<field-map field-name="productId" from-field="productId"/>
</entity-one>
<set field="longDescription" from-field="product.longDescription"/>
<set field="statusId" value="${groovy: if(product.supportDiscontinuationDate == null) return 'PRODUCT_ACTIVE' else return 'PRODUCT_CLOSED'}"/>
<entity-and entity-name="PartyRelationshipAndPartyDetail" list="company">
<field-map field-name="partyId" from-field="partyId"/>
<field-map field-name="roleTypeIdFrom" value="ACCOUNT"/>
<field-map field-name="roleTypeIdTo" value="CONTACT"/>
</entity-and>
<set field="companyNameId" from-field="company[0].partyIdFrom"/>
<entity-one entity-name="Person" value-field="person">
<field-map field-name="partyId" from-field="partyId"></field-map>
</entity-one>
<entity-one entity-name="StatusItem" value-field="statusItem">
<field-map field-name="statusId" from-field="statusId"/>
</entity-one>
<set field="statusName" from-field="statusItem.description"/>
</row-actions>
<field name="partyId"><hidden/></field>
<field name="productId"><hidden/></field>
<field name="name"><hidden/></field>
<field name="statusName" title="${uiLabelMap.CommonStatus}" ><display></display></field>
<field name="companyNameId" title="${uiLabelMap.ScrumOwnerCompany}">
<display-entity entity-name="PartyGroup" key-field-name="partyId" description="${groupName}">
<sub-hyperlink target="FindResource" description="[${companyNameId}]">
<parameter param-name="partyId" from-field="companyNameId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="person.partyId" title="${uiLabelMap.ScrumProductOwner}">
<display-entity entity-name="Person" key-field-name="partyId" description="${firstName}">
<sub-hyperlink target="FindResource" description="[${person.partyId}]">
<parameter param-name="partyId" from-field="person.partyId"/>
<parameter param-name="roleTypeId" value="PRODUCT_OWNER"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="longDescription" title="${uiLabelMap.CommonDescription}"><display></display></field>
<field name="productId" title="${uiLabelMap.ScrumProduct}">
<display-entity entity-name="Product" key-field-name="productId" description="${internalName}">
<sub-hyperlink target="ViewProduct" description="[${productId}]">
<parameter param-name="productId"/>
</sub-hyperlink>
</display-entity>
</field>
<sort-order>
<sort-field name="productId"></sort-field>
<sort-field name="longDescription"></sort-field>
<sort-field name="companyNameId"></sort-field>
<sort-field name="person.partyId"></sort-field>
<sort-field name="statusId"></sort-field>
</sort-order>
</form>
<form name="FindProduct" type="single" target="EditProduct">
<field name="productId"><text></text></field>
<field name="internalName" title="${uiLabelMap.ScrumProductName}"><text/></field>
<field name="statusId" parameter-name="statusId">
<drop-down allow-empty="false">
<option key="Any" description="${uiLabelMap.CommonAny}"/>
<entity-options entity-name="StatusItem">
<entity-constraint name="statusTypeId" operator="equals" value="PRODUCT_STATUS"/>
</entity-options>
</drop-down>
</field>
<field name="partyId"><hidden value="${userLogin.partyId}"/></field>
<field name="roleTypeId"><hidden value="PRODUCT_OWNER"/></field>
<field name="searchButton" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
<field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done -->
</field>
</form>
<form name="ListProductByProdOwner" extends="ListProductByAdmin" type="multi" default-entity-name="ProductRole">
<actions>
<set field="parameters.partyId" from-field="userLogin.partyId"></set>
<set field="parameters.roleTypeId" value="PRODUCT_OWNER"></set>
<service service-name="performFind" result-map="result" result-map-list="listIt">
<field-map field-name="inputFields" from-field="parameters"/>
<field-map field-name="entityName" value="ProductAndRole"/>
<field-map field-name="viewIndex" from-field="viewIndex"/>
<field-map field-name="viewSize" from-field="viewSize"/>
</service>
</actions>
<row-actions>
<entity-one entity-name="Product" value-field="product">
<field-map field-name="productId" from-field="productId"/>
</entity-one>
<set field="internalName" from-field="product.internalName"/>
<set field="longDescription" from-field="product.longDescription"/>
<set field="statusId" value="${groovy: if(product.supportDiscontinuationDate == null) return 'PRODUCT_ACTIVE' else return 'PRODUCT_CLOSED'}"/>
<entity-and entity-name="PartyRelationshipAndPartyDetail" list="company">
<field-map field-name="partyId" from-field="partyId"/>
<field-map field-name="roleTypeIdFrom" value="ACCOUNT"/>
<field-map field-name="roleTypeIdTo" value="CONTACT"/>
</entity-and>
<set field="companyNameId" from-field="company[0].partyIdFrom"/>
<entity-one entity-name="PartyGroup" value-field="partyGroup">
<field-map field-name="partyId" from-field="companyNameId"/>
</entity-one>
<set field="groupNameCompany" from-field="partyGroup.groupName"/>
<entity-one entity-name="Person" value-field="person">
<field-map field-name="partyId" from-field="partyId"></field-map>
</entity-one>
<set field="firstName" from-field="person.firstName"></set>
<entity-one entity-name="StatusItem" value-field="statusItem">
<field-map field-name="statusId" from-field="statusId"/>
</entity-one>
<set field="statusName" from-field="statusItem.description"/>
</row-actions>
</form>
<form name="FindProductByProdOwner" type="single" extends="FindProduct" target="main" default-entity-name="Product">
<actions>
<set field="userLogin" value="${userLogin.userLoginId}"/>
<entity-one entity-name="UserLogin" value-field="userLoginMap">
<field-map field-name="userLoginId" from-field="userLogin"/>
</entity-one>
<entity-condition entity-name="ScrumMemberUserLoginAndSecurityGroup" list="userLoginAndSecurityGroup">
<condition-list combine="and">
<condition-expr field-name="partyId" from-field="userLoginMap.partyId"/>
<condition-expr field-name="partyStatusId" operator="not-equals" value="PARTY_DISABLED"/>
<condition-list combine="or">
<condition-expr field-name="groupId" value="SCRUM_PRODUCT_OWNER"/>
<condition-expr field-name="groupId" value="SCRUM_STAKEHOLDER"/>
</condition-list>
</condition-list>
</entity-condition>
<set field="isCond" from-field="userLoginAndSecurityGroup[0].partyId"/>
</actions>
<field name="partyId" title="${uiLabelMap.ScrumOwnerCompany}" use-when="isCond==null">
<drop-down allow-empty="true">
<list-options key-name="partyIdFrom" list-name="scrumRolesPersonAndCompanyList" description="${groupName}[${partyIdFrom}] -- ${lastName} ${firstName} ${middleName}"/>
</drop-down>
</field>
<sort-order>
<sort-field name="partyId"/>
<sort-field name="productId"/>
<sort-field name="internalName"/>
<sort-field name="statusId"/>
<sort-field name="searchButton"/>
</sort-order>
</form>
<form name="HoursNotYetBilled" type="multi" list-name="hoursNotYetBilledTasks" use-row-submit="false" paginate-target="ProductBilling" odd-row-style="alternate-row" default-table-style="basic-table hover-bar"
target="updateNotBilledBacklog?productId=${productId}&amp;fromDate=${fromDate}&amp;thruDate=${thruDate}&amp;includeMeeting=${includeMeeting}&amp;VIEW_SIZE_1=${parameters.VIEW_SIZE_1}&amp;VIEW_INDEX_1=${parameters.VIEW_INDEX_1}">
<row-actions>
<set field="showPosition1" value="${groovy:String prev=(String)previousItem.get(&quot;custRequestId&quot;);return !(prev!=null&amp;&amp;prev.equals(custRequestId));}" type="Boolean"/>
<entity-one entity-name="WorkEffort" value-field="project">
<field-map field-name="workEffortId" from-field="projectId"/>
</entity-one>
<entity-one entity-name="WorkEffort" value-field="sprint">
<field-map field-name="workEffortId" from-field="sprintId"/>
</entity-one>
<entity-one entity-name="CustRequest" value-field="backlogItem">
<field-map field-name="custRequestId"/>
</entity-one>
<set field="projectName" from-field="project.workEffortName" default-value="No Project Name"/>
<set field="sprintName" from-field="sprint.workEffortName" default-value="No Sprint Name"/>
<set field="backlogItemName" from-field="backlogItem.description" default-value="No Backlog Item Name"/>
<set field="billed" from-field="backlogItem.billed"/>
</row-actions>
<field name="projectId" position="1" use-when="${groovy:showPosition1==true}" title="${uiLabelMap.ScrumProject}">
<hyperlink description="${projectName}" target="viewScrumProject">
<parameter param-name="projectId"/>
</hyperlink>
</field>
<field name="sprintId" position="1" use-when="${groovy:showPosition1==true}" title="${uiLabelMap.ScrumSprint}">
<hyperlink description="${sprintName}" target="ViewSprint">
<parameter param-name="projectId"/>
<parameter param-name="sprintId"/>
</hyperlink>
</field>
<field name="custRequestId" position="1" use-when="${groovy:showPosition1==true}" title="${uiLabelMap.ScrumBacklogItem}">
<display-entity entity-name="CustRequest" description="${backlogItemName}">
<sub-hyperlink target="ViewProdBacklogItem" description="[${custRequestId}]">
<parameter param-name="productId"/>
<parameter param-name="custRequestId"/>
</sub-hyperlink>
</display-entity>
</field>
<field name="backlogId" parameter-name="custRequestId" use-when="${groovy:showPosition1==false}"><hidden value="${custRequestId}"/></field>
<field name="billed" position="1" use-when="${groovy:showPosition1==true}" title="${uiLabelMap.ScrumBilled}">
<drop-down allow-empty="true">
<option key="Y" description="${uiLabelMap.CommonY}"/>
<option key="N" description="${uiLabelMap.CommonN}"/>
</drop-down>
</field>
<field name="dummy1" title=" " position="1" use-when="${groovy:showPosition1==true}"><display description=" "/></field>
<field name="dummy2" title=" " position="1" use-when="${groovy:showPosition1==true}"><display description=" "/></field>
<field name="dummy3" title=" " position="1" use-when="${groovy:showPosition1==true}"><display description=" "/></field>
<field name="taskId" position="2" title="${uiLabelMap.ScrumTab} ${uiLabelMap.ScrumTaskName}">
<display-entity entity-name="WorkEffort" key-field-name="workEffortId" description="${uiLabelMap.ScrumTab} ${workEffortName}"/>
</field>
<field name="hours" position="2"><display/></field>
<field name="timesheetPartyId" position="2"><display-entity entity-name="PartyNameView" description="${firstName} ${middleName} ${lastName}" key-field-name="partyId"/></field>
<field name="dummy4" title=" " position="2" ><display description=" "/></field>
<field name="timesheetId" position="2">
<hyperlink description="${timesheetId}" target="ViewTimeSheet">
<parameter param-name="timesheetId"/>
</hyperlink>
</field>
<field name="rateTypeId" title="${uiLabelMap.ScrumRateTypeId}" position="2"><display-entity entity-name="RateType"/></field>
<field name="fromDate" title="${uiLabelMap.CommonDate}" position="2"><display type="date"/> </field>
<field name="submitButton" title="${uiLabelMap.CommonUpdate}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="TotalHoursNotYetBilled" extends="HoursNotYetBilled" paginate-target="TotalBilling"
target="updateTotalNotBilledBacklog?productId=${productId}&amp;fromDate=${fromDate}&amp;thruDate=${thruDate}&amp;includeMeeting=${includeMeeting}&amp;VIEW_SIZE_1=${parameters.VIEW_SIZE_1}&amp;VIEW_INDEX_1=${parameters.VIEW_INDEX_1}" >
<field name="submitButton" title="${uiLabelMap.CommonUpdate}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="AddProductTimeToNewInvoice" type="single" target="addProductTimeToNewInvoice">
<field name="partyIdFrom" title="${uiLabelMap.WorkEffortTimeBillFromParty}"><display-entity entity-name="PartyNameView" key-field-name="partyId" description="${groupName} [${partyId}]"/></field>
<field name="partyId" title="${uiLabelMap.WorkEffortTimeBillToParty}"><display-entity entity-name="PartyNameView" description="${groupName} ${lastName} ${firstName} [${partyId}]"/></field>
<field name="productId"><hidden/></field>
<field name="fromDate" title="${uiLabelMap.CommonFromDate}" use-when="fromDate!=null"><display type="date"/></field>
<field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field>
<field name="invoiceId"><hidden/></field>
<field name="includeMeeting" title="${uiLabelMap.ScrumIncludeMeeting}">
<drop-down no-current-selected-key="N">
<option key="Y"/>
<option key="N"/>
</drop-down>
</field>
<field name="reCreate" position="1" title="${uiLabelMap.ScrumRecreateInvoice}: ${invoiceId}" use-when="context.get(&quot;invoiceId&quot;)!=null">
<drop-down no-current-selected-key="N">
<option key="Y" description="${uiLabelMap.CommonYes}"/>
<option key="N" description="${uiLabelMap.CommonNo}"/>
</drop-down>
</field>
<field name="invoiceDate" title="${uiLabelMap.ScrumInvoiceDate}" use-when="context.get(&quot;invoiceId&quot;)!=null"><date-time type="date"></date-time></field>
<field name="submitButton" title="${uiLabelMap.PageTitleAddProjectTimeToNewInvoice}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="FindProductBilling" type="single" target="ProductBilling">
<field name="productId"><hidden/></field>
<field name="fromDate" title="${uiLabelMap.CommonFromDate}"><date-time type="date"/></field>
<field name="thruDate" title="${uiLabelMap.CommonThruDate}"><date-time type="date"/></field>
<field name="includeMeeting" title="${uiLabelMap.ScrumIncludeMeeting}">
<drop-down no-current-selected-key="N">
<option key="Y"/>
<option key="N"/>
</drop-down>
</field>
<field name="submitButton" title="${uiLabelMap.CommonFind}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
<form name="FindProductTotalBilling" extends="FindProductBilling" type="single" target="TotalBilling">
<field name="productId" title="${uiLabelMap.ScrumProductName}">
<drop-down>
<entity-options description="${groupName} -- ${internalName}[${productId}]" entity-name="ProductAndRole" key-field-name="productId">
<entity-constraint name="supportDiscontinuationDate" operator="equals" value=""/>
<entity-constraint name="roleTypeId" value="PRODUCT_OWNER_COMP"/>
<entity-order-by field-name="groupName"/>
<entity-order-by field-name="internalName"/>
</entity-options>
</drop-down>
</field>
</form>
<form name="TotalBillingToNewInvoice" type="single" extends="AddProductTimeToNewInvoice" target="totalBillingToNewInvoice">
</form>
<!-- View Form -->
<form name="ViewEditScrumProject" type="single" extends="EditScrumProject">
<field name="submitButton" title="Save" widget-style="smallSubmit" event="onClick" action="javascript:document.ViewEditScrumProject.disable();"><submit/></field>
</form>
<form name="ViewEditProdBacklog" type="single" default-map-name="custRequest">
<actions>
<entity-one entity-name="CustRequest" value-field="custRequest">
<field-map field-name="custRequestId" from-field="custRequestId"/>
</entity-one>
<set field="custRequestName" from-field="custRequest.custRequestName"/>
<set field="statusId" from-field="custRequest.statusId"/>
<set field="openDateTime" from-field="custRequest.openDateTime"/>
<set field="closedDateTime" from-field="custRequest.closedDateTime"/>
<set field="custEstimatedMilliSeconds" from-field="custRequest.custEstimatedMilliSeconds" type="String"></set>