You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2011/07/05 10:15:37 UTC
svn commit: r1142915 [24/28] - in /ofbiz/trunk/specialpurpose: ./ scrum/
scrum/config/ scrum/data/ scrum/data/helpdata/ scrum/data/hookscripts/
scrum/documents/ scrum/dtd/ scrum/entitydef/ scrum/lib/ scrum/patches/
scrum/script/ scrum/script/org/ scrum...
Added: ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml?rev=1142915&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml (added)
+++ ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml Tue Jul 5 08:15:32 2011
@@ -0,0 +1,499 @@
+<?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.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+ <screen name="FindTask">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleFindTask"/>
+ <set field="headerItem" value="task"/>
+ <set field="tabButtonItem" value="find"/>
+ <set field="labelTitleProperty" value="ScrumTasksList"/>
+ <set field="viewIndex_1" from-field="parameters.TasksListError_index_1" type="Integer"/>
+ <set field="viewIndex_2" from-field="parameters.TasksListInstall_index_2" type="Integer"/>
+ <set field="viewIndex_3" from-field="parameters.TasksListTest_index_3" type="Integer"/>
+ <set field="viewIndex_4" from-field="parameters.TasksListCoding_index_4" type="Integer"/>
+ <set field="viewIndexNo_1" from-field="parameters.TasksListErrorNoAction_index_1" type="Integer"/>
+ <set field="viewIndexNo_2" from-field="parameters.TasksListInstallNoAction_index_2" type="Integer"/>
+ <set field="viewIndexNo_3" from-field="parameters.TasksListTestNoAction_index_3" type="Integer"/>
+ <set field="viewIndexNo_4" from-field="parameters.TasksListCodingNoAction_index_4" type="Integer"/>
+ <script location="component://scrum/webapp/scrum/WEB-INF/actions/FindTaskList.groovy"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="scrumCommonDecorator" 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>
+ <if-has-permission permission="SCRUM_ADMIN"/>
+ </condition>
+ <widgets>
+ <container style="button-bar">
+ <link target="EditTask" text="${uiLabelMap.ScrumNewTask}" style="buttontext create"/>
+ </container>
+ </widgets>
+ </section>
+ <screenlet name="FindTask" title="${uiLabelMap.PageTitleFindTask}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="FindTask"/>
+ </screenlet>
+ <section>
+ <condition>
+ <if-has-permission permission="SCRUM_ADMIN"/>
+ </condition>
+ <widgets>
+ <screenlet name="TasksListError" title="${uiLabelMap.ScrumErrorTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListError"/>
+ </screenlet>
+ <screenlet name="TasksListInstall" title="${uiLabelMap.ScrumInstallationTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListInstall"/>
+ </screenlet>
+ <screenlet name="TasksListTest" title="${uiLabelMap.ScrumTestTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListTest"/>
+ </screenlet>
+ <screenlet name="TasksListCoding" title="${uiLabelMap.ScrumCodingTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListCoding"/>
+ </screenlet>
+ </widgets>
+ <fail-widgets>
+ <screenlet name="TasksListError" title="${uiLabelMap.ScrumErrorTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListErrorNoAction"/>
+ </screenlet>
+ <screenlet name="TasksListInstall" title="${uiLabelMap.ScrumInstallationTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListInstallNoAction"/>
+ </screenlet>
+ <screenlet name="TasksListTest" title="${uiLabelMap.ScrumTestTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListTestNoAction"/>
+ </screenlet>
+ <screenlet name="TasksListCoding" title="${uiLabelMap.ScrumCodingTasksList}" collapsible="true" initially-collapsed="false">
+ <include-form location="component://scrum/widget/TaskForms.xml" name="TasksListCodingNoAction"/>
+ </screenlet>
+ </fail-widgets>
+ </section>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="EditTask">
+ <section>
+ <actions>
+ <set field="headerItem" value="task"/>
+ <set field="titleProperty" value="PageTitleEditTask"/>
+ <set field="tabButtonItem" value="edittask"/>
+ <set field="labelTitleProperty" value="PageTitleEditTaskList"/>
+ <set field="workEffortId" from-field="parameters.taskId"/>
+ <entity-one entity-name="WorkEffort" value-field="task"/>
+ <entity-and list="custRequestWorkEffort" entity-name="CustRequestWorkEffort">
+ <field-map field-name="workEffortId" from-field="workEffortId"/>
+ </entity-and>
+ <set field="parameters.custRequestId" from-field="custRequestWorkEffort[0].custRequestId"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <widgets>
+ <screenlet title="${uiLabelMap.PageTitleEditTask} #${task.workEffortId} ${uiLabelMap.CommonInformation}">
+ <include-form name="EditTask" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="RevisionList">
+ <section>
+ <actions>
+ <set field="title" value="${uiLabelMap.ScrumRevisions}"/>
+ <set field="parameters.custRequestId" from-field="custRequestWorkEffort[0].custRequestId"/>
+ <set field="parameters.noConditionFind" value="Y"/>
+ <entity-and list="listIt" entity-name="WorkEffortAndContentDataResource">
+ <field-map field-name="workEffortContentTypeId" value="TASK_SUB_INFO"/>
+ <field-map field-name="workEffortId" from-field="parameters.taskId"/>
+ <order-by field-name="fromDate"/>
+ </entity-and>
+ </actions>
+ <widgets>
+ <screenlet title="${title}">
+ <include-form name="ListTaskRevisions" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="FindTaskRevision">
+ <section>
+ <actions>
+ <set field="headerItem" value="revision"/>
+ <set field="titleProperty" value="ScrumRevision"/>
+ <set field="viewIndex" from-field="parameters.VIEW_INDEX_1" type="Integer"/>
+ <script location="component://scrum/webapp/scrum/WEB-INF/actions/ListRevision.groovy"/>
+ </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="TASK"/>
+ </condition>
+ <widgets>
+ <screenlet title="${uiLabelMap.PageTitleFindRevision}">
+ <include-form name="FindTaskRevision" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ <screenlet title="${uiLabelMap.ScrumRevisionList}">
+ <include-form name="TaskRevisionTotals" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ <fail-widgets>
+ <label style="h3">${uiLabelMap.ScrumViewPermissionError}</label>
+ </fail-widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="RevisionInfo">
+ <section>
+ <actions>
+ <service service-name="viewScrumRevision" result-map="result">
+ <field-map field-name="revision" from-field="parameters.revision"/>
+ <field-map field-name="repository" from-field="parameters.repository"/>
+ </service>
+ </actions>
+ <widgets>
+ <platform-specific>
+ <html>
+ <html-template location="component://scrum/webapp/scrum/includes/revision.ftl"/>
+ </html>
+ </platform-specific>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="EditTimeEntries">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleListTimeEntries"/>
+ <set field="tabButtonItem" value="timeEntries"/>
+ <set field="labelTitleProperty" value="PageTitleEditSkill"/>
+ <set field="workEffortId" from-field="parameters.workEffortId"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <include-form name="ListTimeEntries" location="component://scrum/widget/TaskForms.xml"/>
+ <screenlet title="${uiLabelMap.ScrumAddTimeEntry}">
+ <include-form name="createTimeEntry" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="EditTaskPartyAssigns">
+ <section>
+ <actions>
+ <set field="headerItem" value="task"/>
+ <set field="titleProperty" value="PageTitleListWorkEffortPartyAssigns"/>
+ <set field="tabButtonItem" value="Members"/>
+ <set field="labelTitleProperty" value="PageTitleListWorkEffortPartyAssigns"/>
+ <set field="workEffortId" from-field="parameters.taskId"/>
+ <set field="nowDate" value="${bsh:org.ofbiz.base.util.UtilDateTime.nowDateString("yyyy-MM-dd HH:mm:ss.S")}" type="String"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <screenlet name="AddTaskPartyAssign" title="${uiLabelMap.ScrumAddTaskMember}">
+ <include-form name="AddTaskPartyAssign" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ <screenlet title="${uiLabelMap.ScrumTaskMemberList}">
+ <include-form name="ListTaskParties" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="EditTaskNotes">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleListTaskNotes"/>
+ <set field="headerItem" value="task"/>
+ <set field="tabButtonItem" value="notes"/>
+ <set field="labelTitleProperty" value="PageTitleListTaskNotes"/>
+
+ <set field="workEffortId" from-field="parameters.workEffortId"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <include-form name="ListTaskNotes" location="component://scrum/widget/TaskForms.xml"/>
+ <screenlet id="AddTaskNotesPanel" title="${uiLabelMap.PageTitleAddTaskNotes}" collapsible="true">
+ <include-form name="AddTaskNote" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="SprintTaskView">
+ <section>
+ <actions>
+ <set field="tabButtonItem" value="SprintTask"/>
+ <set field="workEffortId" from-field="parameters.taskId" />
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonSprintScreenDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <actions>
+ <entity-one value-field="task" entity-name="WorkEffort"/>
+ <entity-and list="custRequestWorkEffort" entity-name="CustRequestWorkEffort">
+ <field-map field-name="workEffortId" from-field="workEffortId"/>
+ </entity-and>
+ <set field="parameters.custRequestId" from-field="custRequestWorkEffort[0].custRequestId" type="String"/>
+ <entity-and entity-name="WorkEffortPartyAssignment" list="assignTo">
+ <field-map field-name="workEffortId" from-field="parameters.taskId"/>
+ </entity-and>
+ <set field="partyId" from-field="assignTo[0].partyId"/>
+ <entity-one value-field="person" entity-name="Person"/>
+ <entity-condition list="SprintTasks" entity-name="ProjectSprintBacklogAndTask">
+ <condition-list combine="and">
+ <condition-expr field-name="projectId" from-field="parameters.projectId"/>
+ <condition-expr field-name="sprintId" from-field="parameters.sprintId"/>
+ <condition-expr field-name="sprintTypeId" value="SCRUM_SPRINT"/>
+ <condition-list combine="or">
+ <condition-expr field-name="taskTypeId" value="SCRUM_TASK_IMPL"/>
+ <condition-expr field-name="taskTypeId" value="SCRUM_TASK_INST"/>
+ <condition-expr field-name="taskTypeId" value="SCRUM_TASK_TEST"/>
+ <condition-expr field-name="taskTypeId" value="SCRUM_TASK_ERROR"/>
+ </condition-list>
+ </condition-list>
+ </entity-condition>
+ <set field="sprintId" from-field="SprintTasks[3].sprintId"/>
+ <entity-and list="sprintMembers" entity-name="WorkEffortPartyAssignment">
+ <field-map field-name="workEffortId" from-field="parameters.sprintId"/>
+ </entity-and>
+ </actions>
+ <widgets>
+ <screenlet title="${uiLabelMap.PageTitleTaskInformation}">
+ <include-form name="TaskInfo" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="TaskView">
+ <section>
+ <actions>
+ <set field="titleProperty" value="ScrumTaskSummary"/>
+ <set field="tabButtonItem" value="taskView"/>
+ <set field="workEffortId" from-field="parameters.taskId"/>
+ <entity-and list="custRequestWorkEffort" entity-name="CustRequestWorkEffort">
+ <field-map field-name="workEffortId" from-field="workEffortId"/>
+ </entity-and>
+ <set field="custRequestId" from-field="custRequestWorkEffort[0].custRequestId"/>
+ <entity-and list="notes" entity-name="CustRequestNoteView">
+ <field-map field-name="custRequestId" from-field="custRequestId"/>
+ </entity-and>
+ <set field="sprintId" from-field="parameters.sprintId"/>
+ <entity-one value-field="sprint" entity-name="WorkEffort">
+ <field-map field-name="workEffortId" from-field="sprintId"/>
+ </entity-one>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <container style="lefthalf">
+ <include-screen name="ViewTask"/>
+ <include-screen name="RevisionList"/>
+ </container>
+ <container style="righthalf">
+ <screenlet title="${uiLabelMap.ScrumTaskAttachements}">
+ <include-form location="component://scrum/widget/OpenTestForms.xml" name="contentTask"/>
+ </screenlet>
+ <include-screen name="TaskNoteInfo"/>
+ <screenlet title="${uiLabelMap.PageTitleTaskMember}">
+ <include-screen name="taskMembersList"/>
+ </screenlet>
+ </container>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="TaskNote">
+ <section>
+ <actions>
+ <set field="titleProperty" value="CommonNotes"/>
+ <set field="tabButtonItem" value="taskNote"/>
+ <set field="workEffortId" from-field="parameters.taskId"/>
+ <set field="taskId" from-field="parameters.taskId"/>
+ <entity-and list="workNoteList" entity-name="WorkEffortNote">
+ <field-map field-name="workEffortId" from-field="workEffortId"/>
+ <order-by field-name="-noteId"/>
+ </entity-and>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <screenlet id="AddTaskNote" title="${uiLabelMap.PageTitleNewTaskNote}" collapsible="true">
+ <include-form name="AddTaskNote" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ <screenlet id="ListTaskNote" title="${uiLabelMap.PageTitleTaskNoteList}" collapsible="true">
+ <include-form name="ListTaskNote" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="TaskNoteInfo">
+ <section>
+ <actions>
+ <set field="workEffortId" from-field="parameters.taskId"/>
+ <set field="taskId" from-field="parameters.taskId"/>
+ <entity-condition list="workNoteList" entity-name="WorkEffortNote" >
+ <condition-expr field-name="workEffortId" from-field="workEffortId"/>
+ <order-by field-name="-noteId"/>
+ <limit-range start="0" size="5"/>
+ </entity-condition>
+ </actions>
+ <widgets>
+ <screenlet id="ListTaskNoteInfo" title="${uiLabelMap.PageTitleTaskNoteList}">
+ <include-form name="ListTaskNoteInfo" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="taskMembersList">
+ <section>
+ <condition>
+ <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TASK"/>
+ </condition>
+ <widgets>
+ <include-form location="component://scrum/widget/TaskForms.xml" name="taskMemberListInfo"/>
+ </widgets>
+ <fail-widgets>
+ <include-form location="component://scrum/widget/TaskForms.xml" name="taskMemberListInfoForStakeholder"/>
+ </fail-widgets>
+ </section>
+ </screen>
+ <screen name="ViewTask">
+ <section>
+ <actions>
+ <entity-one value-field="task" entity-name="WorkEffort"/>
+ </actions>
+ <widgets>
+ <include-screen name="taskInfo"/>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="InfoTestTaskNote">
+ <section>
+ <actions>
+ <entity-one value-field="task" entity-name="WorkEffort"/>
+ <set field="taskId" from-field="task.workEffortId"/>
+ </actions>
+ <widgets>
+ <screenlet title="${uiLabelMap.PageTitleTaskInformation}">
+ <include-form name="InfoTestTaskNote" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="taskInfo">
+ <section>
+ <condition>
+ <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TASK"/>
+ </condition>
+ <widgets>
+ <screenlet title="${uiLabelMap.PageTitleTaskInformation}">
+ <include-form name="TaskInfo" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </widgets>
+ <fail-widgets>
+ <screenlet title="${uiLabelMap.PageTitleTaskInformation}">
+ <include-form name="TaskInfoForStakeholder" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </fail-widgets>
+ </section>
+ </screen>
+ <screen name="TaskTeamInfo">
+ <section>
+ <actions>
+ <set field="taskParties" from-field="result.taskParties"/>
+ </actions>
+ <widgets>
+ <screenlet title="${uiLabelMap.ScrumMgrTaskTeam}">
+ <section>
+ <condition>
+ <if-has-permission permission="SCRUM" action="_ADMIN"/>
+ </condition>
+ <widgets>
+ <include-form name="ListTaskParties" location="component://scrum/widget/TaskForms.xml"/>
+ </widgets>
+ <fail-widgets>
+ <include-form name="ListTaskPartiesNoAction" location="component://scrum/widget/TaskForms.xml"/>
+ </fail-widgets>
+ </section>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="taskMember">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleTaskMember"/>
+ <set field="tabButtonItem" value="taskMember"/>
+ <set field="workEffortId" from-field="parameters.taskId" default-value="${parameters.workEffortId}"/>
+ <set field="sprintId" from-field="parameters.sprintId"/>
+ <entity-and entity-name="ProjectSprintBacklogAndTask" list="sprintList">
+ <field-map field-name="taskId" from-field="parameters.taskId"/>
+ <field-map field-name="sprintTypeId" value="SCRUM_SPRINT"/>
+ </entity-and>
+ <set field="sprint" from-field="sprintList[0]"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonTaskDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <screenlet id="addMemberTask" title="${uiLabelMap.PageTitleTaskMember}" collapsible="true">
+ <include-form name="taskMember" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ <screenlet id="taskMemberList" title="${uiLabelMap.ScrumTaskMemberList}">
+ <include-form name="taskMemberList" location="component://scrum/widget/TaskForms.xml"/>
+ </screenlet>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+</screens>
\ No newline at end of file
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TaskScreens.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml?rev=1142915&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml (added)
+++ ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml Tue Jul 5 08:15:32 2011
@@ -0,0 +1,201 @@
+<?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"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+ <form name="FindTimeSheet" target="FindTimeSheet" title="" type="single"
+ header-row-style="header-row" default-table-style="basic-table">
+ <actions>
+ <entity-condition entity-name="PartyRoleDetailAndPartyDetail" distinct="true" list="parties">
+ <condition-list combine="or">
+ <condition-expr field-name="roleTypeId" operator="equals" value="SCRUM_TEAM"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="SCRUM_MASTER"/>
+ </condition-list>
+ <select-field field-name="firstName"/>
+ <select-field field-name="middleName"/>
+ <select-field field-name="lastName"/>
+ <select-field field-name="partyId"/>
+ <order-by field-name="lastName"/>
+ </entity-condition>
+ </actions>
+ <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't there then with all fields empty no query will be done --></field>
+ <field name="timesheetId"><text-find ignore-case="true"/></field>
+ <field name="comments"><text-find ignore-case="true"/></field>
+ <field name="partyId" title="${uiLabelMap.PartyParty}">
+ <drop-down allow-empty="true">
+ <list-options key-name="partyId" list-name="parties" description="${lastName} ${firstName} ${middleName}"/>
+ </drop-down>
+ </field>
+ <field name="statusId" title="${uiLabelMap.CommonStatus}" position="1">
+ <drop-down allow-empty="true">
+ <entity-options entity-name="StatusItem" key-field-name="statusId" description="${description}">
+ <entity-constraint name="statusTypeId" value="TIMESHEET_STATUS"/>
+ <entity-order-by field-name="description"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field name="fromDate"><date-find/></field>
+ <field name="find" title="${uiLabelMap.CommonFind}"><submit/></field>
+ </form>
+ <form name="ListTimeSheets" type="list" list-name="timesheets" paginate-target="FindTimeSheet"
+ odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+ <actions>
+ <set field="complete" value="${uiLabelMap.ScrumToComplete}"/>
+ <set field="inProcess" value="Set To In-progress"/>
+ </actions>
+ <row-actions>
+ <set field="completeLink" value="${bsh:"TIMESHEET_IN_PROCESS".equals(statusId)?complete:""}"/>
+ </row-actions>
+ <field name="timesheetId" title="${uiLabelMap.WorkEffortTimesheetTimesheetId}" widget-style="buttontext">
+ <hyperlink also-hidden="false" description="${timesheetId}" target="ViewTimeSheet">
+ <parameter param-name="timesheetId"/>
+ </hyperlink>
+ </field>
+ <field name="partyId" title="${uiLabelMap.PartyParty}"><display-entity entity-name="PartyNameView" description="${firstName} ${middleName} ${lastName} ${groupName}"/></field>
+ <field name="hours" title="${uiLabelMap.ScrumActualHours}"><display/></field>
+ <field name="statusId" title="${uiLabelMap.CommonStatus}"><display-entity entity-name="StatusItem" description="${description}"/></field>
+ <field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display type="date"/></field>
+ <field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field>
+ <!--field name="comments" title="${uiLabelMap.CommonComments}"><display/></field-->
+ <field name="completeLink" title="${uiLabelMap.CommonStatustoComplete}" widget-style="buttontext">
+ <hyperlink target="TimeSheetStatusToComplete" description="${groovy:statusId.equals("TIMESHEET_IN_PROCESS")?complete:""}">
+ <parameter param-name="timesheetId"/>
+ <parameter param-name="statusId" value="TIMESHEET_COMPLETED"/>
+ </hyperlink>
+ </field>
+ <field name="inProcessLink" title="${uiLabelMap.StatusToInProcess}" widget-style="buttontext">
+ <hyperlink target="updateTimesheetToInProcess" description="${groovy:statusId.equals("TIMESHEET_COMPLETED")?inProcess:""}" >
+ <parameter param-name="timesheetId"/>
+ <parameter param-name="statusId" value="TIMESHEET_IN_PROCESS"/>
+ </hyperlink>
+ </field>
+ </form>
+ <form name="ListPartyTimeSheets" type="list" list-name="timesheets" paginate-target="MyTimesheet"
+ odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+ <actions>
+ <set field="complete" value="${uiLabelMap.ScrumToComplete}"/>
+ </actions>
+ <field name="timesheetId" title="${uiLabelMap.WorkEffortTimesheetTimesheetId}" widget-style="buttontext">
+ <hyperlink also-hidden="false" description="${timesheetId}" target="${my}Timesheet">
+ <parameter param-name="timesheetId"/>
+ </hyperlink>
+ </field>
+ <field name="weekNumber" title="${uiLabelMap.ScrumWeekNumber}"><display/></field>
+ <field name="statusId"><display-entity entity-name="StatusItem" description="${description}"/></field>
+ <field name="fromDate" title="${uiLabelMap.CommonFromDate}"><display type="date"/></field>
+ <field name="thruDate" title="${uiLabelMap.CommonThruDate}"><display type="date"/></field>
+ <field name="hours"><display/></field>
+ <field name="comments" title="${uiLabelMap.CommonComments}"><display/></field>
+ <field name="completeLink" title="${uiLabelMap.CommonStatustoComplete}" widget-style="buttontext">
+ <hyperlink target="TimeSheetStatusToComplete" description="${groovy:statusId.equals("TIMESHEET_IN_PROCESS")?complete:""}" also-hidden="false">
+ <parameter param-name="timesheetId"/>
+ <parameter param-name="statusId" value="TIMESHEET_COMPLETED"/>
+ </hyperlink>
+ </field>
+ </form>
+ <form name="WeekTimesheet" extends="WeekTimesheet" extends-resource="component://scrum/widget/MyWorkForms.xml" paginate-target="ViewTimeSheet">
+ </form>
+ <form name="EditWeekTimesheet" type="multi" list-name="timeEntries" use-row-submit="true" paginate-target="ViewTimeSheet"
+ separate-columns="true" target="update${my}Timesheet" odd-row-style="alternate-row" default-table-style="basic-table hover-bar">
+ <row-actions>
+ <service service-name="getProjectInfoFromTask" result-map="result">
+ <field-map field-name="taskId" from-field="workEffortId"/>
+ </service>
+ <entity-and entity-name="CustRequestWorkEffort" list="custRequestList">
+ <field-map field-name="workEffortId" from-field="workEffortId"/>
+ </entity-and>
+ <entity-and entity-name="CustRequest" list="custRequest">
+ <field-map field-name="custRequestId" from-field="custRequestList[0].custRequestId"/>
+ <field-map field-name="custRequestTypeId" value="RF_UNPLAN_BACKLOG"/>
+ </entity-and>
+ <entity-and entity-name="CustRequestItem" list="productList">
+ <field-map field-name="custRequestId" from-field="custRequest[0].custRequestId"/>
+ </entity-and>
+ <entity-one entity-name="Product" value-field="product">
+ <field-map field-name="productId" from-field="productList[0].productId"/>
+ </entity-one>
+ <entity-and entity-name="EmplLeave" list="emplLeaveList">
+ <field-map field-name="partyId" from-field="partyId"/>
+ <field-map field-name="leaveTypeId" from-field="leaveTypeId"/>
+ <field-map field-name="fromDate" from-field="leavefromDate"/>
+ </entity-and >
+ <set field="taskId" value="${emplLeaveList[0].leaveTypeId}" default-value="${result.taskId}"></set>
+ </row-actions>
+ <field name="timesheetId"><hidden/></field>
+ <field name="roleTypeId"><hidden/></field>
+ <field name="fromDate"><hidden/></field>
+ <field name="taskId" title="${uiLabelMap.ScrumTaskName}" parameter-name="workEffortId" encode-output="true">
+ <drop-down allow-empty="true" current-description="${result.projectId} ${product.productId} - ${result.projectName}${product.internalName} - ${result.sprintName} - ${groovy:result.backlogName.toString().substring(0,Math.min(result.backlogName.toString().length(),30))}[${result.backlogId}] - ${groovy:result.taskName.toString().substring(0,Math.min(result.taskName.toString().length(),30))}[${result.taskId}]">
+ <list-options key-name="taskId" list-name="taskListDropdown" description="${projectId}${productId} - ${projectName} ${productName} - ${sprintName} - ${groovy: if (description) description.substring(0,Math.min(description.length(),30))} [${custRequestId}] - ${groovy:taskName.substring(0,Math.min(taskName.length(),20))}[${taskId}]"/>
+ <entity-options description="${description}" entity-name="EmplLeaveType" key-field-name="leaveTypeId"/>
+ <sub-hyperlink target="taskView" description="${bsh:workEffortId!=void&&!"Totals".equals(workEffortId)?workEffortId:""}" target-window="_blank">
+ <parameter param-name="taskId" from-field="workEffortId"/>
+ </sub-hyperlink>
+ </drop-down>
+ </field>
+ <field name="checkComplete" title="${uiLabelMap.ScrumCheckComplete}"><check/></field>
+ <field name="rateTypeId" title="${uiLabelMap.ScrumRateTypeId}">
+ <drop-down allow-empty="false" no-current-selected-key="${defaultRateTypeId}">
+ <entity-options entity-name="RateType" description="${description}"/>
+ </drop-down>
+ </field>
+ <field name="planHours" title="${uiLabelMap.ScrumPlanHrs}"><text size="2"/></field>
+ <field name="pl0" parameter-name="planHoursDay0" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d0" parameter-name="hoursDay0" title="${uiLabelMap.ScrumMon}"><text size="2"/></field>
+ <field name="pd1" parameter-name="planHoursDay1" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d1" parameter-name="hoursDay1" title="${uiLabelMap.ScrumTue}"><text size="2"/></field>
+ <field name="pd2" parameter-name="planHoursDay2" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d2" parameter-name="hoursDay2" title="${uiLabelMap.ScrumWen}"><text size="2"/></field>
+ <field name="pd3" parameter-name="planHoursDay3" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d3" parameter-name="hoursDay3" title="${uiLabelMap.ScrumThu}"><text size="2"/></field>
+ <field name="pd4" parameter-name="planHoursDay4" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d4" parameter-name="hoursDay4" title="${uiLabelMap.ScrumFri}"><text size="2"/></field>
+ <field name="pd5" parameter-name="planHoursDay5" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d5" parameter-name="hoursDay5" title="${uiLabelMap.ScrumSat}" title-style="alert"><text size="2"/></field>
+ <field name="pd6" parameter-name="planHoursDay6" title="${uiLabelMap.ScrumPlhrs}"><hidden/></field>
+ <field name="d6" parameter-name="hoursDay6" title="${uiLabelMap.ScrumSun}" title-style="alert"><text size="2"/></field>
+ <field name="acualTotal" title="${uiLabelMap.ScrumActualHours}"><display/></field>
+ <field name="actualHours" title="${uiLabelMap.ScrumActualTotal}"><display/></field>
+ <field name="updateButton"><submit button-type="button"/></field>
+ <field name="_rowSubmit" title="${uiLabelMap.ScrumRowSubmit}"><hidden value="Y"/></field>
+ </form>
+
+ <form name="AddWeeklyTimesheet" type="single" target="createWeeklyTimesheet" title=""
+ header-row-style="header-row" default-table-style="basic-table">
+ <field name="partyId" title="${uiLabelMap.PartyParty}">
+ <drop-down allow-empty="true" no-current-selected-key="${timesheet.partyId}">
+ <entity-options entity-name="PartyRoleDetailAndPartyDetail" description="${firstName} ${lastName}">
+ <entity-constraint name="parentTypeId" value="SCRUM_MEMBER"/>
+ <entity-order-by field-name="lastName"/>
+ <entity-order-by field-name="groupName"/>
+ </entity-options>
+ </drop-down>
+ </field>
+ <field entry-name="dummy" name="requiredDate" title="${uiLabelMap.ScrumSelectedDate}"><date-time type="date"/></field>
+ <field name="addButton"><submit/></field>
+ </form>
+
+ <form name="AddMyWeeklyTimesheet" type="single" target="createMyWeeklyTimesheet" title=""
+ header-row-style="header-row" default-table-style="basic-table">
+ <field name="partyId"><hidden value="${userLogin.partyId}"/></field>
+ <field entry-name="dummy" name="requiredDate" title="${uiLabelMap.ScrumSelectedDate}"><date-time type="date"/></field>
+ <field name="addButton"><submit/></field>
+ </form>
+</forms>
\ No newline at end of file
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetForms.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml?rev=1142915&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml (added)
+++ ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml Tue Jul 5 08:15:32 2011
@@ -0,0 +1,102 @@
+<?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.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+ <screen name="FindTimeSheet">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleFindTimeSheet"/>
+ <set field="headerItem" value="admin"/>
+ <set field="labelTitleProperty" value="ScrumFindTimeSheet"/>
+ <set field="tabButtonItem" value="timesheets"/>
+ <script location="component://scrum/webapp/scrum/WEB-INF/actions/ListTimeSheets.groovy"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonAdminDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <widgets>
+ <screenlet id="findTimeSheet" title="${uiLabelMap.PageTitleFindTimeSheet}" collapsible="true">
+ <include-form name="FindTimeSheet" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </screenlet>
+ <screenlet title="${uiLabelMap.PageTitleTimesheets}" navigation-form-name="ListFindTimeSheet">
+ <include-form name="ListTimeSheets" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="ViewTimeSheet">
+ <section>
+ <actions>
+ <set field="titleProperty" value="PageTitleTimesheet"/>
+ <set field="headerItem" value="timesheet"/>
+ <set field="tabButtonItem" value="timesheets"/>
+ <script location="component://scrum/webapp/scrum/WEB-INF/actions/EditDailyHourReport.groovy"/>
+ <entity-one value-field="partyNameViewMap" entity-name="PartyNameView">
+ <field-map field-name="partyId" from-field="timesheet.partyId"/>
+ </entity-one>
+ </actions>
+ <widgets>
+ <decorator-screen name="CommonAdminDecorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <screenlet title="${uiLabelMap.PageTitleTimesheet} ${uiLabelMap.CommonNbr} ${timesheet.timesheetId} ${uiLabelMap.CommonWeek}: ${weekNumber}
+ ${uiLabelMap.CommonFrom} ${bsh:timesheet.get("fromDate").toString().substring(0,10)} ${uiLabelMap.CommonTo}
+ ${bsh:timesheet.get("thruDate").toString().substring(0,10)} ${uiLabelMap.PartyParty} : ${partyNameViewMap.lastName} ${partyNameViewMap.firstName} ${partyNameViewMap.middleName} [${timesheet.partyId}]">
+ <section>
+ <condition>
+ <if-compare field="timesheet.statusId" operator="equals" value="TIMESHEET_COMPLETED"/>
+ </condition>
+ <widgets>
+ <include-form name="WeekTimesheet" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </widgets>
+ <fail-widgets>
+ <include-form name="EditWeekTimesheet" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </fail-widgets>
+ </section>
+ </screenlet>
+ <screenlet id="addWeeklyTimesheet" title="${uiLabelMap.PageTitleAddATimesheet}" collapsible="true">
+ <include-form name="AddWeeklyTimesheet" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </screenlet>
+ <include-screen name="ListPartyTimesheets"/>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+ <screen name="ListPartyTimesheets">
+ <section>
+ <actions>
+ <entity-one entity-name="PartyNameView" value-field="partyNameView">
+ <field-map field-name="partyId" from-field="timesheet.partyId"/>
+ </entity-one>
+ </actions>
+ <widgets>
+ <screenlet id="listTimeSheets" title="${uiLabelMap.PageTitleTimesheets} ${uiLabelMap.CommonOf} ${partyNameView.firstName} ${partyNameView.middleName} ${partyNameView.lastName}" collapsible="true">
+ <include-form name="ListTimeSheets" location="component://scrum/widget/TimeSheetForms.xml"/>
+ </screenlet>
+ </widgets>
+ </section>
+ </screen>
+</screens>
\ No newline at end of file
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/TimeSheetScreens.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added: ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml?rev=1142915&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml (added)
+++ ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml Tue Jul 5 08:15:32 2011
@@ -0,0 +1,46 @@
+<?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"/>
+
+ <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="MainDemoUser" 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="main">
+ <section>
+ <widgets>
+ <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <widgets>
+ <screenlet title="${uiLabelMap.ScrumDemoUser}">
+ <platform-specific>
+ <html><html-template location="component://scrum/webapp/scrum/includes/demotest.ftl"/></html>
+ </platform-specific>
+ </screenlet>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+</screens>
\ No newline at end of file
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/specialpurpose/scrum/widget/demotest/DemotestScreen.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml