svn commit: r728389 [1/4] - in /ofbiz/trunk: framework/common/data/ framework/common/entitydef/ framework/common/script/org/ofbiz/common/ framework/common/servicedef/ framework/common/webcommon/WEB-INF/ framework/common/webcommon/portal/ framework/comm...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r728389 [1/4] - in /ofbiz/trunk: framework/common/data/ framework/common/entitydef/ framework/common/script/org/ofbiz/common/ framework/common/servicedef/ framework/common/webcommon/WEB-INF/ framework/common/webcommon/portal/ framework/comm...

hansbak-2
Author: hansbak
Date: Sat Dec 20 20:40:27 2008
New Revision: 728389

URL: http://svn.apache.org/viewvc?rev=728389&view=rev
Log:
First version of the myportal component as a replacement of the MyPage component as announced in issue OFBIZ-2052 now using the new portal functions. Introduced with this version is that the system pages (userLogin=_NA_) are never changed, but automatically a new page is created for the logged in user when he modifies the system page. The deletion function now returns to the system page design

Added:
    ofbiz/trunk/specialpurpose/myportal/
    ofbiz/trunk/specialpurpose/myportal/config/
    ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/data/
    ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/script/
    ofbiz/trunk/specialpurpose/myportal/script/org/
    ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/
    ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/
    ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/servicedef/
    ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/templates/
    ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl   (with props)
    ofbiz/trunk/specialpurpose/myportal/templates/email/
    ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl   (with props)
    ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/
    ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/
    ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp   (with props)
    ofbiz/trunk/specialpurpose/myportal/widget/
    ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/widget/MyPortalForms.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/widget/MyPortalMenus.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/widget/MyPortalScreens.xml   (with props)
    ofbiz/trunk/specialpurpose/myportal/widget/RequestForms.xml   (with props)
Modified:
    ofbiz/trunk/framework/common/data/PortalDemoData.xml
    ofbiz/trunk/framework/common/entitydef/entitymodel.xml
    ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml
    ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
    ofbiz/trunk/framework/common/servicedef/services.xml
    ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml
    ofbiz/trunk/framework/common/webcommon/portal/appheader.ftl
    ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
    ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
    ofbiz/trunk/framework/common/widget/PortalPageForms.xml
    ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
    ofbiz/trunk/framework/example/widget/example/CommonScreens.xml
    ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml
    ofbiz/trunk/specialpurpose/component-load.xml

Modified: ofbiz/trunk/framework/common/data/PortalDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/PortalDemoData.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/data/PortalDemoData.xml (original)
+++ ofbiz/trunk/framework/common/data/PortalDemoData.xml Sat Dec 20 20:40:27 2008
@@ -20,7 +20,7 @@
 
 <entity-engine-xml>
     <!-- PortalPortlet Demo Data -->
-    <PortalPage portalPageId="DEFAULT" portalName="Default home Portal Page" description="The default OFBiz portal page" ownerUserLoginId="admin"/>
+    <PortalPage portalPageId="DEFAULT" portalName="Default home Portal Page" description="The default OFBiz portal page" ownerUserLoginId="admin" originalPortalPageId="EXAMPLE"/>
     <PortalPageColumn portalPageId="DEFAULT" columnSeqId="01" columnWidthPixels="200"/>
     <PortalPageColumn portalPageId="DEFAULT" columnSeqId="02"/><!-- no width in pixels or percent, use the rest of the space available -->
     

Modified: ofbiz/trunk/framework/common/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/entitydef/entitymodel.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/common/entitydef/entitymodel.xml Sat Dec 20 20:40:27 2008
@@ -575,6 +575,7 @@
         <field name="portalName" type="name"></field>
         <field name="description" type="description"></field>
         <field name="ownerUserLoginId" type="id"></field>
+        <field name="originalPortalPageId" type="id"></field>
         <field name="sequenceNum" type="numeric"></field>
         <prim-key field="portalPageId"/>
     </entity>

Modified: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml (original)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml Sat Dec 20 20:40:27 2008
@@ -70,4 +70,69 @@
             </iterate-map>
         </if-not-empty>
     </simple-method>
+    
+    <!--Create simple-method of copyOriginalPage-->
+    <simple-method method-name="copyOriginalPage" short-description="">
+        <set field="mainPortalPageId" value="MAINMYPORTAL"/>
+        <entity-and entity-name="PortalPage" list-name="getMainPage">
+            <field-map field-name="originalPortalPageId" env-name="mainPortalPageId"/>
+            <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
+        </entity-and>
+        <if-empty field="getMainPage">
+        <set field="portalPageId" from-field="parameters.portalPageId"/>
+            <if-compare field="portalPageId" value="MYPORTAL" operator="equals">
+                <entity-and entity-name="PortalPage" use-cache="true" list-name="getNA">
+                    <field-map field-name="ownerUserLoginId" value="_NA_"/>
+                </entity-and>
+                <first-from-list entry-name="getNA" list-name="getNA"/>
+                <make-value entity-name="PortalPage" value-name="getPortalPageAll" map-name="test"/>
+                <set field="test.portalName" from-field="getNA.portalName"/>
+                <set field="test.description" from-field="getNA.description"/>
+                <set field="test.ownerUserLoginId" from-field="userLogin.userLoginId"/>
+                <set field="test.originalPortalPageId" value="MAINMYPORTAL"/>
+                <set-pk-fields map-name="test" value-name="getPortalPageAll"/>
+                <make-next-seq-id value-name="getPortalPageAll" seq-field-name="portalPageId"/>
+                <set-nonpk-fields map-name="test" value-name="getPortalPageAll"/>
+                <create-value value-name="getPortalPageAll"/>
+                <set field="portalPageId" from-field="getPortalPageAll.portalPageId"/>
+                <field-to-request field-name="portalPageId" request-name="portalPageId"/>
+                
+                <entity-and entity-name="PortalPageColumn" use-cache="true"
+                    list-name="portalPageColumnList">
+                    <field-map field-name="portalPageId" env-name="getNA.portalPageId"/>
+                </entity-and>
+                <iterate entry-name="portalPageColumnList" list-name="portalPageColumnList">
+                    <make-value entity-name="PortalPageColumn" value-name="PortalPageColumn"
+                        map-name="column"/>
+                    <set field="column.portalPageId" from-field="getPortalPageAll.portalPageId"/>
+                    <set field="column.columnSeqId" from-field="portalPageColumnList.columnSeqId"/>
+                    <set-pk-fields map-name="column" value-name="PortalPageColumn"/>
+                    <set-nonpk-fields map-name="column" value-name="PortalPageColumn"/>
+                    <create-value value-name="PortalPageColumn"/>
+                    
+                    <entity-and entity-name="PortalPagePortlet" use-cache="true"
+                        list-name="PortalPagePortlet">
+                        <field-map field-name="portalPageId" env-name="getNA.portalPageId"/>
+                        <field-map field-name="columnSeqId" env-name="PortalPageColumn.columnSeqId"
+                        />
+                    </entity-and>
+                    <iterate entry-name="PortalPagePortlet" list-name="PortalPagePortlet">
+                        <make-value entity-name="PortalPagePortlet" value-name="PortletView"
+                            map-name="portlet"/>
+                        <set field="portlet.portalPageId" from-field="PortalPageColumn.portalPageId"/>
+                        <set field="portlet.portalPortletId"
+                            from-field="PortalPagePortlet.portalPortletId"/>
+                        <set field="portlet.columnSeqId" from-field="PortalPageColumn.columnSeqId"/>
+                        <set field="portlet.portletSeqId"
+                            from-field="PortalPagePortlet.portletSeqId"/>
+                        <set field="portlet.sequenceNum" from-field="PortalPagePortlet.sequenceNum"/>
+                        
+                        <set-pk-fields map-name="portlet" value-name="PortletView"/>
+                        <set-nonpk-fields map-name="portlet" value-name="PortletView"/>
+                        <create-value value-name="PortletView"/>
+                    </iterate>
+                </iterate>
+            </if-compare>
+        </if-empty>
+    </simple-method>    
 </simple-methods>

Modified: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml (original)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml Sat Dec 20 20:40:27 2008
@@ -121,20 +121,69 @@
     </simple-method>
     
     <simple-method method-name="deletePortalPage" short-description="Delete a Portal Page">
-        <entity-one entity-name="PortalPage" value-name="portalPage" auto-field-map="true" use-cache="true"/>
+        <if-compare field="parameters.portalPageId" value="MYPORTAL" operator="not-equals">
+            <entity-one entity-name="PortalPage" value-name="portalPage" auto-field-map="true" use-cache="true"/>
         
-        <if-not-empty field="portalPage">
-            <entity-and entity-name="PortalPageColumn" list-name="portalPageColumnList">
-                <field-map field-name="portalPageId" env-name="portalPage.portalPageId"/>
-            </entity-and>
+            <if-not-empty field="portalPage">
+                <entity-and entity-name="PortalPageColumn" list-name="portalPageColumnList">
+                    <field-map field-name="portalPageId" env-name="portalPage.portalPageId"/>
+                </entity-and>
             
-            <iterate list-name="portalPageColumnList" entry-name="portalPageColumn">
-                <set-service-fields service-name="deletePortalPageColumn" to-map-name="deletePortalPageColumnInMap" map-name="portalPageColumn"/>
-                <call-service service-name="deletePortalPageColumn" in-map-name="deletePortalPageColumnInMap"/>
-            </iterate>
+                <iterate list-name="portalPageColumnList" entry-name="portalPageColumn">
+                    <set-service-fields service-name="deletePortalPageColumn" to-map-name="deletePortalPageColumnInMap" map-name="portalPageColumn"/>
+                    <call-service service-name="deletePortalPageColumn" in-map-name="deletePortalPageColumnInMap"/>
+                </iterate>
             
-            <remove-value value-name="portalPage"/>
-        </if-not-empty>
-        
+                <remove-value value-name="portalPage"/>
+            </if-not-empty>
+        </if-compare>
     </simple-method>
+    
+    <!--Create simple-method of getListPreferences-->
+    <simple-method method-name="getListPreferences" short-description="">
+        <if-compare field="parameters.originalPortalPageId" value="EXAMPLE" operator="equals">
+            <entity-and entity-name="PortalPage" list-name="PortalPageList">
+                <field-map field-name="originalPortalPageId" env-name="parameters.originalPortalPageId"/>
+                <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
+            </entity-and>
+            <else>
+                <set field="mainPortalPageId" value="MAINMYPORTAL"/>
+                <entity-and entity-name="PortalPage" list-name="getMainPage">
+                    <field-map field-name="originalPortalPageId" env-name="mainPortalPageId"/>
+                    <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
+                </entity-and>
+                <if-empty field="getMainPage">
+                    <entity-condition entity-name="PortalPage" list-name="PortalPageList">
+                        <condition-list combine="and">
+                            <condition-list combine="or">
+                                <condition-expr field-name="originalPortalPageId" operator="equals" env-name="parameters.originalPortalPageId"/>
+                                <condition-expr field-name="originalPortalPageId" operator="equals" value="_NA_"/>
+                            </condition-list>
+                            <condition-list combine="or">
+                                <condition-expr field-name="ownerUserLoginId" operator="equals" env-name="userLogin.userLoginId"/>
+                                <condition-expr field-name="ownerUserLoginId" operator="equals" value="_NA_"/>
+                            </condition-list>
+                        </condition-list>
+                        <order-by field-name="createdStamp"/>
+                    </entity-condition>
+                </if-empty>
+                <if-not-empty field="getMainPage">
+                    <entity-condition entity-name="PortalPage" list-name="PortalPageList">
+                        <condition-list combine="and">
+                            <condition-list combine="or">
+                                <condition-expr field-name="originalPortalPageId" operator="equals" env-name="parameters.originalPortalPageId"/>
+                                <condition-expr field-name="originalPortalPageId" operator="equals" value="MAINMYPORTAL"/>
+                            </condition-list>
+                            <condition-list combine="or">
+                                <condition-expr field-name="ownerUserLoginId" operator="equals" env-name="userLogin.userLoginId"/>
+                            </condition-list>
+                        </condition-list>
+                        <order-by field-name="createdStamp"/>
+                    </entity-condition>
+                </if-not-empty>
+            </else>
+        </if-compare>
+        <list-to-list list-name="PortalPageList" to-list-name="result"/>
+        <field-to-result field-name="result" result-name="listIt"/>
+    </simple-method>  
 </simple-methods>

Modified: ofbiz/trunk/framework/common/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/servicedef/services.xml (original)
+++ ofbiz/trunk/framework/common/servicedef/services.xml Sat Dec 20 20:40:27 2008
@@ -650,4 +650,12 @@
         <attribute name="portletSeqId" type="String" mode="IN" optional="false"/>
         <attribute name="attributeMap" type="Map" mode="OUT" optional="true"/>
     </service>
+    
+    <!-- GetListPreferences services -->
+    <service name="getListPreferences" engine="simple" auth="true"
+        location="org/ofbiz/common/PortalPageServices.xml" invoke="getListPreferences">
+        <description>GetListPreferences</description>
+        <attribute name="originalPortalPageId" type="String" mode="IN" optional="false"/>
+        <attribute name="listIt" type="List" mode="OUT" optional="true"/>
+    </service>
 </services>

Modified: ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml (original)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml Sat Dec 20 20:40:27 2008
@@ -26,6 +26,7 @@
     <!-- Portal requests -->
     <request-map uri="dashboard">
         <security https="true" auth="true"/>
+        <event  type="simple" invoke="copyOriginalPage" path="org/ofbiz/common/PortalPageMethods.xml"/>
         <response name="success" type="view" value="dashboard"/>
     </request-map>
     <request-map uri="ManagePortalPages">

Modified: ofbiz/trunk/framework/common/webcommon/portal/appheader.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/portal/appheader.ftl?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/portal/appheader.ftl (original)
+++ ofbiz/trunk/framework/common/webcommon/portal/appheader.ftl Sat Dec 20 20:40:27 2008
@@ -31,7 +31,7 @@
         </#list>
         <li class="opposed"><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
         <#--li class="opposed"><a href="http://docs.ofbiz.org/display/OFBENDUSER/My+Page?decorator=printable" target="_blank">${uiLabelMap.CommonHelp}</a></li>-->
-        <li class="opposed"><a href="<@ofbizUrl>ManagePortalPages</@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
+        <li class="opposed"><a href="<@ofbizUrl>ManagePortalPages?originalPortalPageId=${originalPortalPageId}</@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
     <#else>
         <li class="opposed"><a href="<@ofbizUrl>${checkLoginUrl?if_exists}</@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
     </#if>

Modified: ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl (original)
+++ ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl Sat Dec 20 20:40:27 2008
@@ -45,7 +45,7 @@
               <tr>
                 <td>
                   <div class="h2">
-                    <a href="<@ofbizUrl>createPortalPagePortlet?portalPortletId=${portalPortlet.portalPortletId}&amp;portalPageId=${parameters.portalPageId}&amp;columnSeqId=${parameters.columnSeqId}&amp;configurePortalPage=true</@ofbizUrl>">${portalPortlet.portletName}</a>
+                    <a href="<@ofbizUrl>createPortalPagePortlet?portalPortletId=${portalPortlet.portalPortletId}&amp;portalPageId=${parameters.portalPageId}&amp;columnSeqId=${parameters.columnSeqId}&amp;configurePortalPage=true&amp;originalPortalPageId=${parameters.originalPortalPageId}</@ofbizUrl>">${portalPortlet.portletName}</a>
                   </div>
                   <div class="tabletext">
                     ${portalPortlet.description}

Modified: ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl (original)
+++ ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl Sat Dec 20 20:40:27 2008
@@ -18,36 +18,28 @@
 -->
 
 <#if currentPortalPage?has_content>
-
-<div id="manage-portal-toolbar">
-  <ul>
-    <#if currentPortalPage.portalName?has_content>
-      <li id="portal-page-name">
-        ${currentPortalPage.portalName}
-      </li>
-    </#if>
-
     <#if configurePortalPage?has_content>
-      <li id="add-column">
-        <a href="<@ofbizUrl>addPortalPageColumn?portalPageId=${currentPortalPage.portalPageId}&configurePortalPage=true</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonAddColumn}</a>
-      </li>
+ <div id="manage-portal-toolbar">
+   <ul>
+       <li id="add-column">
+         <a href="<@ofbizUrl>addPortalPageColumn?portalPageId=${currentPortalPage.portalPageId}&configurePortalPage=true&originalPortalPageId=${parameters.originalPortalPageId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonAddColumn}</a>
+       </li>
+   </ul>
+   <br class="clear"/>
+ </div>
     </#if>
 
-  </ul>
-  <br class="clear"/>
-</div>
-
 <table width="100%">
   <#if configurePortalPage?has_content>
-    <tr>
+    <tr>
       <#list portalPageColumnList?if_exists as portalPageColumn>
         <td class="manage-portal-column-toolbar">
           <ul>
             <li id="delete-column">
-              <a href="<@ofbizUrl>deletePortalPageColumn?portalPageId=${currentPortalPage.portalPageId}&columnSeqId=${portalPageColumn.columnSeqId}&configurePortalPage=true</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonDelete}</a>
+              <a href="<@ofbizUrl>deletePortalPageColumn?portalPageId=${currentPortalPage.portalPageId}&columnSeqId=${portalPageColumn.columnSeqId}&configurePortalPage=true&originalPortalPageId=${parameters.originalPortalPageId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonDelete}</a>
             </li>
             <li id="add-portlet">
-              <a href="<@ofbizUrl>AddPortlet?portalPageId=${currentPortalPage.portalPageId}&columnSeqId=${portalPageColumn.columnSeqId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonAddAPortlet}</a>
+              <a href="<@ofbizUrl>AddPortlet?portalPageId=${currentPortalPage.portalPageId}&columnSeqId=${portalPageColumn.columnSeqId}&originalPortalPageId=${parameters.originalPortalPageId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonAddAPortlet}</a>
             </li>
           </ul>
         </td>
@@ -65,7 +57,7 @@
         <#if (!portlet.columnSeqId?has_content && portalPageColumn_index == 0) || (portlet.columnSeqId?if_exists == portalPageColumn.columnSeqId)>
           <#if portlet.screenName?has_content>
             <#if configurePortalPage?has_content>
-              <#assign portletUrlLink = "portalPageId="+currentPortalPage.portalPageId+"&amp;portalPortletId="+portlet.portalPortletId+"&amp;portletSeqId="+portlet.portletSeqId+"&amp;configurePortalPage=true" />
+              <#assign portletUrlLink = "portalPageId="+currentPortalPage.portalPageId+"&amp;portalPortletId="+portlet.portalPortletId+"&amp;portletSeqId="+portlet.portletSeqId+"&amp;configurePortalPage=true&amp;originalPortalPageId="+parameters.originalPortalPageId/>
       
               <div class="portlet-config">
               <div class="portlet-config-title-bar">

Modified: ofbiz/trunk/framework/common/widget/PortalPageForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortalPageForms.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortalPageForms.xml (original)
+++ ofbiz/trunk/framework/common/widget/PortalPageForms.xml Sat Dec 20 20:40:27 2008
@@ -24,15 +24,14 @@
     <form name="ListPortalPages" type="list" list-name="listIt" paginate-target="ManagePortalPages" default-entity-name="PortalPage" separate-columns="true"
         odd-row-style="alternate-row" header-row-style="header-row-2" default-table-style="basic-table hover-bar">
         <actions>
-            <set field="sortField" from-field="parameters.sortField" default-value="portalPageId"/>
-            <entity-and entity-name="PortalPage" use-cache="true" list-name="listIt">
-                <field-map env-name="userLogin.userLoginId" field-name="ownerUserLoginId" />
-                <order-by field-name="${sortField}"/>
-            </entity-and>
+            <set field="sortField" from-field="parameters.sortField" default-value="createdStamp"/>
+            <service service-name="getListPreferences"  result-map-name="listIt" result-map-list-name="listIt">
+                <field-map field-name="originalPortalPageId" env-name="parameters.originalPortalPageId"/>
+            </service>
         </actions>
         
         <field name="portalPageId" title="${uiLabelMap.CommonId}" sort-field="true">
-            <hyperlink description="${portalPageId}" target="dashboard?portalPageId=${portalPageId}&amp;configurePortalPage=true"/>
+            <hyperlink description="${portalPageId}" target="dashboard?portalPageId=${portalPageId}&amp;configurePortalPage=true&amp;originalPortalPageId=${parameters.originalPortalPageId}"/>
         </field>
         <field name="portalName" title="${uiLabelMap.CommonName}" id-name="portalName" widget-style="tabletext" sort-field="true">
             <display>
@@ -50,14 +49,15 @@
                 </in-place-editor>
             </display>
         </field>
-        <field name="deleteLink" title="${uiLabelMap.CommonEmptyHeader}" widget-style="buttontext">
-            <hyperlink target="deletePortalPage?portalPageId=${portalPageId}&amp;ownerUserLoginId=${userLogin.userLoginId}" description="${uiLabelMap.CommonDelete}"/>
+        <field name="deleteLink" title="${uiLabelMap.CommonEmptyHeader}" widget-style="buttontext" >
+            <hyperlink target="deletePortalPage?portalPageId=${portalPageId}&amp;originalPortalPageId=${parameters.originalPortalPageId}" description="${uiLabelMap.CommonDelete}"/>
         </field>
     </form>
     
     <form name="NewPortalPage" type="single" target="createPortalPage" title="" default-map-name="PortalPagemap">
         <actions>
             <set from-field="userLogin.userLoginId" field="ownerUserLoginId"/>
+            <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
         </actions>    
         <auto-fields-service service-name="createPortalPage"/>
         <field name="ownerUserLoginId">
@@ -66,7 +66,9 @@
         <field name="sequenceNum">
             <hidden/>
         </field>
-
+        <field name="originalPortalPageId">
+            <hidden/>
+        </field>
         <field name="portalName" title="${uiLabelMap.CommonName}">
             <text/>
         </field>

Modified: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortalPageScreens.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortalPageScreens.xml (original)
+++ ofbiz/trunk/framework/common/widget/PortalPageScreens.xml Sat Dec 20 20:40:27 2008
@@ -18,30 +18,33 @@
 under the License.
 -->
 
-<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
 
     <screen name="dashboard">
         <section>
             <actions>
-                <set field="portalPageId" from-field="parameters.portalPageId" default-value="DEFAULT"/>
-                <entity-one entity-name="PortalPage" value-name="currentPortalPage"/>                
-                
-                <entity-condition entity-name="PortalPage" list-name="portalPageList">
-                    <condition-expr field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
-                </entity-condition>
-                <set field="portalPages" from-field="portalPageList"/>
-                
+                <set field="portalPageId" from-field="parameters.portalPageId"/>
+                <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
+                <set field="headerItem" from-field="portalPageId"/>
+                <set field="configurePortalPage" from-field="parameters.configurePortalPage"/>
+                <entity-one entity-name="PortalPage" value-name="currentPortalPage"/>    
+                <set field="portalPages[]" from-field="currentPortalPage"/>                
                 <entity-condition entity-name="PortalPageColumn" list-name="portalPageColumnList">
                     <condition-expr field-name="portalPageId" env-name="portalPageId"/>
                     <order-by field-name="columnSeqId"/>
-                </entity-condition>
+                </entity-condition>              
                 <entity-condition entity-name="PortalPagePortletView" list-name="portalPagePortletViewList">
                     <condition-expr field-name="portalPageId" env-name="portalPageId"/>
                     <order-by field-name="sequenceNum"/>
                 </entity-condition>
-                
-                <set field="configurePortalPage" from-field="parameters.configurePortalPage"/>
+                <!--My Profile From Party-->
+                <set field="titleProperty" value="PageTitleViewPartyProfile"/>
+                <set field="tabButtonItem" value="viewprofile"/>
+                <set field="labelTitleProperty" value="PartyTaxAuthInfos"/>
+                <set field="parameters.partyId" from-field="userLogin.userLoginId"/>
+                <script location="component://party/webapp/partymgr/WEB-INF/actions/party/ViewProfile.groovy"/>
+                <script location="component://party/webapp/partymgr/WEB-INF/actions/party/GetUserLoginPrimaryEmail.groovy"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
@@ -57,6 +60,9 @@
 
     <screen name="ManagePortalPages">
         <section>
+            <actions>
+                <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
+            </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
                     <decorator-section name="body">
@@ -71,6 +77,7 @@
     <screen name="AddPortlet">
         <section>
             <actions>
+                <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
                 <entity-condition entity-name="PortalPortlet" list-name="portalPortlets"/>
             </actions>
             <widgets>
@@ -82,10 +89,11 @@
             </widgets>
         </section>
     </screen>
-    
+
     <screen name="EditPortlet">
         <section>
             <actions>
+                <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
                 <entity-one entity-name="PortalPortlet" value-name="portalPortlet"/>
             </actions>
             <widgets>

Modified: ofbiz/trunk/framework/example/widget/example/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/CommonScreens.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/CommonScreens.xml (original)
+++ ofbiz/trunk/framework/example/widget/example/CommonScreens.xml Sat Dec 20 20:40:27 2008
@@ -42,9 +42,12 @@
                 <set field="activeApp" value="example" global="true"/>
                 <!--set field="applicationMenuName" value="ExampleAppBar" global="true"/>
                 <set field="applicationMenuLocation" value="component://example/widget/example/ExampleMenus.xml" global="true"/-->
+                <set field="originalPortalPageId" value="EXAMPLE"/>
                 <set field="appheaderTemplate" value="component://common/webcommon/portal/appheader.ftl"/>                
                 <entity-and entity-name="PortalPage" list-name="pages">
+                    <field-map field-name="originalPortalPageId" env-name="originalPortalPageId"/>
                     <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
+                    <order-by field-name="createdStamp"/>
                 </entity-and>
             </actions>
             <widgets>

Modified: ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml (original)
+++ ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml Sat Dec 20 20:40:27 2008
@@ -152,18 +152,25 @@
     <screen name="DisplayExamplePage">
         <section>
             <actions>
-                <set field="portalPageId" from-field="parameters.portalPageId" default-value="DEFAULT"/>
+                <set field="portalPageId" from-field="parameters.portalPageId"/>
+                <set field="originalPortalPageId" from-field="parameters.originalPortalPageId"/>
                 <set field="headerItem" from-field="portalPageId"/>
                 <entity-one entity-name="PortalPage" value-name="currentPortalPage"/>                
-
                 <entity-condition entity-name="PortalPageColumn" list-name="portalPageColumnList">
                     <condition-expr field-name="portalPageId" env-name="portalPageId"/>
                     <order-by field-name="columnSeqId"/>
-                </entity-condition>
+                </entity-condition>              
                 <entity-condition entity-name="PortalPagePortletView" list-name="portalPagePortletViewList">
                     <condition-expr field-name="portalPageId" env-name="portalPageId"/>
                     <order-by field-name="sequenceNum"/>
                 </entity-condition>
+                <!--My Profile From Party-->
+                <set field="titleProperty" value="PageTitleViewPartyProfile"/>
+                <set field="tabButtonItem" value="viewprofile"/>
+                <set field="labelTitleProperty" value="PartyTaxAuthInfos"/>
+                <set field="parameters.partyId" from-field="userLogin.userLoginId"/>
+                <script location="component://party/webapp/partymgr/WEB-INF/actions/party/ViewProfile.groovy"/>
+                <script location="component://party/webapp/partymgr/WEB-INF/actions/party/GetUserLoginPrimaryEmail.groovy"/>
             </actions>
             <widgets>
                 <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">

Modified: ofbiz/trunk/specialpurpose/component-load.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/component-load.xml?rev=728389&r1=728388&r2=728389&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/component-load.xml (original)
+++ ofbiz/trunk/specialpurpose/component-load.xml Sat Dec 20 20:40:27 2008
@@ -29,6 +29,7 @@
     <load-component component-location="googlebase"/>
     <load-component component-location="ebay"/>
     <load-component component-location="mypage"/>
+    <load-component component-location="myportal"/>
     <load-component component-location="webpos"/>
     <!-- <load-component component-location="workflow"/> -->
     <!-- <load-component component-location="shark"/> -->

Added: ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,24 @@
+<?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.
+-->
+<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <property key="MyPersonalPortal">
+        <value xml:lang="en">My Personal Portal.</value>
+    </property>
+</resource>

Propchange: ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/config/MyPortalUiLabels.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,59 @@
+<?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.
+-->
+<entity-engine-xml>
+
+ <!-- allow admin to read company communications -->
+    <PartyRole partyId="admin" roleTypeId="EMAIL_ADMIN"/>
+    <PartyRelationship partyIdFrom="admin" roleTypeIdFrom="EMAIL_ADMIN" partyIdTo="Company" roleTypeIdTo="_NA_" fromDate="2000-01-01 00:00:00"/>
+
+    <!-- incoming customer request examples -->
+    <CustRequest custRequestId="9000" custRequestTypeId="RF_SUPPORT" statusId="CRQ_SUBMITTED" fromPartyId="DemoCustomer" priority="9" custRequestName="Customer Request Usage" description="Could you please advise us how to use the customer request facility within ofbiz?" productStoreId="9000" createdDate="2008-07-28 11:45:31.928" createdByUserLogin="admin" lastModifiedDate="2008-07-28 11:45:31.928" lastModifiedByUserLogin="admin" lastUpdatedStamp="2008-07-28 11:45:31.984" lastUpdatedTxStamp="2008-07-28 11:45:31.83" createdStamp="2008-07-28 11:45:31.984" createdTxStamp="2008-07-28 11:45:31.83"/>
+    <CustRequest custRequestId="9001" custRequestTypeId="RF_SUPPORT" statusId="CRQ_SUBMITTED" fromPartyId="DemoCustAgent" priority="9" custRequestName="Hardware?" description="Please provide us with the hardware requirements of OFBiz" productStoreId="9000" createdDate="2008-07-28 11:45:31.928" createdByUserLogin="admin" lastModifiedDate="2008-07-28 11:45:31.928" lastModifiedByUserLogin="admin" lastUpdatedStamp="2008-07-28 11:45:31.984" lastUpdatedTxStamp="2008-07-28 11:45:31.83" createdStamp="2008-07-28 11:45:31.984" createdTxStamp="2008-07-28 11:45:31.83"/>
+    <!-- responsible employees -->
+    <CustRequestType custRequestTypeId="RF_SUPPORT" partyId="Company"/>
+    <PartyRole partyId="admin" roleTypeId="REQ_TAKER"/>
+    <PartyRelationship partyIdFrom="Company" roleTypeIdFrom="_NA_" partyIdTo="admin" roleTypeIdTo="REQ_TAKER" fromDate="2000-01-01 00:00:00"/>
+
+    <!-- email from an unknown party -->
+    <CommunicationEvent communicationEventId="9000" communicationEventTypeId="AUTO_EMAIL_COMM" statusId="COM_UNKNOWN_PARTY" contactMechTypeId="EMAIL_ADDRESS" contactMechIdTo="admin" roleTypeIdFrom="_NA_" roleTypeIdTo="_NA_" partyIdTo="admin" entryDate="2008-07-28 13:55:55.827" datetimeStarted="2008-07-28 13:55:19.0" subject="Why i would use the OFBiz system" contentMimeTypeId="text/plain" content="Every time i think of you, only you...you are always on my mind......." note="Sent from: [hidden email]; Sent Name from: Jo Easy User; Sent to: [hidden email]; Delivered-To: [hidden email]; " fromString="[hidden email]" toString="[hidden email]"/>
+    <PartyRole partyId="admin" roleTypeId="ADDRESSEE"/>
+    <CommunicationEventRole communicationEventId="9000" partyId="admin" roleTypeId="ADDRESSEE" contactMechId="admin" statusId="COM_ROLE_CREATED"/>
+    
+    <!-- mypage users -->
+    <!-- demo customer read access to his own customer requests and related tasks including planning and actual hours-->
+    <UserLoginSecurityGroup groupId="MYPORTAL_CUSTOMER" userLoginId="DemoCustomer" fromDate="2000-01-01 00:00:00.0"/>
+    <!-- these customers also have access to the project manager (via rules in the project manager comp) -->
+    <UserLoginSecurityGroup groupId="MYPORTAL_CUSTOMER" userLoginId="DemoCustomer1" fromDate="2000-01-01 00:00:00.0"/>
+    <UserLoginSecurityGroup groupId="MYPORTAL_CUSTOMER" userLoginId="DemoCustomer2" fromDate="2000-01-01 00:00:00.0"/>
+    <UserLoginSecurityGroup groupId="MYPORTAL_CUSTOMER" userLoginId="DemoCustomer3" fromDate="2000-01-01 00:00:00.0"/>
+    <!-- demo employee has limited projectmanager access including timesheets, can read/write comms internal notes but cannot send external email-->
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPL-NOEML" userLoginId="DemoEmployee1" fromDate="2000-01-01 00:00:00.0"/>
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPL-NOEML" userLoginId="DemoEmployee2" fromDate="2000-01-01 00:00:00.0"/>
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPL-NOEML" userLoginId="DemoEmployee3" fromDate="2000-01-01 00:00:00.0"/>
+    <!-- employee have no access to any project -->
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPLOYEE" userLoginId="DemoEmployee" fromDate="2000-01-01 00:00:00.0"/>
+    <!-- admin logins -->
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPLOYEE" userLoginId="admin" fromDate="2000-01-01 00:00:00.0"/>
+    <UserLoginSecurityGroup groupId="MYPORTAL_EMPLOYEE" userLoginId="demoadmin" fromDate="2000-01-01 00:00:00.0"/>
+    
+    <ProductStoreEmailSetting productStoreId="9000" emailType="PRDS_CUST_CONFIRM" bodyScreenLocation="component://myportal/widget/MyPageScreens.xml#CompletedCustRequestNotification" subject="OFBiz - Your Request Is Complete[${custRequestId}]" fromAddress="[hidden email]"/>
+    <ProductStoreEmailSetting productStoreId="9000" emailType="PRDS_CUST_CREATED" bodyScreenLocation="component://myportal/widget/MyPageScreens.xml#CreateCustRequestNotification" subject="OFBiz - Your Request Is Created[${custRequestId}]" fromAddress="[hidden email]"/>
+
+</entity-engine-xml>

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalDemoData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,63 @@
+<?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.
+-->
+<entity-engine-xml>
+
+    <SecurityPermission permissionId="MYPORTAL_EMPLOYEE" description="Use the employee screens in mypage."/>
+    <SecurityGroup description="Employee user of mypage, Limited access to the projectmgr, comms,custRequests" groupId="MYPORTAL_EMPLOYEE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="MYPORTAL_EMPLOYEE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PROJECTMGR_VIEW"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PROJECTMGR_ROLE_VIEW"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PROJECTMGR_ROLE_TASK_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PROJECTMGR_ROLE_TIMESHEET_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PROJECTMGR_ROLE_TIMESHEET_UPDATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_CME_UPDATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_CME_CREATE"/>
+    <!-- be able to create internal notes and email-->
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_CME-EMAIL_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_CME-EMAIL_UPDATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_CME-NOTE_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="PARTYMGR_VIEW"/>
+    <!-- and can create customer request from emails -->
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="ORDERMGR_CRQ_CREATE"/>
+    <!-- and can upload content for email/task/project -->
+    <SecurityGroupPermission groupId="MYPORTAL_EMPLOYEE" permissionId="CONTENTMGR_ROLE_CREATE"/>
+
+    <SecurityPermission permissionId="MYPORTAL_EMPL-NOEML" description="Usage of the employee screens in MYPORTAL: projectmanager and internal notes."/>
+    <SecurityGroup description="Employee user of MYPORTAL, Limited access to the projectmgr and comms, custReq, no email" groupId="MYPORTAL_EMPL-NOEML"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="MYPORTAL_EMPLOYEE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PROJECTMGR_VIEW"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PROJECTMGR_ROLE_VIEW"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PROJECTMGR_ROLE_TASK_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PROJECTMGR_ROLE_TIMESHEET_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PROJECTMGR_ROLE_TIMESHEET_UPDATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PARTYMGR_CME-NOTE_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PARTYMGR_CME_CREATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="PARTYMGR_CME_UPDATE"/>
+    <!-- and can upload content for task/project -->
+    <SecurityGroupPermission groupId="MYPORTAL_EMPL-NOEML" permissionId="CONTENTMGR_ROLE_CREATE"/>
+    
+    <SecurityPermission permissionId="MYPORTAL_CUSTOMER" description="Use the customer screens in MYPORTAL."/>
+    <SecurityGroup description="Customer user of MYPORTAL, Limited access to own custRequests, and project" groupId="MYPORTAL_CUSTOMER"/>
+    <SecurityGroupPermission groupId="MYPORTAL_CUSTOMER" permissionId="PARTYMGR_CME-NOTE_CREATE"/><!-- allow customer to read/write internal notes -->
+    <SecurityGroupPermission groupId="MYPORTAL_CUSTOMER" permissionId="MYPORTAL_CUSTOMER"/>
+    <SecurityGroupPermission groupId="MYPORTAL_CUSTOMER" permissionId="PARTYMGR_CME_UPDATE"/>
+    <SecurityGroupPermission groupId="MYPORTAL_CUSTOMER" permissionId="PROJECTMGR_ROLE_VIEW"/>
+    <SecurityGroupPermission groupId="MYPORTAL_CUSTOMER" permissionId="CONTENTMGR_ROLE_CREATE"/>
+</entity-engine-xml>

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalSecurityData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,73 @@
+<?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.
+-->
+<entity-engine-xml>
+    
+    <WorkEffortType description="Company Events" hasTable="N" parentTypeId="EVENT" workEffortTypeId="COMPANY_EVENT"/>
+    
+    <UserPrefGroupType userPrefGroupTypeId="MyPortal" description="User settings of the MyPortal component"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="myTasks" userPrefValue="Y"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="myTimesheet" userPrefValue="Y"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="myCommunications" userPrefValue="Y"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="otherCommunications" userPrefValue="Y"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="myCompanyComms" userPrefValue="Y"/>
+    <UserPreference userLoginId="_NA_" userPrefGroupTypeId="MyPortal" userPrefTypeId="sendCustRequestEmail" userPrefValue="Y"/>
+    
+    <RoleType description="Email Administrator" hasTable="N" parentTypeId="PERSON_ROLE" roleTypeId="EMAIL_ADMIN"/>
+    
+    <!-- ProductStoreEmailSetting for send auto email to customer when CustRequest completed -->
+    <Enumeration description="Customer Request Created" enumCode="CUST_CREATED" enumId="PRDS_CUST_CREATED" sequenceId="17" enumTypeId="PRDS_EMAIL"/>
+    <Enumeration description="Customer Request Completed" enumCode="CUST_COMPLETE" enumId="PRDS_CUST_CONFIRM" sequenceId="18" enumTypeId="PRDS_EMAIL"/>
+    
+    <!-- PortalPortlet Demo Data -->
+    <PortalPage portalPageId="MYPORTAL" portalName="Main" description="The default OFBiz portal page" ownerUserLoginId="_NA_" originalPortalPageId="_NA_"/>
+    <PortalPageColumn portalPageId="MYPORTAL" columnSeqId="01" />
+    <PortalPageColumn portalPageId="MYPORTAL" columnSeqId="02" />
+    
+    <PortalPortlet portalPortletId="Attributes" portletName="Attributes" screenName="Attributes" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Attributes in myportal from party" />
+    <PortalPortlet portalPortletId="AvsSettings" portletName="Avs Settings" screenName="AvsSettings" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Avs Settings in myportal from party" />
+    <PortalPortlet portalPortletId="Cart" portletName="Cart" screenName="Cart" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Cart in myportal from party" />
+    <PortalPortlet portalPortletId="Content" portletName="Content" screenName="Content" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Content in myportal from party" />
+    <PortalPortlet portalPortletId="FinAccounts" portletName="Fin Accounts" screenName="FinAccounts" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Fin Accounts in myportal from party" />
+    <PortalPortlet portalPortletId="LoyaltyPoints" portletName="Loyalty Points" screenName="LoyaltyPoints" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Loyalty Points in myportal from party" />
+    <PortalPortlet portalPortletId="MYTASKSPARTY" portletName="My Tasks From Party" screenName="mytasksParty" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="My Tasks in myportal from party" />
+    <PortalPortlet portalPortletId="Notes" portletName="Notes" screenName="Notes" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Notes in myportal from party" />
+    <PortalPortlet portalPortletId="PaymentMethods" portletName="Payment Methods" screenName="PaymentMethods" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="PaymentMethods in myportal from party" />
+    <PortalPortlet portalPortletId="SerializedInventory" portletName="Serialized Inventory" screenName="SerializedInventory" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Serialized Inventory in myportal from party"/>
+    <PortalPortlet portalPortletId="ShipperAccount" portletName="Shipper Account" screenName="ShipperAccount" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Shipper Account in myportal from party" />
+    <PortalPortlet portalPortletId="Subscriptions" portletName="Subscriptions" screenName="Subscriptions" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Subscriptions in myportal from party" />
+    <PortalPortlet portalPortletId="UserLogin" portletName="User Login" screenName="UserLogin" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="User Login in myportal from party"/>
+    <PortalPortlet portalPortletId="ViewInternalOrg" portletName="View Internal Org" screenName="ViewInternalOrg" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="View Internal Org in myportal from party" />
+    <PortalPortlet portalPortletId="Visits" portletName="Visits" screenName="Visits" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Visits in myportal from party" />
+    <PortalPortlet portalPortletId="contact" portletName="Contact" screenName="Contact" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="contact in myportal from party" />
+    <PortalPortlet portalPortletId="contactsAndAccounts" portletName="Contacts and Accounts" screenName="contactsAndAccounts" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Contacts and Accounts in myportal from party" />
+    <PortalPortlet portalPortletId="listrequestlist" portletName="List Request List" screenName="ListRequestList" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="List Request List From My Page" />
+    <PortalPortlet portalPortletId="mycommunications" portletName="My Communications" screenName="MyCommunications" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="My Communications From My Page" />
+    <PortalPortlet portalPortletId="mycompanycomms" portletName="My Company Comms" screenName="MyCompanyComms" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="My Company Comms From My Page" />
+    <PortalPortlet portalPortletId="mytasks" portletName="My Tasks" screenName="MyTasks" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="My Tasks From My Page" />
+    <PortalPortlet portalPortletId="mytimesheet" portletName="My Timesheet" screenName="MyTimesheet" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="My Timesheet From My Page" />
+    <PortalPortlet portalPortletId="otherCommunications" portletName="Other Communications" screenName="OtherCommunications" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="Other Communications From My Page" />
+    <PortalPortlet portalPortletId="party" portletName="Party" screenName="Party" screenLocation="component://myportal/widget/MyPortalScreens.xml" description="profile in myportal from party" />    
+    
+    <PortalPagePortlet portalPageId="MYPORTAL" portalPortletId="listrequestlist" portletSeqId="00001" columnSeqId="01" sequenceNum="-2" />
+    <PortalPagePortlet portalPageId="MYPORTAL" portalPortletId="mycommunications" portletSeqId="00001" columnSeqId="02" sequenceNum="-1" />
+    <PortalPagePortlet portalPageId="MYPORTAL" portalPortletId="mycompanycomms" portletSeqId="00001" columnSeqId="02" sequenceNum="0" />
+    <PortalPagePortlet portalPageId="MYPORTAL" portalPortletId="mytasks" portletSeqId="00001" columnSeqId="01" sequenceNum="0" />
+    <PortalPagePortlet portalPageId="MYPORTAL" portalPortletId="otherCommunications" portletSeqId="00001" columnSeqId="01" />
+</entity-engine-xml>

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/data/MyPortalTypeData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,41 @@
+<?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.
+-->
+
+<ofbiz-component name="myportal"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-component.xsd">
+    <resource-loader name="main" type="component"/>
+    <classpath type="dir" location="config"/>
+    <classpath type="dir" location="script"/>
+    
+    <entity-resource type="data" reader-name="seed" loader="main" location="data/MyPortalTypeData.xml"/>
+    <entity-resource type="data" reader-name="seed" loader="main" location="data/MyPortalSecurityData.xml"/>
+    <entity-resource type="data" reader-name="demo" loader="main" location="data/MyPortalDemoData.xml"/>
+    
+    <service-resource type="model" loader="main" location="servicedef/services.xml"/>
+    <service-resource type="eca" loader="main" location="servicedef/secas.xml"/>
+    
+    <webapp name="myportal"
+        title="MyPortal"
+        server="default-server"
+        location="webapp/myportal"
+        mount-point="/myportal"
+        app-bar-display="true"/>
+</ofbiz-component>

Propchange: ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/ofbiz-component.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml?rev=728389&view=auto
==============================================================================
--- ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml (added)
+++ ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml Sat Dec 20 20:40:27 2008
@@ -0,0 +1,332 @@
+<?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.
+-->
+
+<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
+    <simple-method method-name="updatePreferences" short-description="Update the user preferences">
+        <if-compare operator="equals" value="Y" field="parameters.myCompanyComms">
+            <set field="parameters.userPrefMap.myCompanyComms" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.myCompanyComms" value="N"/>
+            </else>
+        </if-compare>
+        <if-compare operator="equals" value="Y" field="parameters.myTimesheet">
+            <set field="parameters.userPrefMap.myTimesheet" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.myTimesheet" value="N"/>
+            </else>
+        </if-compare>
+        <if-compare operator="equals" value="Y" field="parameters.myTasks">
+            <set field="parameters.userPrefMap.myTasks" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.myTasks" value="N"/>
+            </else>
+        </if-compare>
+        <if-compare operator="equals" value="Y" field="parameters.myCommunications">
+            <set field="parameters.userPrefMap.myCommunications" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.myCommunications" value="N"/>
+            </else>
+        </if-compare>
+        <if-compare operator="equals" value="Y" field="parameters.otherCommunications">
+            <set field="parameters.userPrefMap.otherCommunications" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.otherCommunications" value="N"/>
+            </else>
+        </if-compare>
+        <set-service-fields service-name="setUserPreferenceGroup" map-name="parameters"
+            to-map-name="inMap"/>
+        <call-service service-name="setUserPreferenceGroup" in-map-name="inMap"/>
+    </simple-method>
+
+    <simple-method method-name="updateCustPreferences"
+        short-description="Update the customer preferences">
+        <if-compare operator="equals" value="Y" field="parameters.sendCustRequestEmail">
+            <set field="parameters.userPrefMap.sendCustRequestEmail" value="Y"/>
+            <else>
+                <set field="parameters.userPrefMap.sendCustRequestEmail" value="N"/>
+            </else>
+        </if-compare>
+        <set-service-fields service-name="setUserPreferenceGroup" map-name="parameters"
+            to-map-name="inMap"/>
+        <call-service service-name="setUserPreferenceGroup" in-map-name="inMap"/>
+    </simple-method>
+
+    <simple-method method-name="setCommEventToRead" short-description="">
+        <entity-one entity-name="CommunicationEventRole" value-name="eventRole"/>
+        <if-compare operator="equals" value="COM_ROLE_CREATED" field="eventRole.statusId">
+            <call-simple-method method-name="checkCommEventAccess"/>
+            <if-compare operator="equals" value="true" field="found">
+                <entity-one entity-name="UserLogin" value-name="userLogin">
+                    <field-map field-name="userLoginId" value="system"/>
+                </entity-one>
+                <set-service-fields service-name="setCommunicationEventRoleStatus"
+                    map-name="parameters" to-map-name="updStat"/>
+                <set field="updStat.statusId" value="COM_ROLE_READ"/>
+                <set field="updStat.userLogin" from-field="userLogin"/>
+                <call-service service-name="setCommunicationEventRoleStatus" in-map-name="updStat"
+                    include-user-login="false"/>
+                <else>
+                    <add-error>
+                        <fail-property property="NoAccess" resource="MyPageUiLabels"/>
+                    </add-error>
+                </else>
+            </if-compare>
+        </if-compare>
+    </simple-method>
+
+    <simple-method method-name="checkCommEventAccess"
+        short-description="check if the user has access to the email of this party">
+        <set field="found" value="false"/>
+        <if-compare-field operator="not-equals" field="parameters.partyId"
+            to-field="userLogin.partyId">
+            <entity-and list-name="emailOwners" entity-name="PartyRelationship"
+                filter-by-date="true">
+                <field-map field-name="partyIdFrom" value="${userLogin.partyId}"/>
+                <field-map field-name="roleTypeIdFrom" value="EMAIL_ADMIN"/>
+            </entity-and>
+            <iterate entry-name="emailOwners" list-name="emailOwner">
+                <if-compare operator="equals" value="${userLogin.partyId}"
+                    field="emailOwner.partyIdTo">
+                    <set field="found" value="true"/>
+                </if-compare>
+            </iterate>
+            <else>
+                <set field="found" value="true"/>
+            </else>
+        </if-compare-field>
+    </simple-method>
+    <simple-method method-name="createCommunicationEventRoles" short-description="">
+        <entity-condition list-name="commEvents" entity-name="CommunicationEvent"/>
+        <set field="count" value="0" type="Integer"/>
+        <iterate entry-name="commEvent" list-name="commEvents">
+            <log level="always" message="====processing: ${commEvent.communicationEventId}"/>
+            <get-related value-name="commEvent" relation-name="CommunicationEventRole"
+                list-name="roles"/>
+            <if-empty field="roles">
+                <!--partyId To -->
+                <if-not-empty field="commEvent.partyIdTo">
+                    <entity-one entity-name="PartyRole" value-name="partyRole">
+                        <field-map field-name="partyId" value="${commEvent.partyIdTo}"/>
+                        <field-map field-name="roleTypeId" value="ADDRESSEE"/>
+                    </entity-one>
+                    <if-empty field="partyRole">
+                        <make-value entity-name="PartyRole" value-name="partyRole"/>
+                        <set field="partyRole.partyId" value="${commEvent.partyIdTo}"/>
+                        <set field="partyRole.roleTypeId" value="ADDRESSEE"/>
+                        <create-value value-name="partyRole"/>
+                    </if-empty>
+                    <make-value entity-name="CommunicationEventRole" value-name="commRole"/>
+                    <set field="commRole.communicationEventId"
+                        from-field="commEvent.communicationEventId"/>
+                    <set field="commRole.partyId" from-field="commEvent.partyIdTo"/>
+                    <set field="commRole.roleTypeId" value="ADDRESSEE"/>
+                    <set field="commRole.statusId" value="COM_ROLE_COMPLETED"/>
+                    <create-value value-name="commRole"/>
+                </if-not-empty>
+
+                <!-- partyIdFrom -->
+                <if-not-empty field="commEvent.partyIdFrom">
+                    <entity-one entity-name="PartyRole" value-name="partyRole">
+                        <field-map field-name="partyId" value="${commEvent.partyIdFrom}"/>
+                        <field-map field-name="roleTypeId" value="ORIGINATOR"/>
+                    </entity-one>
+                    <if-empty field="partyRole">
+                        <make-value entity-name="PartyRole" value-name="partyRole"/>
+                        <set field="partyRole.partyId" value="${commEvent.partyIdFrom}"/>
+                        <set field="partyRole.roleTypeId" value="ORIGINATOR"/>
+                        <create-value value-name="partyRole"/>
+                    </if-empty>
+                    <set field="commRole.communicationEventId"
+                        from-field="commEvent.communicationEventId"/>
+                    <set field="commRole.partyId" from-field="commEvent.partyIdFrom"/>
+                    <set field="commRole.roleTypeId" value="ORIGINATOR"/>
+                    <set field="commRole.statusId" value="COM_ROLE_COMPLETED"/>
+                    <create-value value-name="commRole"/>
+                </if-not-empty>
+                <calculate field-name="count">
+                    <number value="1"/>
+                    <calcop operator="add" field-name="count"/>
+                </calculate>
+            </if-empty>
+        </iterate>
+        <log level="always" message="========${count} records updated"/>
+    </simple-method>
+
+    <simple-method method-name="getToNextDonePage"
+        short-description="return the requestValue 'donePage' as a resultcode to the controller">
+        <set field="donePage" from-field="parameters.donePage"
+            default-value="${parameters.DONE_PAGE}"/>
+        <if-not-empty field="donePage">
+            <log level="info" message="Next request: ${donePage}"/>
+            <return response-code="${donePage}"/>
+            <else>
+                <log level="info" message="Next 'donePage' variable not provided, returning 'error'"/>
+                <return response-code="error"/>
+            </else>
+        </if-not-empty>
+    </simple-method>
+
+    <simple-method method-name="createCommunicationContent"
+        short-description="Upload Content and Create Communication Content Association">
+        <!-- Call layout to get field -->
+        <call-class-method class-name="org.ofbiz.content.layout.LayoutWorker"
+            method-name="uploadImageAndParameters" ret-field-name="formInput">
+            <field field-name="request" type="javax.servlet.http.HttpServletRequest"/>
+            <string value="uploadedFile"/>
+        </call-class-method>
+        <set field="parameters.imageFileName" from-field="formInput.imageFileName"/>
+
+        <!-- Call bsh get file type -->
+        <call-bsh><![CDATA[
+            String fileName = parameters.get("imageFileName");
+            String mimeTypeId = fileName.substring(fileName.indexOf(".")+1,fileName.length());
+            parameters.put("mimeType",mimeTypeId);
+            ]]>
+        </call-bsh>
+
+        <!-- Get mime type from FileExtention -->
+        <set field="fileMap.fileExtensionId" value="${parameters.mimeType}"/>
+        <find-by-primary-key map-name="fileMap" value-name="mimeType" entity-name="FileExtension"/>
+
+        <!-- Create Data Resource -->
+        <set-service-fields service-name="createContentFromUploadedFile"
+            map-name="formInput.formInput" to-map-name="data"/>
+        <set field="data.dataResourceTypeId" value="LOCAL_FILE"/>
+        <set field="data.dataTemplateTypeId" value="NONE"/>
+        <set field="data.dataCategoryId" from-field="formInput.formInput.dataCategoryId"/>
+
+        <set field="data.statusId" from-field="formInput.formInput.statusId"/>
+        <set field="data.dataResourceName" from-field="formInput.imageFileName"/>
+        <set field="data.mimeTypeId" from-field="mimeType.mimeTypeId"/>
+        <set field="data.uploadedFile" from-field="formInput.imageData"/>
+        <set field="data._uploadedFile_fileName" from-field="formInput.imageFileName"/>
+        <set field="data._uploadedFile_contentType" from-field="formInput.formInput.mimeTypeId"/>
+        <call-service service-name="createDataResource" in-map-name="data">
+            <result-to-field result-name="dataResourceId" field-name="dataResourceId"
+                map-name="parameters"/>
+        </call-service>
+        <log level="always" message=" DataResource : ${parameters.dataResourceId}"/>
+
+        <!-- Create attach upload to data resource -->
+        <set-service-fields service-name="attachUploadToDataResource" map-name="formInput.formInput"
+            to-map-name="attachMap"/>
+        <set field="attachMap.uploadedFile" from-field="formInput.imageData"/>
+        <set field="attachMap._uploadedFile_fileName" from-field="formInput.imageFileName"/>
+        <set field="attachMap._uploadedFile_contentType" from-field="formInput.formInput.mimeTypeId"/>
+        <set field="attachMap.dataResourceId" from-field="parameters.dataResourceId"/>
+        <set field="attachMap.mimeTypeId" from-field="mimeType.mimeTypeId"/>
+        <call-service service-name="attachUploadToDataResource" in-map-name="attachMap"/>
+
+        <!-- Create content from dataResource -->
+        <set-service-fields service-name="createContentFromDataResource"
+            map-name="formInput.formInput" to-map-name="contentMap"/>
+        <set field="contentMap.roleTypeId" from-field="formInput.formInput.roleTypeId"/>
+        <set field="contentMap.partyId" from-field="formInput.formInput.partyId"/>
+        <set field="contentMap.contentTypeId" from-field="formInput.formInput.contentTypeId"/>
+        <set field="contentMap.dataResourceId" from-field="parameters.dataResourceId"/>
+        <call-service service-name="createContentFromDataResource" in-map-name="contentMap">
+            <result-to-field result-name="contentId" field-name="contentId" map-name="parameters"/>
+        </call-service>
+        <log level="always" message=" Content : ${parameters.contentId}"/>
+
+        <!-- Create party content -->
+        <set-service-fields service-name="createPartyContent" map-name="formInput.formInput"
+            to-map-name="partycontent"/>
+        <set field="partycontent.contentId" from-field="parameters.contentId"/>
+        <set field="partycontent.partyContentTypeId"
+            from-field="formInput.formInput.partyContentTypeId"/>
+        <set field="partycontent.partyId" from-field="formInput.formInput.partyId"/>
+        <call-service service-name="createPartyContent" in-map-name="partycontent"/>
+
+        <!-- Create communication event and content association -->
+        <set-service-fields service-name="createCommEventContentAssoc"
+            map-name="formInput.formInput" to-map-name="contentAssoc"/>
+        <set field="contentAssoc.contentId" from-field="parameters.contentId"/>
+        <set field="contentAssoc.communicationEventId"
+            from-field="formInput.formInput.communicationEventId"/>
+        <call-service service-name="createCommEventContentAssoc" in-map-name="contentAssoc">
+            <result-to-field result-name="fromDate" field-name="fromDate"/>
+        </call-service>
+
+        <!-- Return to request -->
+        <set field="communicationEventTypeId"
+            from-field="formInput.formInput.communicationEventTypeId"/>
+        <set field="communicationEventId" from-field="formInput.formInput.communicationEventId"/>
+        <field-to-request field-name="communicationEventId" request-name="communicationEventId"/>
+        <field-to-request field-name="communicationEventTypeId"
+            request-name="communicationEventTypeId"/>
+
+    </simple-method>
+
+    <simple-method method-name="addContentToCommEvent"
+        short-description="Add content to email communication">
+        <!-- Call layout to get field -->
+        <call-class-method class-name="org.ofbiz.content.layout.LayoutWorker"
+            method-name="uploadImageAndParameters" ret-field-name="formInput">
+            <field field-name="request" type="javax.servlet.http.HttpServletRequest"/>
+            <string value="partyId"/>
+        </call-class-method>
+
+        <!-- Create party content -->
+        <set-service-fields service-name="createPartyContent" map-name="formInput.formInput"
+            to-map-name="partycontent"/>
+        <set field="partycontent.contentId" from-field="formInput.formInput.contentId"/>
+        <set field="partycontent.partyContentTypeId"
+            from-field="formInput.formInput.partyContentTypeId"/>
+        <set field="partycontent.partyId" from-field="formInput.formInput.partyId"/>
+        <call-service service-name="createPartyContent" in-map-name="partycontent"/>
+
+        <!-- Create communication event and content association -->
+        <set-service-fields service-name="createCommEventContentAssoc"
+            map-name="formInput.formInput" to-map-name="contentAssoc"/>
+        <set field="contentAssoc.contentId" from-field="formInput.formInput.contentId"/>
+        <set field="contentAssoc.communicationEventId"
+            from-field="formInput.formInput.communicationEventId"/>
+        <call-service service-name="createCommEventContentAssoc" in-map-name="contentAssoc">
+            <result-to-field result-name="fromDate" field-name="fromDate"/>
+        </call-service>
+
+        <!-- Return to request -->
+        <set field="communicationEventTypeId"
+            from-field="formInput.formInput.communicationEventTypeId"/>
+        <set field="communicationEventId" from-field="formInput.formInput.communicationEventId"/>
+        <field-to-request field-name="communicationEventTypeId"
+            request-name="communicationEventTypeId"/>
+        <field-to-request field-name="communicationEventId" request-name="communicationEventId"/>
+    </simple-method>
+    
+    <!--Create simple-method of getPortalPageId-->
+    <simple-method method-name="getPortalPageId" short-description="">
+        <set field="mainPortalPageId" value="MAINMYPORTAL"/>
+        <entity-and entity-name="PortalPage" list-name="getMainPage">
+            <field-map field-name="originalPortalPageId" env-name="mainPortalPageId"/>
+            <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/>
+        </entity-and>
+        <first-from-list entry-name="getMyportal" list-name="getMainPage"/>
+        <if-empty field="getMainPage">
+            <set field="portalPageId" value="MYPORTAL"/>
+        </if-empty>
+        <if-not-empty field="getMainPage">
+            <set field="portalPageId" from-field="getMyportal.portalPageId"/>
+        </if-not-empty>
+        <field-to-request field-name="portalPageId" request-name="portalPageId"/>
+    </simple-method>
+</simple-methods>

Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/Events.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml