You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Bruno Busco <br...@gmail.com> on 2008/12/21 23:40:17 UTC

Re: 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/ framewor

Hi Hans,
MyPortal looks good but I have something I would like to discuss.

The Portal Portlet system should allow any application to define several
screens as portlets so that they are available to be added into any Portal.
I have seen that MyPortal application defines several wrapping screens and
portlets for screens that are defined into other applications.

This should IMO avoided because it has the only effect of increasing the
application dependence.

The original application should directly define the Portlet and it will be
available into MyPortal as weel.

Examples of these screens are (all re-defined in MyPortalScreens.xml):
*Party *--> <include-screen name="Party"
location="component://party/widget/partymgr/ProfileScreens.xml"/>
*Contact *--> <include-screen name="Contact"
location="component://party/widget/partymgr/ProfileScreens.xml"/>
*contactsAndAccounts *--> <include-screen name="contactsAndAccounts"
location="component://party/widget/partymgr/ProfileScreens.xml"/>
*LoyaltyPoints *--> <include-screen name="LoyaltyPoints"
location="component://party/widget/partymgr/ProfileScreens.xml"/>
*PaymentMethods *--> <include-screen name="PaymentMethods"
location="component://party/widget/partymgr/ProfileScreens.xml"/>

and many others.

All these portlets should IMO be define directly in PartyMgr application.
Doing this PartyMgr only uses the framework (the Portal stuff is included in
the framework) and the portlets will be available everywhere.

-Bruno


2008/12/21 <ha...@apache.org>

> 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="<@o...@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="<@o...@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
> +        <li class="opposed"><a
> href="<@o...@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
>     <#else>
>         <li class="opposed"><a
> href="<@o...@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="<@o...@ofbizUrl>">${portalPortlet.portletName}</a>
> +                    <a
> href="<@o...@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="<@o...@ofbizUrl>"
> class="buttontext">${uiLabelMap.CommonAddColumn}</a>
> -      </li>
> +               <div id="manage-portal-toolbar">
> +                       <ul>
> +                       <li id="add-column">
> +                       <a
> href="<@o...@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="<@o...@ofbizUrl>"
> class="buttontext">${uiLabelMap.CommonDelete}</a>
> +              <a
> href="<@o...@ofbizUrl>"
> class="buttontext">${uiLabelMap.CommonDelete}</a>
>             </li>
>             <li id="add-portlet">
> -              <a
> href="<@o...@ofbizUrl>"
> class="buttontext">${uiLabelMap.CommonAddAPortlet}</a>
> +              <a
> href="<@o...@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: my@email.com; Sent Name from: Jo Easy User;
> Sent to: ofbiztest@yahoo.com; Delivered-To: ofbiztest@yahoo.com; "
> fromString="mailinglist@antwebsystems.com" toString="ofbiztest@yahoo.com
> "/>
> +    <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="
> ofbiztest@yahoo.com"/>
> +    <ProductStoreEmailSetting productStoreId="9000"
> emailType="PRDS_CUST_CREATED"
> bodyScreenLocation="component://myportal/widget/MyPageScreens.xml#CreateCustRequestNotification"
> subject="OFBiz - Your Request Is Created[${custRequestId}]" fromAddress="
> ofbiztest@yahoo.com"/>
> +
> +</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
>
>
>

Re: 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/ framewor

Posted by Hans Bakker <ma...@antwebsystems.com>.
On Sun, 2008-12-21 at 23:04 -0700, David E Jones wrote:
> .....and Hans is a guy who gets things done.....

thank you David....seems you noticed that....


-- 
Antwebsystems.com: Quality OFBiz services for competitive prices


Re: 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/ framewor

Posted by David E Jones <da...@hotwaxmedia.com>.
That sounds like a good pattern Bruno, ie define various reusable  
portlets in each base components, and perhaps even others in derived  
components (ie specialpurpose ones), but start with at least a good  
library of them in the based components and then use them where needed/ 
desired.

It sounds like Hans is on the same page with this too (and Hans is a  
guy who gets things done), so great!

-David


On Dec 21, 2008, at 3:40 PM, Bruno Busco wrote:

> Hi Hans,
> MyPortal looks good but I have something I would like to discuss.
>
> The Portal Portlet system should allow any application to define  
> several
> screens as portlets so that they are available to be added into any  
> Portal.
> I have seen that MyPortal application defines several wrapping  
> screens and
> portlets for screens that are defined into other applications.
>
> This should IMO avoided because it has the only effect of increasing  
> the
> application dependence.
>
> The original application should directly define the Portlet and it  
> will be
> available into MyPortal as weel.
>
> Examples of these screens are (all re-defined in MyPortalScreens.xml):
> *Party *--> <include-screen name="Party"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *Contact *--> <include-screen name="Contact"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *contactsAndAccounts *--> <include-screen name="contactsAndAccounts"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *LoyaltyPoints *--> <include-screen name="LoyaltyPoints"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *PaymentMethods *--> <include-screen name="PaymentMethods"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
>
> and many others.
>
> All these portlets should IMO be define directly in PartyMgr  
> application.
> Doing this PartyMgr only uses the framework (the Portal stuff is  
> included in
> the framework) and the portlets will be available everywhere.
>
> -Bruno
>
>
> 2008/12/21 <ha...@apache.org>
>
>> 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="<@o...@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="<@o...@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="<@o...@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: my@email.com; Sent Name from: Jo Easy  
>> User;
>> Sent to: ofbiztest@yahoo.com; Delivered-To: ofbiztest@yahoo.com; "
>> fromString="mailinglist@antwebsystems.com" toString="ofbiztest@yahoo.com
>> "/>
>> +    <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="
>> ofbiztest@yahoo.com"/>
>> +    <ProductStoreEmailSetting productStoreId="9000"
>> emailType="PRDS_CUST_CREATED"
>> bodyScreenLocation="component://myportal/widget/ 
>> MyPageScreens.xml#CreateCustRequestNotification"
>> subject="OFBiz - Your Request Is Created[${custRequestId}]"  
>> fromAddress="
>> ofbiztest@yahoo.com"/>
>> +
>> +</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
>>
>>
>>


Re: 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/ framewor

Posted by Hans Bakker <ma...@antwebsystems.com>.
Hi Bruno,

yes bruno, that is our intention and we will correct that in future
versions...

Regards,
Hans

On Sun, 2008-12-21 at 23:40 +0100, Bruno Busco wrote:
> Hi Hans,
> MyPortal looks good but I have something I would like to discuss.
> 
> The Portal Portlet system should allow any application to define several
> screens as portlets so that they are available to be added into any Portal.
> I have seen that MyPortal application defines several wrapping screens and
> portlets for screens that are defined into other applications.
> 
> This should IMO avoided because it has the only effect of increasing the
> application dependence.
> 
> The original application should directly define the Portlet and it will be
> available into MyPortal as weel.
> 
> Examples of these screens are (all re-defined in MyPortalScreens.xml):
> *Party *--> <include-screen name="Party"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *Contact *--> <include-screen name="Contact"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *contactsAndAccounts *--> <include-screen name="contactsAndAccounts"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *LoyaltyPoints *--> <include-screen name="LoyaltyPoints"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> *PaymentMethods *--> <include-screen name="PaymentMethods"
> location="component://party/widget/partymgr/ProfileScreens.xml"/>
> 
> and many others.
> 
> All these portlets should IMO be define directly in PartyMgr application.
> Doing this PartyMgr only uses the framework (the Portal stuff is included in
> the framework) and the portlets will be available everywhere.
> 
> -Bruno
> 
> 
> 2008/12/21 <ha...@apache.org>
> 
> > 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="<@o...@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="<@o...@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
> > +        <li class="opposed"><a
> > href="<@o...@ofbizUrl>">${uiLabelMap.CommonDashboard}</a></li>
> >     <#else>
> >         <li class="opposed"><a
> > href="<@o...@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="<@o...@ofbizUrl>">${portalPortlet.portletName}</a>
> > +                    <a
> > href="<@o...@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="<@o...@ofbizUrl>"
> > class="buttontext">${uiLabelMap.CommonAddColumn}</a>
> > -      </li>
> > +               <div id="manage-portal-toolbar">
> > +                       <ul>
> > +                       <li id="add-column">
> > +                       <a
> > href="<@o...@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="<@o...@ofbizUrl>"
> > class="buttontext">${uiLabelMap.CommonDelete}</a>
> > +              <a
> > href="<@o...@ofbizUrl>"
> > class="buttontext">${uiLabelMap.CommonDelete}</a>
> >             </li>
> >             <li id="add-portlet">
> > -              <a
> > href="<@o...@ofbizUrl>"
> > class="buttontext">${uiLabelMap.CommonAddAPortlet}</a>
> > +              <a
> > href="<@o...@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: my@email.com; Sent Name from: Jo Easy User;
> > Sent to: ofbiztest@yahoo.com; Delivered-To: ofbiztest@yahoo.com; "
> > fromString="mailinglist@antwebsystems.com" toString="ofbiztest@yahoo.com
> > "/>
> > +    <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="
> > ofbiztest@yahoo.com"/>
> > +    <ProductStoreEmailSetting productStoreId="9000"
> > emailType="PRDS_CUST_CREATED"
> > bodyScreenLocation="component://myportal/widget/MyPageScreens.xml#CreateCustRequestNotification"
> > subject="OFBiz - Your Request Is Created[${custRequestId}]" fromAddress="
> > ofbiztest@yahoo.com"/>
> > +
> > +</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
> >
> >
> >
-- 
Antwebsystems.com: Quality OFBiz services for competitive prices