You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2011/11/28 09:04:34 UTC

svn commit: r1207005 [9/9] - in /ofbiz/branches/jackrabbit20100709: ./ applications/accounting/config/ applications/accounting/servicedef/ applications/commonext/config/ applications/commonext/data/ applications/commonext/widget/ applications/content/ ...

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/projectmgr/script/org/ofbiz/project/ProjectServices.xml Mon Nov 28 08:04:21 2011
@@ -707,24 +707,8 @@
         <set field="highInfo.createdDate" from-field="project.createdDate"/>
         <set field="highInfo.parentProjectId" from-field="project.workEffortParentId"/>
         <!-- loop through the related phases and tasks -->
-        <get-related value-field="project" relation-name="ChildWorkEffort" list="phases"/>
-        <if-not-empty field="phases">
-            <iterate entry="phase" list="phases">
-                <get-related value-field="phase" relation-name="ChildWorkEffort" list="tasks"/>
-                <if-not-empty field="tasks">
-                    <iterate entry="lowInfo" list="tasks">
-                        <if-compare field="lowInfo.currentStatusId" value="PTS_COMPLETED" operator="not-equals">
-                            <if-compare field="lowInfo.currentStatusId" value="PTS_CANCELLED" operator="not-equals">
-                                <set field="allTaskStatus" value="notComplete"/>
-                            </if-compare>
-                        </if-compare>
-                        <call-simple-method method-name="combineInfo"/>
-                        <call-simple-method method-name="getHours" xml-resource="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"/>
-                    </iterate>
-                </if-not-empty>
-            </iterate>
-        </if-not-empty>
-        
+        <call-simple-method method-name="combineInfo"/>
+
         <!-- get e-mail address -->
         <entity-and list="emailAddresses" entity-name="WorkEffortContactMechView">
             <field-map field-name="workEffortId" from-field="highInfo.projectId"/>
@@ -799,18 +783,7 @@
             <set field="highInfo.scopeEnumId" from-field="phase.scopeEnumId"/>
 
             <!-- loop through the related tasks and combine information -->
-            <get-related value-field="phase" relation-name="ChildWorkEffort" list="tasks"/>
-            <if-not-empty field="tasks">
-                <iterate entry="lowInfo" list="tasks">
-                    <if-compare field="lowInfo.currentStatusId" value="PTS_COMPLETED" operator="not-equals">
-                        <if-compare field="lowInfo.currentStatusId" value="PTS_CANCELLED" operator="not-equals">
-                            <set field="allTaskStatus" value="notComplete"/>
-                        </if-compare>
-                    </if-compare>
-                    <call-simple-method method-name="combineInfo"/>
-                    <call-simple-method method-name="getHours" xml-resource="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"/>
-                </iterate>
-            </if-not-empty>
+            <call-simple-method method-name="combineInfo"/>
 
             <!-- merge estimated and actual dates -->
             <call-simple-method method-name="createDates"/>
@@ -894,8 +867,6 @@
         <set field="highInfo.scopeEnumId" from-field="lowInfo.scopeEnumId"/>
         <set field="highInfo.workEffortParentId" from-field="lowInfo.workEffortParentId"/>
         <call-simple-method method-name="combineInfo"/>
-        <call-simple-method method-name="getHours" xml-resource="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"/>
-        <set field="highInfo.currentStatusId" from-field="lowInfo.currentStatusId"/>
         <field-to-result field="highInfo" result-name="taskInfo"/>
     </simple-method>
 
@@ -1017,7 +988,255 @@
     </simple-method>
 
     <!-- Internal functions  -->
+    <simple-method method-name="combineStatusInfo" short-description="combine lower level status">
+        <!-- the status for a project or phase is
+         IN_PROGRESS if at least one task still in progress
+         COMPLETED if all task are either completed or cancelled
+         CREATED if other conditions does not apply
+         For a task the status is
+         IN_PROGRESS if it has at least one resource and at least a time entry
+         ASSIGNED if it has at least one resource but no time entry associated
+         -->
+        <entity-count count-field="tasksCount" entity-name="ProjectPhaseTaskAssignmentView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+        </entity-count>
+        <log level="info" message="related tasks count ====> ${tasksCount}"/>
+        <entity-count count-field="completedTasks" entity-name="ProjectPhaseTaskAssignmentView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <having-condition-list combine="or">
+            <condition-expr field-name="taskStatusId" operator="equals" value="PTS_COMPLETED"/>
+            <condition-expr field-name="taskStatusId" operator="equals" value="PTS_CANCELLED"/>
+        </having-condition-list>
+        </entity-count>
+        <log level="info" message="related completed tasks count ====> ${completedTasks}"/>
+        <entity-count count-field="assignedTasks" entity-name="ProjectPhaseTaskAssignmentView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <having-condition-list combine="and">
+            <condition-expr field-name="entriesCount" value="0"/>
+            <condition-expr field-name="resourceCount" operator="greater-equals" value="1"/>
+            <condition-expr field-name="taskStatusId" operator="not-equals" value="PTS_COMPLETED"/>
+            <condition-expr field-name="taskStatusId" operator="not-equals" value="PTS_CANCELLED"/>
+        </having-condition-list>
+        </entity-count>
+        <log level="info" message="related assigned tasks count ====> ${assignedTasks}"/>
+        <entity-count count-field="inprogressTasks" entity-name="ProjectPhaseTaskAssignmentView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <having-condition-list combine="and">
+                <condition-expr field-name="entriesCount" operator="greater-equals" value="1"/>
+                <condition-expr field-name="resourceCount" operator="greater-equals" value="1"/>
+                <condition-expr field-name="taskStatusId" operator="not-equals" value="PTS_COMPLETED"/>
+                <condition-expr field-name="taskStatusId" operator="not-equals" value="PTS_CANCELLED"/>
+            </having-condition-list>
+        </entity-count>
+        <log level="info" message="related in progress tasks count ====> ${inprogressTasks}"/>
+        <if>
+            <condition>
+                <or>
+                    <if-compare operator="greater" field="inprogressTasks" type="Long" value="0"/>
+                    <if-compare operator="greater" field="assignedTasks" type="Long" value="0"/>
+                </or>
+            </condition>
+            <then>
+                <set field="highInfo.currentStatusId" value="PTS_CREATED_IP"/>
+            </then>
+            <else>
+                <if>
+                    <condition>
+                        <if-compare-field operator="equals" field="completedTasks" to-field="tasksCount"/>
+                    </condition>
+                    <then>
+                        <set field="highInfo.currentStatusId" value="PTS_COMPLETED"/>
+                    </then>
+                    <else>
+                        <set field="highInfo.currentStatusId" value="PTS_CREATED"/>
+                    </else>
+                </if>
+            </else>
+        </if>
+    </simple-method>
+
+    <simple-method method-name="combineDatesAndPlannedHoursInfo" short-description="combine lower level start end dates and planned hours for a project, phase or task">
+        <entity-condition  entity-name="ProjectPhaseTaskSummaryView" list="summaryInfos">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <select-field field-name="projectId"/>
+            <select-field field-name="estimatedStartDate"/>
+            <select-field field-name="actualEntryStartDate"/>
+            <select-field field-name="actualStartDate"/>
+            <select-field field-name="estimatedCompletionDate"/>
+            <select-field field-name="actualCompletionDate"/>
+            <select-field field-name="actualEntryCompletionDate"/>
+            <select-field field-name="plannedHours"/>
+            <select-field field-name="priority"/>
+        </entity-condition>
+
+        <first-from-list entry="summaryInfo" list="summaryInfos"/>
+        <set field="highInfo.estimatedStartDate" from-field="summaryInfo.estimatedStartDate"/>
+        <set field="highInfo.estimatedCompletionDate" from-field="summaryInfo.estimatedCompletionDate"/>
+        <set field="highInfo.actualStartDate" from-field="summaryInfo.actualStartDate"/>
+        <set field="highInfo.actualCompletionDate" from-field="summaryInfo.actualCompletionDate"/>
+        <set field="highInfo.priority" from-field="summaryInfo.priority"/>
+        <set field="highInfo.plannedHours" from-field="summaryInfo.plannedHours"/>
+        <!-- update actual start date by the min date form sub tasks associated entries 
+        (if before actualStartDate field) -->
+        <if-not-empty field="summaryInfo.actualEntryStartDate">
+            <if>
+                <condition>
+                    <or>
+                        <if-empty field="highInfo.actualStartDate"/>
+                        <if-compare-field field="highInfo.actualStartDate" operator="greater" type="Timestamp" to-field="summaryInfo.actualEntryStartDate"/>
+                    </or>
+                </condition>
+                <then>
+                    <set field="highInfo.actualStartDate" from-field="summaryInfo.actualEntryStartDate"/>
+                </then>
+            </if>
+        </if-not-empty>
+        <!-- update actual completion date by the max date form sub tasks associated entries 
+        (if after actualCompletionDate field) -->
+        <if-not-empty field="summaryInfo.actualEntryCompletionDate">
+            <if>
+                <condition>
+                    <or>
+                        <if-empty field="highInfo.actualCompletionDate"/>
+                        <if-compare-field field="highInfo.actualCompletionDate" operator="less" type="Timestamp" to-field="summaryInfo.actualEntryCompletionDate"/>
+                    </or>
+                </condition>
+                <then>
+                    <set field="highInfo.actualCompletionDate" from-field="summaryInfo.actualEntryCompletionDate"/>
+                </then>
+            </if>
+        </if-not-empty>
+    </simple-method>
+
     <simple-method method-name="combineInfo" short-description="combine lower level status, dates of tasks.">
+        <call-simple-method method-name="combineStatusInfo"/>
+        <call-simple-method method-name="combineDatesAndPlannedHoursInfo"/>
+        <call-simple-method method-name="combineActualHours"/>
+    </simple-method>
+    <simple-method method-name="combineActualHours" short-description="combine lower level Actual hours info.">
+        <!-- 
+        -to calculate actual hours : the declared number of hours in time entry should be multiplied by the 
+         max percentage declared in PartyRate if a valid party rate can be found for the party associated to a
+         the timesheet associated to this time entry and has the same rateType as this timeEntry 
+        -actualHoursOriginal is the total of hours in time entries without application of percentage declared in partyRate
+         -->
+
+        <!-- I- get timeEntries for which there is no rate  (originalHours)-->
+        <entity-condition list="notRatedValues" entity-name="ProjectPhaseTaskActualNotRatedHoursView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <select-field field-name="totalOriginalHours"/>
+        </entity-condition>
+        <first-from-list entry="notRatedValue" list="notRatedValues"/>
+        <set field="originalHours" from-field="notRatedValue.totalOriginalHours" type="Double"/>
+
+        <!-- II- get total for timeEntries having a partyRate that should be applied
+        before applying rate (totalOriginalHours)
+        after applying rate (totalRatedHours)-->
+        <entity-condition list="ratedValues" entity-name="ProjectPhaseTaskActualRatedHoursView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+            </condition-list>
+            <select-field field-name="totalOriginalHours"/>
+            <select-field field-name="totalRatedHours"/>
+        </entity-condition>
+        <first-from-list list="ratedValues" entry="ratedValue"/>
+        <call-object-method method-name="getDouble" obj-field="ratedValue" ret-field="actualHours">
+            <string value="totalRatedHours"/>
+        </call-object-method>
+
+        <if-empty field="actualHours">
+            <set field="actualHours" from-field="originalHours"/>
+            <else>
+                <calculate field="actualHours" type="Double">
+                    <calcop operator="add" field="originalHours">
+                        <calcop operator="get" field="actualHours"/>
+                    </calcop>
+                </calculate>
+            </else>
+        </if-empty>
+
+        <if-empty field="originalHours">
+            <set field="originalActualHours" from-field="ratedValue.totalOriginalHours" type="Double"/>
+            <else>
+                <calculate field="originalActualHours" type="Double">
+                    <calcop operator="add" field="originalHours">
+                        <calcop operator="get" field="ratedValue.totalOriginalHours"/>
+                    </calcop>
+                </calculate>
+            </else>
+        </if-empty>
+
+        <set field="highInfo.originalActualHours" from-field="originalActualHours"/>
+        <set field="highInfo.actualHours" from-field="actualHours"/>
+        <!-- do the same but for non-billed hours -->
+        <!-- first get not rated hours -->
+        <entity-condition list="notRatedValues" entity-name="ProjectPhaseTaskActualNotRatedHoursView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+                <condition-expr field-name="invoiceId" from-field="nullField"/>
+            </condition-list>
+            <select-field field-name="totalOriginalHours"/>
+        </entity-condition>
+        <first-from-list entry="notRatedValue" list="notRatedValues"/>
+        <set field="actualNonBilledHours" from-field="notRatedValue.totalOriginalHours" type="Double"/>
+        <!-- second get non billed for entries having an invoiceId -->
+        <entity-condition list="ratedValues" entity-name="ProjectPhaseTaskActualRatedHoursView">
+            <condition-list>
+                <condition-expr field-name="projectId" from-field="highInfo.projectId" ignore-if-empty="true"/>
+                <condition-expr field-name="phaseId" from-field="highInfo.phaseId" ignore-if-empty="true"/>
+                <condition-expr field-name="taskId" from-field="highInfo.taskId" ignore-if-empty="true"/>
+                <condition-expr field-name="invoiceId" from-field="nullField"/>
+            </condition-list>
+            <select-field field-name="totalOriginalHours"/>
+            <select-field field-name="totalRatedHours"/>
+        </entity-condition>
+        <first-from-list list="ratedValues" entry="ratedValue"/>
+        <call-object-method method-name="getDouble" obj-field="ratedValue" ret-field="actualHours">
+            <string value="totalOriginalHours"/>
+        </call-object-method>
+
+        <if-not-empty field="actualNonBilledHours">
+            <calculate field="actualNonBilledHours" type="Double">
+                <calcop operator="get" field="actualNonBilledHours">
+                    <calcop operator="add" field="actualHours"/>
+                </calcop>
+            </calculate>
+            <else>
+                <set field="actualNonBilledHours" from-field="totalOriginalHours" type="Double"/>
+            </else>
+        </if-not-empty>
+        <set field="highInfo.actualNonBilledHours" from-field="actualNonBilledHours" type="Double"/>
+    </simple-method>
+
+    <simple-method method-name="combineInfoOld" short-description="combine lower level status, dates of tasks.">
         <!-- in/output highInfo infoMap -->
         <!-- input lowInfo info map -->
         <!-- set the dates from the lower level tasks -->

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/config/scrumUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/config/scrumUiLabels.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/config/scrumUiLabels.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/config/scrumUiLabels.xml Mon Nov 28 08:04:21 2011
@@ -671,6 +671,9 @@
     <property key="ScrumMoveToUnplannedSprint">
         <value xml:lang="en">Move to unplanned sprint</value>
     </property>
+    <property key="ScrumMyProfile">
+        <value xml:lang="en">My Profile</value>
+    </property>
     <property key="ScrumMyWork">
         <value xml:lang="en">My Work</value>
     </property>

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/CommonScreens.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/CommonScreens.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/CommonScreens.xml Mon Nov 28 08:04:21 2011
@@ -324,7 +324,7 @@
     <screen name="CommonPartyDecorator">
         <section>
             <actions>
-                <set field="headerItem" value="ProjectMember"/>
+                <set field="headerItem" value="myProfile"/>
                 <set field="partyId" from-field="parameters.partyId"/>
                 <entity-one entity-name="Party" value-field="party"/>
                 <entity-one entity-name="Person" value-field="lookupPerson"/>

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceForms.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceForms.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceForms.xml Mon Nov 28 08:04:21 2011
@@ -160,25 +160,25 @@
         </field>
     </form>
     <form name="ListPreference" type="multi" target="updatePreference?partyId=${parameters.partyId}" list-name="userPreferenceList"
-        odd-row-style="alternate-row" default-table-style="basic-table hover-bar" separate-columns="true" use-row-submit="true" >
+        odd-row-style="alternate-row" default-table-style="basic-table hover-bar" separate-columns="true">
         <row-actions>
             <service service-name="getUserPreference" result-map="values">
                 <field-map field-name="userPrefTypeId" from-field="enumId"/>
             </service>
-            <set field="userPrefValue" from-field="values.userPrefValue"/>
+            <set field="userPrefValue" from-field="values.userPrefValue" default-value="Y"/>
             <entity-and entity-name="UserLogin" list="userLogins">
                 <field-map field-name="partyId" from-field="parameters.partyId"/>
+                <field-map field-name="userLoginId" from-field="userLogin.userLoginId"/>
             </entity-and>
             <set field="userLoginId" from-field="userLogins[0].userLoginId"/>
         </row-actions>
-        <field name="_rowSubmit"><hidden value="Y"/></field>
         <field name="enumId" parameter-name="userPrefTypeId"><hidden value="${enumId}"/></field>
         <field name="enumTypeId" parameter-name="userPrefGroupTypeId"><hidden value="${enumTypeId}"/></field>
         <field name="description" title="${uiLabelMap.CommonDescription}"><display/></field>
         <field name="partyId"><hidden value="${parameters.partyId}"/></field>
         <field name="userLoginId"><hidden/></field>
         <field name="userPrefValue" title="Enable">
-            <drop-down>
+            <drop-down allow-empty="false" no-current-selected-key="Y">
                 <option key="N" description="No"/>
                 <option key="Y" description="Yes"/>
             </drop-down>
@@ -186,6 +186,7 @@
         <field name="submit" title="${uiLabelMap.CommonSubmit}"><submit/></field>
     </form>
     <form name="ListPreferenceNoAction" extends="ListPreference">
+        <field name="userPrefValue" title="Enable"><display/></field>
         <field name="submit"><hidden/></field>
     </form>
     <form name="FindPartyRevision" type="single" target="findPartyRevision">

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceScreens.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceScreens.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/ResourceScreens.xml Mon Nov 28 08:04:21 2011
@@ -209,12 +209,14 @@ under the License.
         <section>
             <actions>
                 <set field="titleProperty" value="PageTitleViewPartyPreferences"/>
-                <set field="headerItem" value="projectMember"/>
                 <set field="tabButtonItem" value="preferences"/>
                 <set field="partyId"  from-field="parameters.partyId"/>
-                <entity-and entity-name="Enumeration" list="userPreferenceList">
-                    <field-map field-name="enumTypeId" value="SCRUM_PREFERENCE"/>
+                <entity-and entity-name="UserLogin" list="userLogins">
+                    <field-map field-name="partyId" from-field="parameters.partyId"/>
+                    <field-map field-name="userLoginId" from-field="userLogin.userLoginId"/>
                 </entity-and>
+                <set field="userLoginId" from-field="userLogins[0].userLoginId"/>
+                <script location="component://scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy"/>
             </actions>
             <widgets>
                 <decorator-screen name="CommonPartyDecorator" location="${parameters.mainDecoratorLocation}">
@@ -223,12 +225,12 @@ under the License.
                             <condition>
                                 <and>
                                     <not><if-empty field="partyId"></if-empty></not>
-                                    <if-service-permission service-name="scrumPermissionCheck" main-action="CREATE" resource-description="MEMBER"/>
+                                    <!-- <if-service-permission service-name="scrumPermissionCheck" main-action="CREATE" resource-description="BACKLOG"/> -->
                                     <if-compare-field field="partyId" operator="equals" to-field="userLogin.partyId"/>
                                 </and>
                             </condition>
                             <widgets>
-                                <screenlet title="${uiLabelMap.CommonPreferences}" >
+                                <screenlet title="${uiLabelMap.CommonPreferences} : ${userLoginId}" >
                                     <include-form name="ListPreference" location="component://scrum/widget/ResourceForms.xml"/>
                                 </screenlet>
                             </widgets>

Modified: ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/scrumMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/scrumMenus.xml?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/scrumMenus.xml (original)
+++ ofbiz/branches/jackrabbit20100709/specialpurpose/scrum/widget/scrumMenus.xml Mon Nov 28 08:04:21 2011
@@ -54,6 +54,11 @@
                </condition>
                <link target="adminScrum"/>
         </menu-item>
+        <menu-item name="myProfile" title="${uiLabelMap.ScrumMyProfile}">
+            <link target="viewprofile">
+                <parameter param-name="partyId" from-field="userLogin.partyId"/>
+            </link>
+        </menu-item>
     </menu>
     
     <menu name="ScrumAdminSubMenu" extends="CommonTabBarMenu" extends-resource="component://common/widget/CommonMenus.xml">
@@ -721,32 +726,52 @@
             </link>
         </menu-item>
         <menu-item name="preferences" title="${uiLabelMap.CommonPreferences}">
+            <condition>
+                <and>
+                    <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="BACKLOG"/>
+                    <if-compare-field field="userLogin.partyId" operator="equals" to-field="partyId"/>
+                </and>
+            </condition>
             <link target="Preferences">
                 <parameter param-name="partyId"/>
             </link>
         </menu-item>
-        
         <menu-item name="viewroles" title="${uiLabelMap.PartyRoles}">
+            <condition>
+                <if-has-permission permission="SCRUM" action="_ADMIN"/>
+            </condition>
             <link target="viewroles">
                 <parameter param-name="partyId"/>
             </link>
         </menu-item>
         <menu-item name="listResourcesProject" title="${uiLabelMap.ScrumProjects}">
+            <condition>
+                <if-service-permission service-name="scrumPermissionCheck" main-action="VIEW" resource-description="BACKLOG"/>
+            </condition>
             <link target="listResourcesProject">
                 <parameter param-name="partyId"/>
             </link>
         </menu-item>
         <menu-item name="listResourcesTask"  title="${uiLabelMap.ScrumTasks}">
+            <condition>
+                <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TASK"/>
+            </condition>
             <link target="listResourcesTask">
                 <parameter param-name="partyId"/>
             </link>
         </menu-item>
         <menu-item name="EditPartyRates" title="${uiLabelMap.CommonRates}">
+            <condition>
+                <if-has-permission permission="SCRUM" action="_ADMIN"/>
+            </condition>
             <link target="EditPartyRates">
                 <parameter param-name="partyId"/>
             </link>
         </menu-item>
         <menu-item name="findPartyRevision"  title="${uiLabelMap.ScrumRevisions}">
+            <condition>
+                <if-service-permission service-name="scrumPermissionCheck" main-action="UPDATE" resource-description="TASK"/>
+            </condition>
             <link target="findPartyRevision">
                 <parameter param-name="partyId"/>
             </link>
@@ -873,7 +898,7 @@
                     <if-has-permission permission="SCRUM" action="_ADMIN"/>
                 </and>
             </condition>
-            <link target="setTaskStatus">
+           <link target="setTaskStatus">
                 <parameter param-name="workEffortId" from-field="parameters.taskId"/>
                 <parameter param-name="taskId" from-field="parameters.taskId"/>
                 <parameter param-name="currentStatusId" value="STS_CANCELLED"/>

Modified: ofbiz/branches/jackrabbit20100709/themes/bizznesstime/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/bizznesstime/includes/header.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/bizznesstime/includes/header.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/themes/bizznesstime/includes/header.ftl Mon Nov 28 08:04:21 2011
@@ -99,6 +99,13 @@ under the License.
             <script src="<@o...@ofbizContentUrl>" type="text/javascript"></script>
         </#list>
     </#if>
+    <#if layoutSettings.WEB_ANALYTICS?has_content>
+      <script language="JavaScript" type="text/javascript">
+        <#list layoutSettings.WEB_ANALYTICS as webAnalyticsConfig>
+          ${StringUtil.wrapString(webAnalyticsConfig.webAnalyticsCode?if_exists)}
+        </#list>
+      </script>
+    </#if>
 </head>
 <#if layoutSettings.headerImageLinkUrl?exists>
   <#assign logoLinkURL = "${layoutSettings.headerImageLinkUrl}">

Modified: ofbiz/branches/jackrabbit20100709/themes/bluelight/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/bluelight/includes/header.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/bluelight/includes/header.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/themes/bluelight/includes/header.ftl Mon Nov 28 08:04:21 2011
@@ -80,6 +80,13 @@ under the License.
             ${extraHead}
         </#list>
     </#if>
+    <#if layoutSettings.WEB_ANALYTICS?has_content>
+      <script language="JavaScript" type="text/javascript">
+        <#list layoutSettings.WEB_ANALYTICS as webAnalyticsConfig>
+          ${StringUtil.wrapString(webAnalyticsConfig.webAnalyticsCode?if_exists)}
+        </#list>
+      </script>
+    </#if>
 </head>
 <#if layoutSettings.headerImageLinkUrl?exists>
   <#assign logoLinkURL = "${layoutSettings.headerImageLinkUrl}">

Modified: ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/includes/header.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/includes/header.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/includes/header.ftl Mon Nov 28 08:04:21 2011
@@ -80,6 +80,13 @@ under the License.
             ${extraHead}
         </#list>
     </#if>
+    <#if layoutSettings.WEB_ANALYTICS?has_content>
+      <script language="JavaScript" type="text/javascript">
+        <#list layoutSettings.WEB_ANALYTICS as webAnalyticsConfig>
+          ${StringUtil.wrapString(webAnalyticsConfig.webAnalyticsCode?if_exists)}
+        </#list>
+      </script>
+    </#if>
 </head>
 <#if layoutSettings.headerImageLinkUrl?exists>
   <#assign logoLinkURL = "${layoutSettings.headerImageLinkUrl}">

Modified: ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css (original)
+++ ofbiz/branches/jackrabbit20100709/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css Mon Nov 28 08:04:21 2011
@@ -940,7 +940,7 @@ height:50px;
 }
 
 #org-logo-area {
-width:260px;
+width:auto;
 height:50px;
 }
 

Modified: ofbiz/branches/jackrabbit20100709/themes/flatgrey/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/flatgrey/includes/header.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/flatgrey/includes/header.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/themes/flatgrey/includes/header.ftl Mon Nov 28 08:04:21 2011
@@ -77,6 +77,13 @@ under the License.
         </#list>
     </#if>
     <#if lastParameters?exists><#assign parametersURL = "&amp;" + lastParameters></#if>
+    <#if layoutSettings.WEB_ANALYTICS?has_content>
+      <script language="JavaScript" type="text/javascript">
+        <#list layoutSettings.WEB_ANALYTICS as webAnalyticsConfig>
+          ${StringUtil.wrapString(webAnalyticsConfig.webAnalyticsCode?if_exists)}
+        </#list>
+      </script>
+    </#if>
 </head>
 <#if layoutSettings.headerImageLinkUrl?exists>
   <#assign logoLinkURL = "${layoutSettings.headerImageLinkUrl}">
@@ -110,29 +117,43 @@ under the License.
             <li class="logo-area"><a href="<@o...@ofbizUrl>"><img alt="${layoutSettings.companyName}" src="<@o...@ofbizContentUrl>"/></a></li>
         </#if>
       </#if>
-      <#if userLogin?exists>
-        <#if layoutSettings.topLines?has_content>
-          <#list layoutSettings.topLines as topLine>
-            <#if topLine.text?exists>
-              <li>${topLine.text}<a href="${StringUtil.wrapString(topLine.url?if_exists)}&amp;externalLoginKey=${externalLoginKey}">${topLine.urlText?if_exists}</a></li>
-            <#elseif topLine.dropDownList?exists>
-              <li><#include "component://common/webcommon/includes/insertDropDown.ftl"/></li>
+      <#if layoutSettings.middleTopMessage1?has_content && layoutSettings.middleTopMessage1 != " ">
+        <li>
+        <div class="last-system-msg">
+        <center>${layoutSettings.middleTopHeader?if_exists}</center>
+        <a href="${layoutSettings.middleTopLink1?if_exists}">${layoutSettings.middleTopMessage1?if_exists}</a><br/>
+        <a href="${layoutSettings.middleTopLink2?if_exists}">${layoutSettings.middleTopMessage2?if_exists}</a><br/>
+        <a href="${layoutSettings.middleTopLink3?if_exists}">${layoutSettings.middleTopMessage3?if_exists}</a>
+        </div>
+        </li>
+      </#if>
+      <li class="preference-area">
+          <ul>
+          <#if userLogin?exists>
+            <#if layoutSettings.topLines?has_content>
+              <#list layoutSettings.topLines as topLine>
+                <#if topLine.text?exists>
+                  <li>${topLine.text}<a href="${StringUtil.wrapString(topLine.url?if_exists)}&amp;externalLoginKey=${externalLoginKey}">${topLine.urlText?if_exists}</a></li>
+                <#elseif topLine.dropDownList?exists>
+                  <li><#include "component://common/webcommon/includes/insertDropDown.ftl"/></li>
+                <#else>
+                  <li>${topLine?if_exists}</li>
+                </#if>
+              </#list>
             <#else>
-              <li>${topLine?if_exists}</li>
+              <li>${userLogin.userLoginId}</li>
             </#if>
-          </#list>
-        <#else>
-          <li>${userLogin.userLoginId}</li>
-        </#if>
-        <li><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
-      <#else/>
-        <li>${uiLabelMap.CommonWelcome}! <a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
-      </#if>
-      <#---if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
-      <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
-        <#include "component://common/webcommon/includes/helplink.ftl" />
-        <li><a <#if pageAvail?has_content>class="alert"</#if> href="javascript:lookup_popup2('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></li>
-      </#if> 
+            <li><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
+          <#else/>
+            <li>${uiLabelMap.CommonWelcome}! <a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
+          </#if>
+          <#---if webSiteId?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists-->
+          <#if parameters.componentName?exists && requestAttributes._CURRENT_VIEW_?exists && helpTopic?exists>
+            <#include "component://common/webcommon/includes/helplink.ftl" />
+            <li><a <#if pageAvail?has_content>class="alert"</#if> href="javascript:lookup_popup2('showHelp?helpTopic=${helpTopic}&amp;portalPageId=${parameters.portalPageId?if_exists}','help' ,500,500);">${uiLabelMap.CommonHelp}</a></li>
+          </#if>
+          </ul>
+      </li>
     </ul>
   </div>
   <#--<br class="clear" />-->

Modified: ofbiz/branches/jackrabbit20100709/themes/flatgrey/webapp/flatgrey/maincss.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/flatgrey/webapp/flatgrey/maincss.css?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/flatgrey/webapp/flatgrey/maincss.css (original)
+++ ofbiz/branches/jackrabbit20100709/themes/flatgrey/webapp/flatgrey/maincss.css Mon Nov 28 08:04:21 2011
@@ -259,7 +259,7 @@ color: #ccc;
 font-size: 1em;
 font-weight: normal;
 min-height: 26px; /* Setting must be in px */
-height: 2.6em;
+height: auto;
 overflow: auto;
 }
 
@@ -273,6 +273,16 @@ color: #ccc;
 font-weight: normal;
 }
 
+.last-system-msg{
+color: #FFFFFF;
+font-size: 0.9em;
+padding-left:10px;
+}
+
+.preference-area{
+float: right !important;
+}
+
 #masthead ul .logo-area {
 padding: 0.1em 0.8em;
 }
@@ -282,7 +292,7 @@ padding: 0.1em 0.8em;
 }
 
 #masthead ul .org-logo-area img{
-width: 50px;
+width: auto;
 height: 22px;
 }
 

Modified: ofbiz/branches/jackrabbit20100709/themes/tomahawk/includes/header.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/tomahawk/includes/header.ftl?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/tomahawk/includes/header.ftl (original)
+++ ofbiz/branches/jackrabbit20100709/themes/tomahawk/includes/header.ftl Mon Nov 28 08:04:21 2011
@@ -80,6 +80,13 @@ under the License.
             ${extraHead}
         </#list>
     </#if>
+    <#if layoutSettings.WEB_ANALYTICS?has_content>
+      <script language="JavaScript" type="text/javascript">
+        <#list layoutSettings.WEB_ANALYTICS as webAnalyticsConfig>
+          ${StringUtil.wrapString(webAnalyticsConfig.webAnalyticsCode?if_exists)}
+        </#list>
+      </script>
+    </#if>
 </head>
 <#if layoutSettings.headerImageLinkUrl?exists>
   <#assign logoLinkURL = "${layoutSettings.headerImageLinkUrl}">

Modified: ofbiz/branches/jackrabbit20100709/themes/tomahawk/webapp/tomahawk/css/style.css
URL: http://svn.apache.org/viewvc/ofbiz/branches/jackrabbit20100709/themes/tomahawk/webapp/tomahawk/css/style.css?rev=1207005&r1=1207004&r2=1207005&view=diff
==============================================================================
--- ofbiz/branches/jackrabbit20100709/themes/tomahawk/webapp/tomahawk/css/style.css (original)
+++ ofbiz/branches/jackrabbit20100709/themes/tomahawk/webapp/tomahawk/css/style.css Mon Nov 28 08:04:21 2011
@@ -957,7 +957,7 @@ height:100%;
 }
 
 #org-logo-area {
-width:385px;
+width:auto;
 height:50px;
 }
 
@@ -2137,7 +2137,7 @@ display: none;
 #masthead ul li.last-system-msg{
 color:#FFFFFF;
 padding-left:10px;
-float: right;
+float: left;
 margin-right: 20px;
 }