|
Added: ofbiz/trunk/specialpurpose/scrum/webapp/scrum/reports/TaskByTypeChart.rptdesign
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/webapp/scrum/reports/TaskByTypeChart.rptdesign?rev=1142915&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/scrum/webapp/scrum/reports/TaskByTypeChart.rptdesign (added) +++ ofbiz/trunk/specialpurpose/scrum/webapp/scrum/reports/TaskByTypeChart.rptdesign Tue Jul 5 08:15:32 2011 @@ -0,0 +1,1155 @@ +<?xml version="1.0" encoding="UTF-8"?> +<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21" id="1"> + <property name="createdBy">Eclipse BIRT Designer Version 2.6.1.v20100902 Build <2.6.1.v20100915-1750></property> + <property name="units">in</property> + <method name="initialize"><![CDATA[importPackage(Packages.java.math); +importPackage(Packages.java.text); +importPackage(Packages.javolution.util); +importPackage(Packages.org.ofbiz.base.util); +importPackage(Packages.org.ofbiz.entity.condition); +module = "TasksChart.rptdesign"; + +productId = params["productId"].value; +]]></method> + <property name="iconFile">/templates/blank_report.gif</property> + <property name="layoutPreference">auto layout</property> + <property name="bidiLayoutOrientation">ltr</property> + <property name="imageDPI">92</property> + <parameters> + <scalar-parameter name="productId" id="13"> + <property name="valueType">static</property> + <property name="dataType">string</property> + <property name="distinct">true</property> + <property name="paramType">simple</property> + <property name="controlType">text-box</property> + <structure name="format"> + <property name="category">Unformatted</property> + </structure> + </scalar-parameter> + </parameters> + <data-sources> + <script-data-source name="Data Source" id="8"/> + </data-sources> + <data-sets> + <script-data-set name="Data Set" id="14"> + <list-property name="resultSetHints"> + <structure> + <property name="position">1</property> + <property name="name">TaskName</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">TaskValue</property> + <property name="dataType">string</property> + </structure> + </list-property> + <list-property name="columnHints"> + <structure> + <property name="columnName">TaskName</property> + </structure> + <structure> + <property name="columnName">TaskValue</property> + </structure> + </list-property> + <structure name="cachedMetaData"> + <list-property name="resultSet"> + <structure> + <property name="position">1</property> + <property name="name">TaskName</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">TaskValue</property> + <property name="dataType">string</property> + </structure> + </list-property> + </structure> + <property name="dataSource">Data Source</property> + <method name="open"><![CDATA[num = 4; + +unplannedImpleList = null; +plannedImpleSize = 0; +unplannedErrorList = null; +plannedErrorSize = 0; +unplannedInstallList = null; +plannedInstallSize = 0; +unplannedTestList = null; +plannedTestSize = 0; + +errorData = 0; +implementationData = 0; +installationData = 0; +testData = 0; + +try{ + var workEffortErrorList = delegator.findByAnd("WorkEffortAndProduct", UtilMisc.toMap("productId", productId,"workEffortTypeId","SCRUM_PROJECT")); + // for implementation task + var unplannedImpleConds = FastList.newInstance(); + unplannedImpleConds.add(EntityCondition.makeCondition("productId",EntityOperator.EQUALS, productId)); + unplannedImpleConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_UNPLAN_BACKLOG")); + unplannedImpleConds.add(EntityCondition.makeCondition("workEffortTypeId", EntityOperator.EQUALS, "SCRUM_TASK_IMPL")); + var unplannedImpleList = delegator.findList("UnPlannedBacklogsAndTasks", EntityCondition.makeCondition(unplannedImpleConds), null, null, null, false); + if (workEffortErrorList !=null) { + for(j = 0; j < workEffortErrorList.size(); j++){ + var projectId = workEffortErrorList.get(j).getString("workEffortId"); + var plannedImpleConds = FastList.newInstance(); + plannedImpleConds.add(EntityCondition.makeCondition("projectId",EntityOperator.EQUALS, projectId)); + plannedImpleConds.add(EntityCondition.makeCondition("sprintTypeId", EntityOperator.EQUALS, "SCRUM_SPRINT")); + plannedImpleConds.add(EntityCondition.makeCondition("taskTypeId", EntityOperator.EQUALS, "SCRUM_TASK_IMPL")); + plannedImpleConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_PROD_BACKLOG")); + var plannedImpleList = delegator.findList("ProjectSprintBacklogAndTask", EntityCondition.makeCondition(plannedImpleConds), null, null, null, false); + plannedImpleSize += plannedImpleList.size(); + } + } + + if(unplannedImpleList != null && plannedImpleSize != 0 ) { + implementationData = unplannedImpleList.size() + plannedImpleSize; + } else if (unplannedImpleList != null && plannedImpleSize == 0) { + implementationData = unplannedImpleList.size(); + } else if (unplannedImpleList == null && plannedImpleSize != 0) { + implementationData = plannedImpleSize; + } else { + implementationData = 0; + } + + // for error task + var unplannedErrorConds = FastList.newInstance(); + unplannedErrorConds.add(EntityCondition.makeCondition("productId",EntityOperator.EQUALS, productId)); + unplannedErrorConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_UNPLAN_BACKLOG")); + unplannedErrorConds.add(EntityCondition.makeCondition("workEffortTypeId", EntityOperator.EQUALS, "SCRUM_TASK_ERROR")); + var unplannedErrorList = delegator.findList("UnPlannedBacklogsAndTasks", EntityCondition.makeCondition(unplannedErrorConds), null, null, null, false); + if (workEffortErrorList !=null) { + for(i = 0; i < workEffortErrorList.size(); i++){ + var projectId = workEffortErrorList.get(i).getString("workEffortId"); + var plannedErrorConds = FastList.newInstance(); + plannedErrorConds.add(EntityCondition.makeCondition("projectId",EntityOperator.EQUALS, projectId)); + plannedErrorConds.add(EntityCondition.makeCondition("sprintTypeId", EntityOperator.EQUALS, "SCRUM_SPRINT")); + plannedErrorConds.add(EntityCondition.makeCondition("taskTypeId", EntityOperator.EQUALS, "SCRUM_TASK_ERROR")); + plannedErrorConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_PROD_BACKLOG")); + var plannedErrorList = delegator.findList("ProjectSprintBacklogAndTask", EntityCondition.makeCondition(plannedErrorConds), null, null, null, false); + plannedErrorSize += plannedErrorList.size(); + } + } + //Debug.logInfo("-----------unplannedErrorList---------"+unplannedErrorList.size(),module); + //Debug.logInfo("-----------plannedErrorSize---------"+plannedErrorSize,module); + if(unplannedErrorList != null && plannedErrorSize != 0 ) { + errorData = unplannedErrorList.size() + plannedErrorSize; + } else if (unplannedErrorList != null && plannedErrorSize == 0) { + errorData = unplannedErrorList.size(); + } else if (unplannedErrorList == null && plannedErrorSize != 0) { + errorData = plannedErrorSize; + } else { + errorData = 0; + } + + // for installation task + var unplannedInstallConds = FastList.newInstance(); + unplannedInstallConds.add(EntityCondition.makeCondition("productId",EntityOperator.EQUALS, productId)); + unplannedInstallConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_UNPLAN_BACKLOG")); + unplannedInstallConds.add(EntityCondition.makeCondition("workEffortTypeId", EntityOperator.EQUALS, "SCRUM_TASK_INST")); + var unplannedInstallList = delegator.findList("UnPlannedBacklogsAndTasks", EntityCondition.makeCondition(unplannedInstallConds), null, null, null, false); + if (workEffortErrorList !=null) { + for(i = 0; i < workEffortErrorList.size(); i++){ + var projectId = workEffortErrorList.get(i).getString("workEffortId"); + var plannedInstallConds = FastList.newInstance(); + plannedInstallConds.add(EntityCondition.makeCondition("projectId",EntityOperator.EQUALS, projectId)); + plannedInstallConds.add(EntityCondition.makeCondition("sprintTypeId", EntityOperator.EQUALS, "SCRUM_SPRINT")); + plannedInstallConds.add(EntityCondition.makeCondition("taskTypeId", EntityOperator.EQUALS, "SCRUM_TASK_INST")); + plannedInstallConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_PROD_BACKLOG")); + var plannedInstallList = delegator.findList("ProjectSprintBacklogAndTask", EntityCondition.makeCondition(plannedInstallConds), null, null, null, false); + plannedInstallSize += plannedInstallList.size(); + } + } + if(unplannedInstallList != null && plannedInstallSize != 0 ) { + installationData = unplannedInstallList.size() + plannedInstallSize; + } else if (unplannedInstallList != null && plannedInstallSize == 0) { + installationData = unplannedInstallList.size(); + } else if (unplannedInstallList == null && plannedInstallSize != 0) { + installationData = plannedInstallSize; + } else { + installationData = 0; + } + + // for test task + var unplannedTestConds = FastList.newInstance(); + unplannedTestConds.add(EntityCondition.makeCondition("productId",EntityOperator.EQUALS, productId)); + unplannedTestConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_UNPLAN_BACKLOG")); + unplannedTestConds.add(EntityCondition.makeCondition("workEffortTypeId", EntityOperator.EQUALS, "SCRUM_TASK_TEST")); + var unplannedTestList = delegator.findList("UnPlannedBacklogsAndTasks", EntityCondition.makeCondition(unplannedTestConds), null, null, null, false); + if (workEffortErrorList !=null) { + for(j = 0; j < workEffortErrorList.size(); j++){ + var projectId = workEffortErrorList.get(j).getString("workEffortId"); + var plannedTestConds = FastList.newInstance(); + plannedTestConds.add(EntityCondition.makeCondition("projectId",EntityOperator.EQUALS, projectId)); + plannedTestConds.add(EntityCondition.makeCondition("sprintTypeId", EntityOperator.EQUALS, "SCRUM_SPRINT")); + plannedTestConds.add(EntityCondition.makeCondition("taskTypeId", EntityOperator.EQUALS, "SCRUM_TASK_TEST")); + plannedTestConds.add(EntityCondition.makeCondition("custRequestTypeId", EntityOperator.EQUALS, "RF_PROD_BACKLOG")); + var plannedTestList = delegator.findList("ProjectSprintBacklogAndTask", EntityCondition.makeCondition(plannedTestConds), null, null, null, false); + plannedTestSize += plannedTestList.size(); + } + } + if(unplannedTestList != null && plannedTestSize != 0) { + testData = unplannedTestList.size() + plannedTestSize; + } else if (unplannedTestList != null && plannedTestSize == 0) { + testData = unplannedTestList.size(); + } else if (unplannedTestList == null && plannedTestSize != 0) { + testData = plannedTestSize; + } else { + testData = 0; + } + +}catch(e){ + Debug.logError(e, module); +}]]></method> + <method name="fetch"><![CDATA[if(num==0) return false; + if(num==1){ + row["TaskValue"] = implementationData; + row["TaskName"] = "Implementation Task"; + } + if(num==2){ + row["TaskValue"] = errorData; + row["TaskName"] = "Error Task"; + } + if(num==3){ + row["TaskValue"] = installationData; + row["TaskName"] = "Installation Task"; + } + if(num==4){ + row["TaskValue"] = testData; + row["TaskName"] = "Test Task"; + } +num--; +return true;]]></method> + </script-data-set> + </data-sets> + <styles> + <style name="report" id="4"> + <property name="fontFamily">sans-serif</property> + <property name="fontSize">10pt</property> + </style> + <style name="crosstab-cell" id="5"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + <style name="crosstab" id="6"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + </styles> + <page-setup> + <simple-master-page name="Simple MasterPage" id="2"> + <page-footer> + <text id="3"> + <property name="contentType">html</property> + </text> + </page-footer> + </simple-master-page> + </page-setup> + <body> + <extended-item extensionName="Chart" id="10"> + <xml-property name="xmlRepresentation"><![CDATA[<model:ChartWithoutAxes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:attribute="http://www.birt.eclipse.org/ChartModelAttribute" xmlns:layout="http://www.birt.eclipse.org/ChartModelLayout" xmlns:model="http://www.birt.eclipse.org/ChartModel" xmlns:type="http://www.birt.eclipse.org/ChartModelType"> + <Version>2.5.1</Version> + <Type>Pie Chart</Type> + <SubType>Standard</SubType> + <Block> + <Children xsi:type="layout:TitleBlock"> + <Bounds> + <Left>0.0</Left> + <Top>0.0</Top> + <Width>0.0</Width> + <Height>0.0</Height> + </Bounds> + <Anchor>North</Anchor> + <Stretch>Horizontal</Stretch> + <Insets> + <Top>3.0</Top> + <Left>3.0</Left> + <Bottom>3.0</Bottom> + <Right>3.0</Right> + </Insets> + <Row>-1</Row> + <Column>-1</Column> + <Rowspan>-1</Rowspan> + <Columnspan>-1</Columnspan> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Visible>true</Visible> + <Label> + <Caption> + <Value>Task By Type</Value> + <Font> + <Size>16.0</Size> + <Bold>true</Bold> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + </Label> + </Children> + <Children xsi:type="layout:Plot"> + <Bounds> + <Left>0.0</Left> + <Top>0.0</Top> + <Width>0.0</Width> + <Height>0.0</Height> + </Bounds> + <Insets> + <Top>3.0</Top> + <Left>3.0</Left> + <Bottom>3.0</Bottom> + <Right>3.0</Right> + </Insets> + <Row>-1</Row> + <Column>-1</Column> + <Rowspan>-1</Rowspan> + <Columnspan>-1</Columnspan> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Visible>true</Visible> + <HorizontalSpacing>5</HorizontalSpacing> + <VerticalSpacing>5</VerticalSpacing> + <ClientArea> + <Outline> + <Style>Solid</Style> + <Thickness>0</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>0.0</Left> + <Bottom>0.0</Bottom> + <Right>0.0</Right> + </Insets> + </ClientArea> + </Children> + <Children xsi:type="layout:Legend"> + <Bounds> + <Left>0.0</Left> + <Top>0.0</Top> + <Width>0.0</Width> + <Height>0.0</Height> + </Bounds> + <Insets> + <Top>3.0</Top> + <Left>3.0</Left> + <Bottom>3.0</Bottom> + <Right>3.0</Right> + </Insets> + <Row>-1</Row> + <Column>-1</Column> + <Rowspan>-1</Rowspan> + <Columnspan>-1</Columnspan> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Visible>true</Visible> + <ClientArea> + <Outline> + <Style>Solid</Style> + <Thickness>0</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>2.0</Top> + <Left>2.0</Left> + <Bottom>2.0</Bottom> + <Right>2.0</Right> + </Insets> + </ClientArea> + <Text> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Text> + <Orientation>Vertical</Orientation> + <Direction>Top_Bottom</Direction> + <Separator> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>true</Visible> + </Separator> + <Position>Right</Position> + <ItemType>Categories</ItemType> + <Title> + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + </Title> + <TitlePosition>Above</TitlePosition> + </Children> + <Bounds> + <Left>0.0</Left> + <Top>0.0</Top> + <Width>432.0</Width> + <Height>216.0</Height> + </Bounds> + <Insets> + <Top>3.0</Top> + <Left>3.0</Left> + <Bottom>3.0</Bottom> + <Right>3.0</Right> + </Insets> + <Row>-1</Row> + <Column>-1</Column> + <Rowspan>-1</Rowspan> + <Columnspan>-1</Columnspan> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Visible>true</Visible> + </Block> + <Dimension>Two_Dimensional_With_Depth</Dimension> + <Units>Points</Units> + <SeriesThickness>10.0</SeriesThickness> + <GridColumnCount>0</GridColumnCount> + <ExtendedProperties> + <Name>enable.area.alt</Name> + <Value>false</Value> + </ExtendedProperties> + <SampleData> + <BaseSampleData> + <DataSetRepresentation>'A','B','C','D','E'</DataSetRepresentation> + </BaseSampleData> + <OrthogonalSampleData> + <DataSetRepresentation>6,4,12,8,10</DataSetRepresentation> + <SeriesDefinitionIndex>0</SeriesDefinitionIndex> + </OrthogonalSampleData> + </SampleData> + <Interactivity> + <Enable>true</Enable> + <LegendBehavior>None</LegendBehavior> + </Interactivity> + <EmptyMessage> + <Caption> + <Value>This chart contains no data.</Value> + <Font> + <Alignment> + <horizontalAlignment>Center</horizontalAlignment> + <verticalAlignment>Center</verticalAlignment> + </Alignment> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>64</Transparency> + <Red>127</Red> + <Green>127</Green> + <Blue>127</Blue> + </Background> + <Outline> + <Color> + <Transparency>128</Transparency> + <Red>127</Red> + <Green>127</Green> + <Blue>127</Blue> + </Color> + <Visible>true</Visible> + </Outline> + <Insets> + <Top>10.0</Top> + <Left>10.0</Left> + <Bottom>10.0</Bottom> + <Right>10.0</Right> + </Insets> + <Visible>false</Visible> + </EmptyMessage> + <SeriesDefinitions> + <Query> + <Definition></Definition> + </Query> + <SeriesPalette> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>80</Red> + <Green>166</Green> + <Blue>218</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>242</Red> + <Green>88</Green> + <Blue>106</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>232</Red> + <Green>172</Green> + <Blue>57</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>255</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>64</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>170</Red> + <Green>85</Green> + <Blue>85</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>192</Red> + <Green>192</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>192</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>7</Red> + <Green>146</Green> + <Blue>94</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>128</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>255</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>0</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>64</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>80</Red> + <Green>240</Green> + <Blue>120</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>64</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>0</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>0</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>64</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>0</Blue> + </Entries> + </SeriesPalette> + <SeriesDefinitions> + <Query> + <Definition></Definition> + <Grouping> + <GroupType>Text</GroupType> + </Grouping> + </Query> + <SeriesPalette> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>80</Red> + <Green>166</Green> + <Blue>218</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>242</Red> + <Green>88</Green> + <Blue>106</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>232</Red> + <Green>172</Green> + <Blue>57</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>255</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>64</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>170</Red> + <Green>85</Green> + <Blue>85</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>192</Red> + <Green>192</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>192</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>7</Red> + <Green>146</Green> + <Blue>94</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>128</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>255</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>192</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>0</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>64</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>80</Red> + <Green>240</Green> + <Blue>120</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>64</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>0</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>0</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>64</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>128</Red> + <Green>128</Green> + <Blue>128</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>64</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Entries> + <Entries xsi:type="attribute:ColorDefinition"> + <Transparency>255</Transparency> + <Red>255</Red> + <Green>128</Green> + <Blue>0</Blue> + </Entries> + </SeriesPalette> + <Series xsi:type="type:PieSeries"> + <Visible>true</Visible> + <Label> + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + </Label> + <DataDefinition> + <Definition>row["TaskValue"]</Definition> + <Grouping> + <GroupType>Text</GroupType> + <AggregateExpression>Sum</AggregateExpression> + </Grouping> + </DataDefinition> + <SeriesIdentifier></SeriesIdentifier> + <DataPoint> + <Components> + <Type>Orthogonal_Value</Type> + </Components> + <Separator>, </Separator> + </DataPoint> + <LabelPosition>Outside</LabelPosition> + <Stacked>false</Stacked> + <Explosion>0</Explosion> + <ExplosionExpression>categoryData</ExplosionExpression> + <Title> + <Caption> + <Value></Value> + <Font> + <Size>16.0</Size> + <Bold>true</Bold> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>true</Visible> + </Title> + <TitlePosition>Below</TitlePosition> + <LeaderLineAttributes> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Visible>true</Visible> + </LeaderLineAttributes> + <LeaderLineStyle>Fixed_Length</LeaderLineStyle> + <LeaderLineLength>10.0</LeaderLineLength> + </Series> + <Grouping> + <GroupType>Text</GroupType> + <AggregateExpression>Sum</AggregateExpression> + </Grouping> + </SeriesDefinitions> + <Series> + <Visible>true</Visible> + <Label> + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + </Label> + <DataDefinition> + <Definition>row["TaskName"]</Definition> + </DataDefinition> + <SeriesIdentifier></SeriesIdentifier> + <DataPoint> + <Components> + <Type>Orthogonal_Value</Type> + </Components> + <Separator>, </Separator> + </DataPoint> + <LabelPosition>Outside</LabelPosition> + <Stacked>false</Stacked> + </Series> + <Grouping> + <Enabled>true</Enabled> + <GroupType>Text</GroupType> + <AggregateExpression>Sum</AggregateExpression> + </Grouping> + </SeriesDefinitions> +</model:ChartWithoutAxes> +]]></xml-property> + <property name="outputFormat">SVG</property> + <property name="inheritColumns">false</property> + <structure name="toc"/> + <property name="dataSet">Data Set</property> + <property name="height">3in</property> + <property name="width">6in</property> + <list-property name="boundDataColumns"> + <structure> + <property name="name">TaskName</property> + <expression name="expression" type="javascript">dataSetRow["TaskName"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">TaskValue</property> + <expression name="expression" type="javascript">dataSetRow["TaskValue"]</expression> + <property name="dataType">string</property> + </structure> + </list-property> + </extended-item> + </body> +</report> Added: ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml?rev=1142915&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml (added) +++ ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml Tue Jul 5 08:15:32 2011 @@ -0,0 +1,544 @@ +<?xml version="1.0" encoding="UTF-8"?> +<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd"> + + <screen name="main-decorator"> + <section> + <actions> + <property-map resource="scrumUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="WorkEffortUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="ContentUiLabels" map-name="uiLabelMap" global="true"/> + <set field="layoutSettings.companyName" from-field="uiLabelMap.ScrumCompanyName" global="true"/> + <set field="layoutSettings.companySubtitle" from-field="uiLabelMap.ScrumCompanySubtitle" global="true"/> + + <set field="activeApp" value="scrum" global="true"/> + <set field="applicationMenuName" value="ScrumAppBar" global="true"/> + <set field="applicationMenuLocation" value="component://scrum/widget/scrumMenus.xml" global="true"/> + <set field="applicationTitle" value="${uiLabelMap.ScrumApplication}" global="true"/> + </actions> + <widgets> + <include-screen name="ApplicationDecorator" location="component://commonext/widget/CommonScreens.xml"/> + </widgets> + </section> + </screen> + <screen name="scrumCommonDecorator"> + <section> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonProjectDecorator"> + <section> + <actions> + <set field="headerItem" value="Sprints"/> + <set field="workEffortId" from-field="parameters.projectId"/> + <entity-one entity-name="WorkEffort" value-field="project"/> + </actions> + <widgets> + <decorator-screen name="main-decorator"> + <decorator-section name="body"> + <section> + <condition> + <and> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + <not><if-empty field="project"/></not> + </and> + </condition> + <widgets> + <include-menu name="ProjectMenu" location="component://scrum/widget/scrumMenus.xml"/> + <container style="clear"/> + <label style="h1" text="${uiLabelMap.ScrumProjectCurrent}: ${project.workEffortName}[${project.workEffortId}]"/> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">You do not have permission to view this page. ("SCRUM_VIEW" or "SCRUM_ADMIN" needed)</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonTaskDecorator"> + <section> + <actions> + <set field="headerItem" value="Tasks"/> + <set field="workEffortId" from-field="parameters.taskId"/> + <entity-one entity-name="WorkEffort" value-field="task"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <section> + <condition> + <not><if-empty field="task"/></not> + </condition> + <widgets> + <include-menu name="TaskTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TASK"/> + </condition> + <widgets> + <include-menu name="TaskSubTabBar" location="component://scrum/widget/scrumMenus.xml"/> + </widgets> + </section> + <container style="clear"/> + <label style="h1" text="${uiLabelMap.ScrumTaskCurrent}: ${task.workEffortName}[${task.workEffortId}]"/> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonScrumProductDecorator"> + <section> + <actions> + <set field="headerItem" value="products"/> + <entity-one entity-name="Product" value-field="product"> + <field-map field-name="productId" from-field="parameters.productId"/> + </entity-one> + <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> + <set field="productOwnerId" from-field="productRoles[0].partyId"/> + <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_COMP"/> + </entity-and> + <set field="companyId" from-field="productRoles[0].partyId"/> + <entity-condition entity-name="UnPlannedBacklogsAndTasks" list="unPlannedBacklogList"> + <condition-list combine="and"> + <condition-expr field-name="productId" from-field="parameters.productId"/> + <condition-expr field-name="custRequestTypeId" value="RF_UNPLAN_BACKLOG"/> + <condition-list combine="or"> + <condition-expr field-name="statusId" operator="equals" value="CRQ_REVIEWED"/> + <condition-expr field-name="statusId" operator="equals" value="CRQ_REOPENED"/> + </condition-list> + </condition-list> + <order-by field-name="sequenceNum"/> + <order-by field-name="custRequestId"/> + <order-by field-name="workEffortTypeId"/> + </entity-condition> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <include-menu name="ProductTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <section> + <condition> + <and> + <not><if-empty field="product"/></not> + <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="BACKLOG"/> + </and> + </condition> + <widgets> + <include-menu name="ProductSubTabBar" location="component://scrum/widget/scrumMenus.xml" /> + <label style="h1" text="Product: ${product.internalName}[${product.productId}]"/> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">No access! need either SCUM_ADMIN/_VIEW or SCUM_PRODUCT_ADMIN/VIEW</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonScrumProductBacklogItemDecorator"> + <section> + <actions> + <set field="headerItem" value="main"/> + <entity-one entity-name="Product" value-field="product"> + <field-map field-name="productId" from-field="parameters.productId"/> + </entity-one> + <entity-one entity-name="CustRequest" value-field="custRequestMap"> + <field-map field-name="custRequestId" from-field="parameters.custRequestId"/> + </entity-one> + <script location="component://scrum/webapp/scrum/WEB-INF/actions/SprintBacklogOptions.groovy"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <or> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="PRODUCT"/> + </or> + </condition> + <widgets> + <include-menu name="ProductBackLogItemTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <include-menu name="ProductBackLogItemStatusTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <section> + <condition> + <and> + <and> + <if-empty field="product"/> + <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="PROJECT"/> + </and> + </and> + </condition> + <widgets> + <include-menu name="ProductSubTabBar" location="component://scrum/widget/scrumMenus.xml"/> + </widgets> + </section> + <section> + <condition> + <not><if-empty field="product"/></not> + </condition> + <widgets> + <section> + <condition> + <if-compare operator="equals" value="defaultTasks" field="tabButtonItem"/> + </condition> + <widgets> + <container style="button-bar"> + <link text="Create A Default Task" target="editDefaultTask" style="buttontext create"> + <parameter param-name="productId" from-field="product.productId"/> + </link> + </container> + </widgets> + </section> + <label style="h1" text="Product Backlog Item: ${custRequestMap.description}[${custRequestMap.custRequestId}]"/> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">No access! need either SCUM_ADMIN/_VIEW or SCUM_PRODUCT_ADMIN/VIEW</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonScrumBacklogItemCommDecorator"> + <section> + <actions> + <set field="headerItem" value="main"/> + <entity-one entity-name="Product" value-field="product"> + <field-map field-name="productId" from-field="parameters.productId"/> + </entity-one> + <entity-one entity-name="CustRequest" value-field="custRequestMap"> + <field-map field-name="custRequestId" from-field="parameters.custRequestId"/> + </entity-one> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <or> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="PRODUCT"/> + </or> + </condition> + <widgets> + <include-menu name="ProductBackLogItemTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <include-menu name="ProductBacklogEmailTabBar" location="component://scrum/widget/scrumMenus.xml"/> + <section> + <condition> + <and> + <and> + <if-empty field="product"/> + <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="PROJECT"/> + </and> + </and> + </condition> + <widgets> + <include-menu name="ProductSubTabBar" location="component://scrum/widget/scrumMenus.xml"/> + </widgets> + </section> + <section> + <condition> + <not><if-empty field="product"/></not> + </condition> + <widgets> + <section> + <condition> + <if-compare operator="equals" value="defaultTasks" field="tabButtonItem"/> + </condition> + <widgets> + <container style="button-bar"> + <link text="Create A Default Task" target="editDefaultTask" style="buttontext create"> + <parameter param-name="productId" from-field="product.productId"/> + </link> + </container> + </widgets> + </section> + <label style="h1" text="Product Backlog Item: ${custRequestMap.description}[${custRequestMap.custRequestId}]"/> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">No access! need either SCUM_ADMIN/_VIEW or SCUM_PRODUCT_ADMIN/VIEW</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonPartyDecorator"> + <section> + <actions> + <set field="headerItem" value="ProjectMember"/> + <set field="partyId" from-field="parameters.partyId"/> + <entity-one entity-name="Party" value-field="party"/> + <entity-one entity-name="Person" value-field="lookupPerson"/> + <entity-one entity-name="PartyGroup" value-field="lookupGroup"/> + <set field="communicationEventId" from-field="parameters.communicationEventId"/> + <entity-one entity-name="CommunicationEvent" value-field="communicationEvent"/> + <set field="okayToUpdate" value="true" type="Boolean" global="true"/> + </actions> + <widgets> + <section> + <condition> + <and> + <not><if-empty field="communicationEvent.statusId"/></not> + <or> + <if-compare field="communicationEvent.statusId" operator="equals" type="String" value="COM_COMPLETE"/> + <if-compare field="communicationEvent.statusId" operator="equals" type="String" value="COM_RESOLVED"/> + <if-compare field="communicationEvent.statusId" operator="equals" type="String" value="COM_REFERRED"/> + </or> + </and> + </condition> + <actions> + <set field="okayToUpdate" value="false" type="Boolean" global="true"/> + </actions> + <widgets/> + </section> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <!-- do check for PROJECTMGR, _VIEW permission --> + <condition> + <or> + <if-has-permission permission="PARTYMGR" action="_ADMIN"/> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </or> + </condition> + <widgets> + <section> + <condition><not><if-empty field="partyId"/></not></condition> + <widgets> + <include-menu location="component://scrum/widget/scrumMenus.xml" name="ResourceTabBar"/> + <container> + <section> + <widgets> + <label style="h1" text="${uiLabelMap.PartyTheProfileOf} ${lookupPerson.personalTitle} ${lookupPerson.firstName} ${lookupPerson.middleName} ${lookupPerson.lastName} ${lookupPerson.suffix} ${lookupGroup.groupName}"/> + </widgets> + <fail-widgets> + <label style="h1" text="${uiLabelMap.PartyNewUser}"/> + </fail-widgets> + </section> + + <label style="h1" text="[${partyId}]"/> + </container> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.PartyMgrViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonProjectScreenDecorator"> + <section> + <actions> + <set field="headerItem" value="Sprints"/> + <set field="workEffortId" from-field="parameters.projectId"/> + <entity-one entity-name="WorkEffort" value-field="workEffort"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <section> + <condition> + <not><if-empty field="workEffort"/></not> + </condition> + <widgets> + <include-menu name="ProjectMenu" location="component://scrum/widget/scrumMenus.xml"/> + <section> + <widgets> + <include-menu name="ProjectSubTabBar" location="component://scrum/widget/scrumMenus.xml"/> + </widgets> + </section> + <container style="clear"/> + <label style="h1" text="${uiLabelMap.ScrumProjectCurrent}: ${workEffort.workEffortName}[${workEffort.workEffortId}]"/> + </widgets> + </section> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonMyWorkScreenDecorator"> + <section> + <actions> + <set field="headerItem" value="MyWork"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonOpenTestScreenDecorator"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TEST"/> + </condition> + <actions> + <set field="headerItem" value="openTest"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="SCRUM"/> + </condition> + <widgets> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + <fail-widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <label style="h3">You do not have permission to view this screen.</label> + </decorator-section> + </decorator-screen> + </fail-widgets> + </section> + </screen> + <screen name="CommonSprintScreenDecorator"> + <section> + <actions> + <set field="headerItem" value="Sprints"/> + <entity-one value-field="sprint" entity-name="WorkEffort"> + <field-map field-name="workEffortId" from-field="parameters.sprintId"/> + </entity-one> + <set field="parameters.projectId" from-field="sprint.workEffortParentId"/> + <entity-and list="sprintList" entity-name="WorkEffort"> + <field-map field-name="workEffortParentId" from-field="parameters.projectId"/> + <order-by field-name="createdDate"/> + </entity-and> + <set field="primeSprintId" from-field="sprintList[0].workEffortId"/> + <set field="size" value="${groovy:sprintList.size();}"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <include-menu name="SprintMenu" location="component://scrum/widget/scrumMenus.xml"/> + <include-menu name="SprintSubMenu" location="component://scrum/widget/scrumMenus.xml"/> + <label text="Current Sprint: ${sprint.workEffortName} [${sprint.workEffortId}]" style="h1"/> + <decorator-section-include name="body"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonAdminDecorator"> + <section> + <actions> + <set field="headerItem" value="admin"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <if-service-permission service-name="scrumPermissionCheck" main-action="CREATE" resource-description="MEMBER"/> + </condition> + <widgets> + <include-menu name="ScrumAdminSubMenu" location="component://scrum/widget/scrumMenus.xml"/> + </widgets> + <fail-widgets> + <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label> + </fail-widgets> + </section> + <decorator-section-include name="body"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> +</screens> Propchange: ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml |
| Free forum by Nabble | Edit this page |
