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/11/25 10:30:44 UTC

svn commit: r1206093 - in /ofbiz/trunk/specialpurpose/scrum: config/scrumUiLabels.xml webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy widget/CommonScreens.xml widget/ResourceForms.xml widget/ResourceScreens.xml widget/scrumMenus.xml

Author: hansbak
Date: Fri Nov 25 09:30:42 2011
New Revision: 1206093

URL: http://svn.apache.org/viewvc?rev=1206093&view=rev
Log:
fix for the preference screen in scrum as reported in https://issues.apache.org/jira/browse/OFBIZ-4586

Added:
    ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy   (with props)
Modified:
    ofbiz/trunk/specialpurpose/scrum/config/scrumUiLabels.xml
    ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml
    ofbiz/trunk/specialpurpose/scrum/widget/ResourceForms.xml
    ofbiz/trunk/specialpurpose/scrum/widget/ResourceScreens.xml
    ofbiz/trunk/specialpurpose/scrum/widget/scrumMenus.xml

Modified: ofbiz/trunk/specialpurpose/scrum/config/scrumUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/config/scrumUiLabels.xml?rev=1206093&r1=1206092&r2=1206093&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/config/scrumUiLabels.xml (original)
+++ ofbiz/trunk/specialpurpose/scrum/config/scrumUiLabels.xml Fri Nov 25 09:30:42 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>

Added: ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy?rev=1206093&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy (added)
+++ ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy Fri Nov 25 09:30:42 2011
@@ -0,0 +1,172 @@
+/*
+* 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.
+*/
+
+import org.ofbiz.entity.condition.*;
+import org.ofbiz.base.util.*;
+import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityOperator;
+import javolution.util.FastList;
+
+partyId = parameters.partyId;
+
+andCond = FastList.newInstance();
+orCond = FastList.newInstance();
+combinedCondList = FastList.newInstance();
+
+andCond.add(EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, partyId));
+andCond.add(EntityCondition.makeCondition("partyStatusId", EntityOperator.EQUALS, "PARTY_ENABLED"));
+
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_PRODUCT_OWNER"));
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_MASTER"));
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_TEAM"));
+orCond.add(EntityCondition.makeCondition("enabled", EntityOperator.EQUALS, "Y"));
+orCond.add(EntityCondition.makeCondition("enabled", EntityOperator.EQUALS, null));
+
+orCondList = EntityCondition.makeCondition(orCond, EntityOperator.OR);
+andCondList = EntityCondition.makeCondition(andCond, EntityOperator.AND);
+
+combinedCondList.add(orCondList);
+combinedCondList.add(andCondList);
+
+combinedConds = EntityCondition.makeCondition(combinedCondList, EntityOperator.AND);
+
+scrumUserLoginSecurityGroupList = delegator.findList("ScrumMemberUserLoginAndSecurityGroup", combinedConds, null, null, null, false);
+userPreferenceList = [];
+userPreferenceOutList = [];
+if (scrumUserLoginSecurityGroupList) {
+    scrumUserLoginSecurityGroupList.each { scrumUserLoginSecurityGroupMap ->
+        if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_PRODUCT_OWNER") {
+            ownerCond = FastList.newInstance();
+            ownerCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            ownerCond.add(EntityCondition.makeCondition("enumId", EntityOperator.NOT_EQUAL, "MASTER_NOTIFY"));
+            ownerConds = EntityCondition.makeCondition(ownerCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , ownerConds, null, null, null, false);
+        } else if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_MASTER") {
+            masterCond = FastList.newInstance();
+            masterCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            masterCond.add(EntityCondition.makeCondition("enumId", EntityOperator.EQUALS, "MASTER_NOTIFY"));
+            masterConds = EntityCondition.makeCondition(masterCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , masterConds, null, null, null, false);
+        } /*else if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_TEAM") {
+            teamCond = FastList.newInstance();
+            teamCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            teamCond.add(EntityCondition.makeCondition("enumId", EntityOperator.EQUALS, "INVITE_NOTIFI"));
+            teamConds = EntityCondition.makeCondition(teamCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , teamConds, null, null, null, false);
+        }*/
+        if (userPreferenceList) {
+            userPreferenceList.each { userPreferenceMap ->
+                userPreferenceOutList.add(userPreferenceMap);
+            }
+        }
+    }
+    context.userPreferenceList = userPreferenceOutList;
+} else {
+        if (security.hasEntityPermission("SCRUM", "_ADMIN", session)) {
+            userPreferenceList = delegator.findByAnd("Enumeration", [enumTypeId : "SCRUM_PREFERENCE"], ["sequenceId"]);
+            context.userPreferenceList = userPreferenceList;
+        }
+    }
+/*
+* 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.
+*/
+
+import org.ofbiz.entity.condition.*;
+import org.ofbiz.base.util.*;
+import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityOperator;
+import javolution.util.FastList;
+
+partyId = parameters.partyId;
+
+andCond = FastList.newInstance();
+orCond = FastList.newInstance();
+combinedCondList = FastList.newInstance();
+
+andCond.add(EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, partyId));
+andCond.add(EntityCondition.makeCondition("partyStatusId", EntityOperator.EQUALS, "PARTY_ENABLED"));
+
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_PRODUCT_OWNER"));
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_MASTER"));
+orCond.add(EntityCondition.makeCondition("groupId", EntityOperator.EQUALS, "SCRUM_TEAM"));
+orCond.add(EntityCondition.makeCondition("enabled", EntityOperator.EQUALS, "Y"));
+orCond.add(EntityCondition.makeCondition("enabled", EntityOperator.EQUALS, null));
+
+orCondList = EntityCondition.makeCondition(orCond, EntityOperator.OR);
+andCondList = EntityCondition.makeCondition(andCond, EntityOperator.AND);
+
+combinedCondList.add(orCondList);
+combinedCondList.add(andCondList);
+
+combinedConds = EntityCondition.makeCondition(combinedCondList, EntityOperator.AND);
+
+scrumUserLoginSecurityGroupList = delegator.findList("ScrumMemberUserLoginAndSecurityGroup", combinedConds, null, null, null, false);
+userPreferenceList = [];
+userPreferenceOutList = [];
+if (scrumUserLoginSecurityGroupList) {
+    scrumUserLoginSecurityGroupList.each { scrumUserLoginSecurityGroupMap ->
+        if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_PRODUCT_OWNER") {
+            ownerCond = FastList.newInstance();
+            ownerCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            ownerCond.add(EntityCondition.makeCondition("enumId", EntityOperator.NOT_EQUAL, "MASTER_NOTIFY"));
+            ownerConds = EntityCondition.makeCondition(ownerCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , ownerConds, null, null, null, false);
+        } else if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_MASTER") {
+            masterCond = FastList.newInstance();
+            masterCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            masterCond.add(EntityCondition.makeCondition("enumId", EntityOperator.EQUALS, "MASTER_NOTIFY"));
+            masterConds = EntityCondition.makeCondition(masterCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , masterConds, null, null, null, false);
+        } /*else if (scrumUserLoginSecurityGroupMap.groupId == "SCRUM_TEAM") {
+            teamCond = FastList.newInstance();
+            teamCond.add(EntityCondition.makeCondition("enumTypeId", EntityOperator.EQUALS, "SCRUM_PREFERENCE"));
+            teamCond.add(EntityCondition.makeCondition("enumId", EntityOperator.EQUALS, "INVITE_NOTIFI"));
+            teamConds = EntityCondition.makeCondition(teamCond, EntityOperator.AND);
+            userPreferenceList = delegator.findList("Enumeration" , teamConds, null, null, null, false);
+        }*/
+        if (userPreferenceList) {
+            userPreferenceList.each { userPreferenceMap ->
+                userPreferenceOutList.add(userPreferenceMap);
+            }
+        }
+    }
+    context.userPreferenceList = userPreferenceOutList;
+} else {
+        if (security.hasEntityPermission("SCRUM", "_ADMIN", session)) {
+            userPreferenceList = delegator.findByAnd("Enumeration", [enumTypeId : "SCRUM_PREFERENCE"], ["sequenceId"]);
+            context.userPreferenceList = userPreferenceList;
+        }
+    }

Propchange: ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/specialpurpose/scrum/webapp/scrum/WEB-INF/actions/ListScrumPreferenceSecurityGroup.groovy
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml?rev=1206093&r1=1206092&r2=1206093&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/scrum/widget/CommonScreens.xml Fri Nov 25 09:30:42 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/trunk/specialpurpose/scrum/widget/ResourceForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/ResourceForms.xml?rev=1206093&r1=1206092&r2=1206093&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/ResourceForms.xml (original)
+++ ofbiz/trunk/specialpurpose/scrum/widget/ResourceForms.xml Fri Nov 25 09:30:42 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/trunk/specialpurpose/scrum/widget/ResourceScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/ResourceScreens.xml?rev=1206093&r1=1206092&r2=1206093&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/ResourceScreens.xml (original)
+++ ofbiz/trunk/specialpurpose/scrum/widget/ResourceScreens.xml Fri Nov 25 09:30:42 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/trunk/specialpurpose/scrum/widget/scrumMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/scrum/widget/scrumMenus.xml?rev=1206093&r1=1206092&r2=1206093&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/scrum/widget/scrumMenus.xml (original)
+++ ofbiz/trunk/specialpurpose/scrum/widget/scrumMenus.xml Fri Nov 25 09:30:42 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"/>