svn commit: r718185 [1/2] - in /ofbiz/trunk/framework: common/ common/config/ common/data/ common/entitydef/ common/script/org/ofbiz/common/ common/servicedef/ common/webcommon/WEB-INF/ common/webcommon/WEB-INF/actions/includes/ common/webcommon/portal...

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

svn commit: r718185 [1/2] - in /ofbiz/trunk/framework: common/ common/config/ common/data/ common/entitydef/ common/script/org/ofbiz/common/ common/servicedef/ common/webcommon/WEB-INF/ common/webcommon/WEB-INF/actions/includes/ common/webcommon/portal...

jonesde
Author: jonesde
Date: Sun Nov 16 23:56:27 2008
New Revision: 718185

URL: http://svn.apache.org/viewvc?rev=718185&view=rev
Log:
Commit reworked initial patch from Bruno Busco in Jira #1999; this follows Brunos work but adds the PortalPageColumn entity to configure columns, just optional pixel width for now, and also cleaned up entities and added foreign keys; rewrote a few things in screen actions and simple methods and removed a bunch of unused stuff that was commented out, so hopefully there isnt any more stray code in here; moved various things to files that were less generic, ie that mention portal specifically instead of just common or something; changed controller and menu setup so that this isn't in all apps by default, in fact just the example webapp for now with the include of portal-controller.xml and adding a dashboard menu item; note that this does not include the few changes in the specialpurpose directory, just the framework stuff for now; also moved data from seed to demo as it really isn't seed data in common and example

Added:
    ofbiz/trunk/framework/common/data/PortalDemoData.xml   (with props)
    ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml   (with props)
    ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml   (with props)
    ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy   (with props)
    ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml   (with props)
    ofbiz/trunk/framework/common/webcommon/portal/
    ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl   (with props)
    ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl   (with props)
    ofbiz/trunk/framework/common/widget/PortalPageForms.xml   (with props)
    ofbiz/trunk/framework/common/widget/PortalPageScreens.xml   (with props)
    ofbiz/trunk/framework/common/widget/PortletEditForms.xml   (with props)
    ofbiz/trunk/framework/common/widget/PortletScreens.xml   (with props)
    ofbiz/trunk/framework/example/data/ExampleDemoData.xml   (with props)
    ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml   (with props)
    ofbiz/trunk/framework/example/widget/example/PortletScreens.xml   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-end-down-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-end-up-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-single-down-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-single-left-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-single-right-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/arrow-single-up-green.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/mini-edit.png   (with props)
    ofbiz/trunk/framework/images/webapp/images/mini-trash.png   (with props)
Modified:
    ofbiz/trunk/framework/common/config/CommonUiLabels.xml
    ofbiz/trunk/framework/common/entitydef/entitymodel.xml
    ofbiz/trunk/framework/common/ofbiz-component.xml
    ofbiz/trunk/framework/common/servicedef/services.xml
    ofbiz/trunk/framework/common/webcommon/WEB-INF/common-controller.xml
    ofbiz/trunk/framework/example/ofbiz-component.xml
    ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml
    ofbiz/trunk/framework/example/widget/example/ExampleMenus.xml
    ofbiz/trunk/framework/images/webapp/images/maincss.css

Modified: ofbiz/trunk/framework/common/config/CommonUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/CommonUiLabels.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/config/CommonUiLabels.xml (original)
+++ ofbiz/trunk/framework/common/config/CommonUiLabels.xml Sun Nov 16 23:56:27 2008
@@ -150,6 +150,10 @@
         <value xml:lang="zh_CN">添加一个</value>
         <value xml:lang="zh">新建</value>
     </property>
+    <property key="CommonAddAPortlet">
+        <value xml:lang="en">Add A Portlet...</value>
+        <value xml:lang="it">Aggiungi un portlet...</value>
+    </property>
     <property key="CommonAddDefault">
         <value xml:lang="ar">إضافة القيم الإفتراضية</value>
         <value xml:lang="cs">Přidat standard</value>
@@ -1195,6 +1199,10 @@
         <value xml:lang="zh_CN">配置</value>
         <value xml:lang="zh">配置</value>
     </property>
+    <property key="CommonConfigure">
+        <value xml:lang="en">Configure:</value>
+        <value xml:lang="it">Configura:</value>
+    </property>
     <property key="CommonConfirm">
         <value xml:lang="ar">تأكيد</value>
         <value xml:lang="de">Bestätigen</value>
@@ -3530,6 +3538,34 @@
         <value xml:lang="zh_CN">更多</value>
         <value xml:lang="zh">更多</value>
     </property>
+    <property key="CommonMovePortletBottom">
+        <value xml:lang="en">Move Portlet at the Bottom</value>
+        <value xml:lang="it">Sposta il portlet in fondo</value>
+    </property>
+    <property key="CommonMovePortletDown">
+        <value xml:lang="en">Move Portlet Down</value>
+        <value xml:lang="it">Sposta il portlet in basso</value>
+    </property>
+    <property key="CommonMovePortletLeft">
+        <value xml:lang="en">Move Portlet Left</value>
+        <value xml:lang="it">Sposta il portlet a sinistra</value>
+    </property>
+    <property key="CommonMovePortletRight">
+        <value xml:lang="en">Move Portlet Right</value>
+        <value xml:lang="it">Sposta il portlet a destra</value>
+    </property>
+    <property key="CommonMovePortletTop">
+        <value xml:lang="en">Move Portlet at the Top</value>
+        <value xml:lang="it">Sposta il portlet in cima</value>
+    </property>
+    <property key="CommonMovePortletUp">
+        <value xml:lang="en">Move Portlet Up</value>
+        <value xml:lang="it">Sposta il portlet in alto</value>
+    </property>
+    <property key="CommonMoveToPortalPage">
+        <value xml:lang="en">Move to Portal Page...</value>
+        <value xml:lang="it">Sposta nella pagina...</value>
+    </property>
     <property key="CommonMyStatus">
         <value xml:lang="ar">حالتي</value>
         <value xml:lang="de">Mein Status</value>
@@ -4849,6 +4885,10 @@
         <value xml:lang="zh_CN">删除过期的</value>
         <value xml:lang="zh">删除过期的</value>
     </property>
+    <property key="CommonRemovePortlet">
+        <value xml:lang="en">Remove Portlet</value>
+        <value xml:lang="it">Rimuovi il portlet</value>
+    </property>
     <property key="CommonReports">
         <value xml:lang="ar">تقارير</value>
         <value xml:lang="de">Berichte</value>
@@ -5196,6 +5236,14 @@
         <value xml:lang="zh_CN">选择一个</value>
         <value xml:lang="zh">选择一个</value>
     </property>
+    <property key="CommonSelectPortalPage">
+        <value xml:lang="en">Select Portal Page...</value>
+        <value xml:lang="it">Seleziona pagina...</value>
+    </property>
+    <property key="CommonManagePortalPages">
+        <value xml:lang="en">Manage Portal Pages...</value>
+        <value xml:lang="it">Gestione pagine...</value>
+    </property>
     <property key="CommonSelected">
         <value xml:lang="ar">مختارة</value>
         <value xml:lang="de">ausgewählt</value>

Added: ofbiz/trunk/framework/common/data/PortalDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/PortalDemoData.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/data/PortalDemoData.xml (added)
+++ ofbiz/trunk/framework/common/data/PortalDemoData.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,35 @@
+<?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>
+    <!-- PortalPortlet Demo Data -->
+    <PortalPage portalPageId="DEFAULT" portalName="Default home Portal Page" description="The default OFBiz portal page" ownerUserLoginId="admin"/>
+    <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 -->
+    
+    <PortalPortlet portalPortletId="WELCOME" portletName="Welcome" description="OFBiz Welcome Message"
+        screenName="welcomePortlet" screenLocation="component://common/widget/PortletScreens.xml"/>
+    <PortalPortlet portalPortletId="LOGIN" portletName="Login" description="Login Form"
+        screenName="loginPortlet"       screenLocation="component://common/widget/PortletScreens.xml"
+        editFormName="LoginPortletEdit" editFormLocation="component://common/widget/PortletEditForms.xml"/>
+
+    <PortalPagePortlet portalPageId="DEFAULT" portalPortletId="WELCOME" portletSeqId="1" columnSeqId="01" sequenceNum="1"/>
+    <PortalPagePortlet portalPageId="DEFAULT" portalPortletId="LOGIN"   portletSeqId="1" columnSeqId="02" sequenceNum="1"/>
+</entity-engine-xml>

Propchange: ofbiz/trunk/framework/common/data/PortalDemoData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/data/PortalDemoData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/data/PortalDemoData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/framework/common/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/entitydef/entitymodel.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/common/entitydef/entitymodel.xml Sun Nov 16 23:56:27 2008
@@ -550,4 +550,82 @@
       </relation>
     </entity>
 
+    <!-- ============================ -->
+    <!-- org.ofbiz.common.portal -->
+    <!-- ============================ -->
+
+    <entity entity-name="PortalPortlet" package-name="org.ofbiz.common.portal" title="Defines a Portlet to be used in Portals">
+        <field name="portalPortletId" type="id-ne"></field>
+        <field name="portletName" type="name"></field>
+        <field name="screenName" type="long-varchar"></field>
+        <field name="screenLocation" type="long-varchar"></field>
+        <field name="editFormName" type="long-varchar"></field>
+        <field name="editFormLocation" type="long-varchar"></field>
+        <field name="description" type="description"></field>
+        <field name="screenshot" type="url"></field>
+        <prim-key field="portalPortletId"/>
+    </entity>
+    <entity entity-name="PortalPage" package-name="org.ofbiz.common.portal" title="Defines a Portal Page">
+        <field name="portalPageId" type="id-ne"></field>
+        <field name="portalName" type="name"></field>
+        <field name="description" type="description"></field>
+        <field name="ownerUserLoginId" type="id"></field>
+        <field name="sequenceNum" type="numeric"></field>
+        <prim-key field="portalPageId"/>
+    </entity>
+    <entity entity-name="PortalPageColumn" package-name="org.ofbiz.common.portal" title="Defines a Portal Page">
+        <field name="portalPageId" type="id-ne"></field>
+        <field name="columnSeqId" type="id-ne"></field>
+        <field name="columnWidthPixels" type="numeric"></field>
+        <field name="columnWidthPercentage" type="numeric"></field>
+        <prim-key field="portalPageId"/>
+        <prim-key field="columnSeqId"/>
+        <relation type="one" fk-name="PRTL_PGCOL_PAGE" rel-entity-name="PortalPage">
+            <key-map field-name="portalPageId"/>
+        </relation>
+    </entity>
+    <entity entity-name="PortalPagePortlet" package-name="org.ofbiz.common.portal" title="Defines Portlets included into Portal Pages">
+        <field name="portalPageId" type="id-ne"></field>
+        <field name="portalPortletId" type="id-ne"></field>
+        <field name="portletSeqId" type="id-ne"><description>Identify the portalPortlet instance in case more copy of the same portalPortlet are present in the same portalPage</description></field>
+        <field name="columnSeqId" type="id-ne"></field>
+        <field name="sequenceNum" type="numeric"></field>
+        <prim-key field="portalPageId"/>
+        <prim-key field="portalPortletId"/>
+        <prim-key field="portletSeqId"/>
+        <relation type="one" fk-name="PRTL_PGPTLT_PAGE" rel-entity-name="PortalPage">
+            <key-map field-name="portalPageId"/>
+        </relation>
+        <relation type="one" fk-name="PRTL_PGPTLT_PTLT" rel-entity-name="PortalPortlet">
+            <key-map field-name="portalPortletId"/>
+        </relation>
+        <relation type="one-nofk" rel-entity-name="PortalPageColumn">
+            <key-map field-name="portalPageId"/>
+            <key-map field-name="columnSeqId"/>
+        </relation>
+    </entity>
+    <view-entity entity-name="PortalPagePortletView" package-name="org.ofbiz.common.portal" title="View entity to have all Portal and Portlet information">
+        <member-entity entity-alias="PPGPTLT" entity-name="PortalPagePortlet"/>
+        <member-entity entity-alias="PTLT" entity-name="PortalPortlet"/>
+        <alias-all entity-alias="PPGPTLT"/>
+        <alias-all entity-alias="PTLT"/>
+        <view-link entity-alias="PPGPTLT" rel-entity-alias="PTLT">
+            <key-map field-name="portalPortletId"/>
+        </view-link>
+    </view-entity>
+    <entity entity-name="PortletAttribute" package-name="org.ofbiz.common.portal" title="Product Attribute Entity">
+        <field name="portalPageId" type="id-ne"></field>
+        <field name="portalPortletId" type="id-ne"></field>
+        <field name="portletSeqId" type="id-ne"></field>
+        <field name="attrName" type="id-long-ne"></field>
+        <field name="attrValue" type="value"></field>
+        <field name="attrType" type="value"></field>
+        <prim-key field="portalPageId"/>
+        <prim-key field="portalPortletId"/>
+        <prim-key field="portletSeqId"/>
+        <prim-key field="attrName"/>
+        <relation type="one" fk-name="PTLT_ATTR_PTLT" rel-entity-name="PortalPortlet">
+            <key-map field-name="portalPortletId"/>
+        </relation>
+    </entity>
 </entitymodel>

Modified: ofbiz/trunk/framework/common/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/ofbiz-component.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/ofbiz-component.xml (original)
+++ ofbiz/trunk/framework/common/ofbiz-component.xml Sun Nov 16 23:56:27 2008
@@ -52,6 +52,9 @@
     <entity-resource type="data" reader-name="seed" loader="main" location="data/UnitData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/PeriodData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/DimensionTypeData.xml"/>
+
+    <entity-resource type="data" reader-name="demo" loader="main" location="data/PortalDemoData.xml"/>
+    
     <service-resource type="model" loader="main" location="servicedef/services.xml"/>
     <service-resource type="model" loader="main" location="servicedef/services_test.xml"/>
     <service-resource type="model" loader="main" location="servicedef/services_cdyne.xml"/>

Added: 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=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml (added)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml Sun Nov 16 23:56: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.
+-->
+
+<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="getPortletAttributes" short-description="Get Portlet Attribute Values">
+        <call-object-method obj-field-name="request" method-name="getAttribute" ret-field-name="portalPageId"><string value="portalPageId"/></call-object-method>
+        <call-object-method obj-field-name="request" method-name="getAttribute" ret-field-name="portalPortletId"><string value="portalPortletId"/></call-object-method>
+        <call-object-method obj-field-name="request" method-name="getAttribute" ret-field-name="portletSeqId"><string value="portletSeqId"/></call-object-method>
+        <entity-condition entity-name="PortletAttribute" list-name="portletAttributeList">
+            <condition-list combine="and">
+                <condition-expr field-name="portalPageId" env-name="portalPageId"/>
+                <condition-expr field-name="portalPortletId" env-name="portalPortletId"/>
+                <condition-expr field-name="portletSeqId" env-name="portletSeqId"/>
+            </condition-list>
+        </entity-condition>
+        <log level="info" message="portletAttributeList: ${portletAttributeList}"/>
+        <iterate entry-name="portletAttributeList" list-name="portletAttribute">
+            <set field="context.${portletAttribute.attrName}" from-field="portletAttribute.attrValue"/>
+        </iterate>
+    </simple-method>
+    
+    <simple-method method-name="setPortalPortletAttributes" short-description="Sets a PortalPortlet attributes">
+        <if-not-empty field="parameters">
+            <iterate-map map-name="parameters" key-name="attributeKey" value-name="attributeValue">
+                <if-not-empty field="attributeKey">
+                    <if>
+                        <condition>
+                            <and>
+                                <if-compare field="attributeKey"  operator="not-equals" value="portalPageId"/>
+                                <if-compare field="attributeKey"  operator="not-equals" value="portalPortletId"/>
+                                <if-compare field="attributeKey"  operator="not-equals" value="portletSeqId"/>
+                            </and>
+                        </condition>
+                        <then>
+                            <clear-field field-name="attributeEntityMap"/>
+                            <set-service-fields service-name="createPortletAttribute" to-map-name="attributeEntityMap" map-name="parameters"/>
+                            <set field="attributeEntityMap.attrName"  from-field="attributeKey"/>
+                            <set field="attributeEntityMap.attrValue" from-field="attributeValue"/>
+                            
+                            <entity-one entity-name="PortletAttribute" value-name="attributeItem">
+                                <field-map field-name="attrName" env-name="attributeEntityMap.attrName"/>
+                            </entity-one>
+                            <if-not-empty field="attributeItem">
+                                <remove-value value-name="attributeItem"/>
+                            </if-not-empty>
+
+                            <call-service in-map-name="attributeEntityMap" service-name="createPortletAttribute"/>
+                        </then>
+                    </if>
+                </if-not-empty>
+            </iterate-map>
+        </if-not-empty>
+    </simple-method>
+</simple-methods>

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageMethods.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 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=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml (added)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,62 @@
+<?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="movePortletToPortalPage" short-description="Moves a PortalPortlet from the actual portalPage to a different one">
+        <entity-one entity-name="PortalPagePortlet" value-name="oldEntity" auto-field-map="true"/>
+        <check-errors/>
+
+        <make-value value-name="newEntity" entity-name="PortalPagePortlet"/>
+        <set field="newEntity.portalPortletId" from-field="parameters.portalPortletId"/>
+        <set field="newEntity.portalPageId" from-field="parameters.newPortalPageId"/>
+        <set field="newEntity.columnNum" value="1"/>
+        <make-next-seq-id value-name="newEntity" seq-field-name="portletSeqId"/>
+
+        <create-value value-name="newEntity"/>
+        <check-errors/>
+
+        <remove-value value-name="oldEntity"/>
+        <check-errors/>
+    </simple-method>
+
+    <simple-method method-name="createPortalPagePortlet" short-description="Add a registered PortalPortlet to a PortalPage">
+        <make-value entity-name="PortalPagePortlet" value-name="newEntity"/>
+        <set-pk-fields map-name="parameters" value-name="newEntity"/>
+        <make-next-seq-id value-name="newEntity" seq-field-name="portletSeqId"/>
+        <field-to-result field-name="newEntity.portletSeqId" result-name="portletSeqId"/>
+        <set-nonpk-fields map-name="parameters" value-name="newEntity"/>
+        <create-value value-name="newEntity"/>  
+    </simple-method>
+    
+    <simple-method method-name="getPortletAttributes" short-description="Get all attributes of a Portlet" login-required="true">
+        <entity-and entity-name="PortletAttribute" list-name="attributeList">
+            <field-map field-name="portalPageId" env-name="parameters.portalPageId"/>
+            <field-map field-name="portalPortletId" env-name="parameters.portalPortletId"/>
+            <field-map field-name="portletSeqId" env-name="parameters.portletSeqId"/>
+        </entity-and>
+        <iterate list-name="attributeList" entry-name="attributeRecord">
+            <set field="attributeMap.${attributeRecord.attrName}" from-field="attributeRecord.attrValue"/>
+        </iterate>
+        <field-to-result field-name="attributeMap" result-name="attributeMap"/>
+    </simple-method>
+    
+</simple-methods>

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/framework/common/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/servicedef/services.xml (original)
+++ ofbiz/trunk/framework/common/servicedef/services.xml Sun Nov 16 23:56:27 2008
@@ -557,25 +557,75 @@
         <auto-attributes include="pk" mode="OUT" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-
     <service name="updateTemporalExpression" default-entity-name="TemporalExpression" engine="entity-auto" invoke="update" auth="true">
         <description>Update a Temporal Expression</description>
         <permission-service service-name="tempExprPermissionCheck" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-
     <service name="createTemporalExpressionAssoc" default-entity-name="TemporalExpressionAssoc" engine="entity-auto" invoke="create" auth="true">
         <description>Create a Temporal Expression Association</description>
         <permission-service service-name="tempExprPermissionCheck" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-
     <service name="deleteTemporalExpressionAssoc" default-entity-name="TemporalExpressionAssoc" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a Temporal Expression Association</description>
         <permission-service service-name="tempExprPermissionCheck" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
+    <!-- Portal Page Portlet services -->
+    <service name="createPortalPagePortlet" default-entity-name="PortalPagePortlet" engine="simple" auth="true"
+        location="org/ofbiz/common/PortalPageServices.xml" invoke="createPortalPagePortlet">
+        <description>Add a registered PortalPortlet to a PortalPage</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+        <override name="portletSeqId" mode="OUT" optional="true"/>
+    </service>
+    <service name="updatePortalPagePortlet" default-entity-name="PortalPagePortlet" engine="entity-auto" invoke="update" auth="true">
+        <description>Update a PortalPortlet</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
+    <service name="deletePortalPagePortlet" default-entity-name="PortalPagePortlet" engine="entity-auto" invoke="delete" auth="true">
+        <description>Delete a PortalPortlet from a PortalPage</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+    </service>
+
+    <service name="movePortletToPortalPage" default-entity-name="PortalPagePortlet" engine="simple" auth="true"
+        location="org/ofbiz/common/PortalPageServices.xml" invoke="movePortletToPortalPage">
+        <description>Move a PortalPortlet from the actual portalPage to a different one</description>
+        <attribute name="portalPageId" type="String" mode="IN" optional="false"/>
+        <attribute name="portalPortletId" type="String" mode="IN" optional="false"/>
+        <attribute name="portletSeqId" type="String" mode="IN" optional="false"/>
+        <attribute name="newPortalPageId" type="String" mode="IN" optional="false"/>
+    </service>
+
+    <!-- Portal Page services -->
+    <service name="createPortalPage" default-entity-name="PortalPage" engine="entity-auto" invoke="create" auth="true">
+        <description>Create a new Portal Page</description>
+        <auto-attributes include="pk" mode="OUT" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
+    <service name="updatePortalPage" default-entity-name="PortalPage" engine="entity-auto" invoke="update" auth="true">
+        <description>Update a Portal Page</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
+
+    <!-- PortletAttribute services -->
+    <service name="createPortletAttribute" default-entity-name="PortletAttribute" engine="entity-auto" invoke="create" auth="true">
+        <description>Create a new Portlet Attribute</description>
+        <auto-attributes include="pk" mode="IN" optional="false"/>
+        <auto-attributes include="nonpk" mode="IN" optional="true"/>
+    </service>
+    <service name="getPortletAttributes" engine="simple" auth="true"
+        location="org/ofbiz/common/PortalPageServices.xml" invoke="getPortletAttributes">
+        <description>Get all attributes of a Portlet</description>
+        <attribute name="portalPageId" type="String" mode="IN" optional="false"/>
+        <attribute name="portalPortletId" type="String" mode="IN" optional="false"/>
+        <attribute name="portletSeqId" type="String" mode="IN" optional="false"/>
+        <attribute name="attributeMap" type="Map" mode="OUT" optional="true"/>
+    </service>
 </services>

Added: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy (added)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy Sun Nov 16 23:56:27 2008
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.ofbiz.entity.*;
+import org.ofbiz.entity.condition.*;
+
+portalPageId = request.getAttribute("portalPageId");
+portalPortletId = request.getAttribute("portalPortletId");
+portletSeqId = request.getAttribute("portletSeqId");
+
+portletAttributes = delegator.findList("PortletAttribute",
+                                        EntityCondition.makeCondition([portalPageId : portalPageId, portalPortletId: portalPortletId, portletSeqId: portletSeqId]),
+                                        null, null, null, false);
+
+iter = portletAttributes.iterator();
+
+while (iter) {
+  attribute = iter.next();
+
+  context.put(attribute.attrName, attribute.attrValue);
+}

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/trunk/framework/common/webcommon/WEB-INF/common-controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/common-controller.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/common-controller.xml (original)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/common-controller.xml Sun Nov 16 23:56:27 2008
@@ -20,7 +20,7 @@
 
 <site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
-    <description>Common Requests Configuration File</description>
+    <description>Common ControlServlet Configuration File</description>
     <owner>Copyright 2001-2008 The Apache Software Foundation</owner>
 
     <errorpage>/error/error.jsp</errorpage>

Added: 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=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml (added)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,92 @@
+<?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.
+-->
+
+<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
+    <description>Portal ControlServlet Configuration File</description>
+    <owner>Copyright 2001-2008 The Apache Software Foundation</owner>
+
+    <!-- Portal requests -->
+    <request-map uri="dashboard">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="dashboard"/>
+    </request-map>
+    <request-map uri="ManagePortalPages">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="ManagePortalPages"/>
+    </request-map>
+    <request-map uri="AddPortlet">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="AddPortlet" />
+    </request-map>
+    <request-map uri="EditPortlet">
+        <security https="true" auth="true"/>
+        <response name="success" type="view" value="EditPortlet" />
+    </request-map>
+
+    <request-map uri="createPortalPagePortlet">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createPortalPagePortlet"/>
+        <response name="success" type="request" value="dashboard"/>
+        <response name="error" type="request" value="dashboard"/>
+    </request-map>
+    <request-map uri="updatePortalPagePortlet">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updatePortalPagePortlet"/>
+        <response name="success" type="request" value="dashboard"/>
+        <response name="error" type="request" value="dashboard"/>
+    </request-map>
+    <request-map uri="deletePortalPagePortlet">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="deletePortalPagePortlet"/>
+        <response name="success" type="request" value="dashboard"/>
+        <response name="error" type="request" value="dashboard"/>
+    </request-map>
+    <request-map uri="movePortletToPortalPage">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="movePortletToPortalPage"/>
+        <response name="success" type="request" value="dashboard"/>
+        <response name="error" type="request" value="dashboard"/>
+    </request-map>
+    <request-map uri="createPortalPage">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="createPortalPage"/>
+        <response name="success" type="request" value="ManagePortalPages"/>
+        <response name="error" type="request" value="ManagePortalPages"/>
+    </request-map>
+    <request-map uri="updatePortalPage">
+        <security https="true" auth="true"/>
+        <event type="service" invoke="updatePortalPage"/>
+        <response name="success" type="request" value="ManagePortalPages"/>
+        <response name="error" type="request" value="ManagePortalPages"/>
+    </request-map>
+    <request-map uri="setPortalPortletAttributes">
+        <security https="true" auth="true"/>
+        <event type="simple" invoke="setPortalPortletAttributes" path="org/ofbiz/common/PortalPageMethods.xml"/>
+        <response name="success" type="request" value="EditPortlet"/>
+        <response name="error" type="request" value="EditPortlet"/>
+    </request-map>
+
+    <!-- View Mappings -->
+    <view-map name="dashboard" type="screen" page="component://common/widget/PortalPageScreens.xml#dashboard"/>
+    <view-map name="ManagePortalPages" type="screen" page="component://common/widget/PortalPageScreens.xml#ManagePortalPages"/>
+    <view-map name="AddPortlet" type="screen" page="component://common/widget/PortalPageScreens.xml#AddPortlet"/>
+    <view-map name="EditPortlet" type="screen" page="component://common/widget/PortalPageScreens.xml#EditPortlet"/>
+</site-conf>

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/portal-controller.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl (added)
+++ ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl Sun Nov 16 23:56:27 2008
@@ -0,0 +1,72 @@
+<#--
+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.
+-->
+
+<style type="text/css">
+.screenlet {
+margin: 1em;
+}
+</style>
+
+<div class="screenlet">
+  <div class="screenlet-title-bar">
+    <ul>
+      <li class="h3">Available portlets</li>
+      <li><a href="<@ofbizUrl>dashboard?portalPageId=${parameters.portalPageId}&amp;configurePortalPage=true</@ofbizUrl>">${uiLabelMap.CommonCancel}</a></li>
+    </ul>
+    <br class="clear"/>
+  </div>
+  <#if portalPortlets?has_content>
+    <#assign orderByList = Static["org.ofbiz.base.util.UtilMisc"].toList("portalPortletId")/>
+    
+    <table cellspacing="20" class="basic-table">
+      <#assign leftColumn = true/>
+      <#list portalPortlets as portalPortlet>
+        <#if leftColumn==true>
+        <tr>
+        </#if>
+          <td>
+            <table>
+              <tr>
+                <td>
+                  <div class="h2">
+                    <a href="<@ofbizUrl>createPortalPagePortlet?portalPortletId=${portalPortlet.portalPortletId}&amp;portalPageId=${parameters.portalPageId}&amp;configurePortalPage=true</@ofbizUrl>">${portalPortlet.portletName}</a>
+                  </div>
+                  <div class="tabletext">
+                    ${portalPortlet.description}
+                  </div>
+                </td>
+                <td>
+                  <#if portalPortlet.screenshot?has_content>
+                    <div class="screenshot">
+                      <a href="<@ofbizContentUrl>${portalPortlet.screenshot}</@ofbizContentUrl>"><img src="<@ofbizContentUrl>${portalPortlet.screenshot}</@ofbizContentUrl>" width="150"/></a>
+                    </div>
+                  </#if>
+                </td>
+              </tr>
+            </table>
+          </td>
+        <#if leftColumn==false>
+        </tr>
+        </#if>
+        <#assign leftColumn = !leftColumn/>
+      </#list>
+    </table>
+  
+  </#if>
+</div>

Propchange: ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/webcommon/portal/listPortalPortlets.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl (added)
+++ ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl Sun Nov 16 23:56:27 2008
@@ -0,0 +1,150 @@
+<#--
+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.
+-->
+
+<#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 (portalPages.size() > 1)>
+      <li id="portal-page-select">
+        <select name="selectPortal" onchange="window.location=this[this.selectedIndex].value;">
+          <option>${uiLabelMap.CommonSelectPortalPage}</option>
+          <#list portalPages as portalPage>
+            <#if (currentPortalPage.portalPageId != portalPage.portalPageId)>
+              <option value="<@ofbizUrl>dashboard?portalPageId=${portalPage.portalPageId}</@ofbizUrl>">${portalPage.portalName}</option>
+            </#if>
+          </#list>                          
+        </select>
+      </li>
+    </#if>
+    
+    <li id="manage-portal-page">
+      <a href="<@ofbizUrl>ManagePortalPages?portalPageId=${currentPortalPage.portalPageId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonManagePortalPages}</a>
+    </li>
+
+    <li id="config-on-off">
+     ${uiLabelMap.CommonConfigure}
+     <#if configurePortalPage?has_content>
+         ON | <a href="<@ofbizUrl>dashboard?portalPageId=${currentPortalPage.portalPageId}</@ofbizUrl>" class="buttontext">OFF</a>
+     <#else>
+         <a href="<@ofbizUrl>dashboard?portalPageId=${currentPortalPage.portalPageId}&configurePortalPage=true</@ofbizUrl>" class="buttontext">ON</a> | OFF
+     </#if>
+    </li>
+
+    <#if configurePortalPage?has_content>
+      <li id="add-portlet">
+        <a href="<@ofbizUrl>AddPortlet?portalPageId=${currentPortalPage.portalPageId}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonAddAPortlet}</a>
+      </li>
+    </#if>
+
+  </ul>
+  <br class="clear"/>
+</div>
+
+<table width="100%">
+  <tr>
+    <#list portalPageColumnList?if_exists as portalPageColumn>
+      <td style="vertical-align: top;"<#if portalPageColumn.columnWidthPixels?has_content> width="${portalPageColumn.columnWidthPixels}"</#if>>
+      <#assign firstInColumn = true/>
+      <#list portalPagePortletViewList as portlet>
+        <#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" />
+      
+              <div class="portlet-config">
+              <div class="portlet-config-title-bar">
+                <ul>
+                  <li class="title">Portlet : ${portlet.portletName}</li>
+                  <li class="remove"><a href="<@ofbizUrl>deletePortalPagePortlet?${portletUrlLink}</@ofbizUrl>" title="${uiLabelMap.CommonRemovePortlet}">&nbsp;&nbsp;&nbsp;</a></li>
+
+                  <#if (portlet.editFormName?has_content && portlet.editFormLocation?has_content)>
+                    <li class="edit"><a href="<@ofbizUrl>EditPortlet?${portletUrlLink}</@ofbizUrl>" title="edit">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+
+                  <#if portlet_has_next> <#-- TODO: this doesn't take into account that later items in the list might be in a different column -->
+                    <li class="move-down"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;sequenceNum=${portlet.sequenceNum?default(0) + 1}</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletDown}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if !firstInColumn>
+                    <li class="move-up"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;sequenceNum=${portlet.sequenceNum?default(1)-1}</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletUp}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if portalPageColumn_has_next>
+                    <li class="move-right"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;columnSeqId=${portalPageColumnList[portalPageColumn_index+1].columnSeqId}</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletRight}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if (portalPageColumn_index > 0)>
+                    <li class="move-left"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;columnSeqId=${portalPageColumnList[portalPageColumn_index-1].columnSeqId}</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletLeft}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if !firstInColumn>
+                    <li class="move-top"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;sequenceNum=0</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletTop}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if portlet_has_next> <#-- TODO: this doesn't take into account that later items in the list might be in a different column -->
+                    <li class="move-bottom"><a href="<@ofbizUrl>updatePortalPagePortlet?${portletUrlLink}&amp;sequenceNum=${portalPagePortletViewList.size()}</@ofbizUrl>" title="${uiLabelMap.CommonMovePortletBottom}">&nbsp;&nbsp;&nbsp;</a></li>
+                  </#if>  
+                  <#if (portalPages.size() > 1)>
+                    <li>
+                    <select name="moveToPortal" onchange="window.location=this[this.selectedIndex].value;">
+                      <option value="">${uiLabelMap.CommonMoveToPortalPage}</option>
+  
+                      <#list portalPages as portalPage>
+                        <#if (currentPortalPage.portalName != portalPage.portalName)>
+                          <option value="<@ofbizUrl>movePortletToPortalPage?${portletUrlLink}&amp;newPortalPageId=${portalPage.portalPageId}</@ofbizUrl>">${portalPage.portalName}</option>
+                        </#if>
+                      </#list>                          
+                    </select>
+                    </li>
+                  </#if>
+                </ul>
+                <br class="clear"/>
+              </div>
+              <div class="screenlet-body">
+            </#if>
+        
+            <#assign screenFileName = portlet.screenLocation + "#" + portlet.screenName/>
+            <div>
+            ${setRequestAttribute("portalPageId", currentPortalPage.portalPageId)}
+            ${setRequestAttribute("portalPortletId", portlet.portalPortletId)}
+            ${setRequestAttribute("portletSeqId", portlet.portletSeqId)}
+            
+            ${screens.render(screenFileName)}
+            </div>
+          
+            <#if configurePortalPage?has_content>
+                </div>
+              </div>
+            </#if>
+          </#if>
+          <#assign firstInColumn = false/>
+        </#if>
+      </#list>
+      <#if portalPageColumn_has_next>
+        <td width="5px">&nbsp;</td>
+      </#if>
+    </#list>
+  </tr>
+</table>
+
+<#else/>
+<h2>No portal page data found. You may not have the necessary seed or other data for it.</h2>
+</#if>

Propchange: ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/webcommon/portal/portalPage.ftl
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: ofbiz/trunk/framework/common/widget/PortalPageForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortalPageForms.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortalPageForms.xml (added)
+++ ofbiz/trunk/framework/common/widget/PortalPageForms.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+
+    <form name="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>
+        </actions>
+        
+        <field name="portalPageId" title="${uiLabelMap.CommonId}" sort-field="true">
+            <hyperlink description="${portalPageId}" target="dashboard?portalPageId=${portalPageId}"/>
+        </field>
+        <field name="portalName" title="${uiLabelMap.CommonName}" id-name="portalName" widget-style="tabletext" sort-field="true">
+            <display>
+                <in-place-editor url="updatePortalPage" cancel-control="button" saving-text="Updating..." text-between-controls=" ">
+                    <simple-editor/>
+                    <field-map field-name="portalPageId" env-name="portalPageId"/>
+                </in-place-editor>
+            </display>
+        </field>
+        <field name="description" title="${uiLabelMap.CommonDescription}" id-name="portalDescription" widget-style="tabletext" sort-field="true">
+            <display>
+                <in-place-editor url="updatePortalPage" cancel-control="button" saving-text="Updating..." text-between-controls=" ">
+                    <simple-editor/>
+                    <field-map field-name="portalPageId" env-name="portalPageId"/>
+                </in-place-editor>
+            </display>
+        </field>
+    </form>
+    
+    <form name="NewPortalPage" type="single" target="createPortalPage" title="" default-map-name="PortalPagemap">
+        <actions>
+            <set from-field="userLogin.userLoginId" field="ownerUserLoginId"/>
+        </actions>
+    
+        <auto-fields-service service-name="createPortalPage"/>
+        <field name="ownerUserLoginId" >
+            <hidden/>
+        </field>
+        <field name="sequenceNum">
+            <hidden/>
+        </field>
+
+        <field name="portalName" title="${uiLabelMap.CommonName}">
+            <text/>
+        </field>
+
+        <field name="submitButton" title="${uiLabelMap.CommonCreate}"><submit button-type="button"/></field>
+    </form>
+    
+    
+</forms>

Propchange: ofbiz/trunk/framework/common/widget/PortalPageForms.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/widget/PortalPageForms.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/widget/PortalPageForms.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortalPageScreens.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortalPageScreens.xml (added)
+++ ofbiz/trunk/framework/common/widget/PortalPageScreens.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+
+    <screen name="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="selectedPortalPage"/>
+                
+                <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-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"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <platform-specific><html><html-template location="component://common/webcommon/portal/portalPage.ftl"/></html></platform-specific>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="ManagePortalPages">
+        <section>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <include-form name="ListPortalPages" location="component://common/widget/PortalPageForms.xml"/>
+                        <include-form name="NewPortalPage" location="component://common/widget/PortalPageForms.xml"/>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="AddPortlet">
+        <section>
+            <actions>
+                <entity-condition entity-name="PortalPortlet" list-name="portalPortlets"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <platform-specific><html><html-template location="component://common/webcommon/portal/listPortalPortlets.ftl"/></html></platform-specific>
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+    
+    <screen name="EditPortlet">
+        <section>
+            <actions>
+                <entity-one entity-name="PortalPortlet" value-name="portalPortlet"/>
+            </actions>
+            <widgets>
+                <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+                    <decorator-section name="body">
+                        <label style="h2">Edit Attributes for Portlet: ${portalPortlet.portletName}</label>
+                        <include-form name="${portalPortlet.editFormName}" location="${portalPortlet.editFormLocation}"/>
+                        <!-- <include-screen name="${portalPortlet.screenName}" location="${portalPortlet.screenLocation}"/> -->
+                    </decorator-section>
+                </decorator-screen>
+            </widgets>
+        </section>
+    </screen>
+</screens>

Propchange: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/common/widget/PortletEditForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortletEditForms.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortletEditForms.xml (added)
+++ ofbiz/trunk/framework/common/widget/PortletEditForms.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+
+    <form name="CommonPortletEdit" type="single" target="setPortalPortletAttributes" title="">
+        <actions>
+            <service service-name="getPortletAttributes">
+                <field-map field-name="portalPageId" env-name="parameters.portalPageId"/>
+                <field-map field-name="portalPortletId" env-name="parameters.portalPortletId"/>
+                <field-map field-name="portletSeqId" env-name="parameters.portletSeqId"/>
+            </service>      
+        </actions>
+        <field name="portalPageId"><hidden/></field>
+        <field name="portalPortletId"><hidden/></field>
+        <field name="portletSeqId"><hidden/></field>
+        
+        <field name="submitButton" title="${uiLabelMap.CommonEdit}"><submit button-type="button"/></field>
+    </form>
+    
+    <form name="LoginPortletEdit" extends="CommonPortletEdit">
+        <field name="ItemsToShow">
+            <drop-down allow-empty="false">
+                <option key="5"/>
+                <option key="15"/>
+                <option key="20"/>
+                <option key="25"/>
+                <option key="30"/>
+                <option key="35"/>
+            </drop-down>
+        </field>
+
+        <field name="SpecificTitle">
+            <display/>
+        </field>
+    </form>
+
+</forms>

Propchange: ofbiz/trunk/framework/common/widget/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/widget/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/widget/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/common/widget/PortletScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortletScreens.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortletScreens.xml (added)
+++ ofbiz/trunk/framework/common/widget/PortletScreens.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+
+    <screen name="welcomePortlet">
+        <section>
+            <widgets>
+                <label text="Welcome to the OFBiz dashboard"/>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="loginPortlet">
+        <section>
+            <widgets>
+                <platform-specific>
+                    <html><html-template location="component://common/webcommon/login.ftl"/></html>
+                </platform-specific>
+            </widgets>
+        </section>
+    </screen>
+
+</screens>

Propchange: ofbiz/trunk/framework/common/widget/PortletScreens.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/common/widget/PortletScreens.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/common/widget/PortletScreens.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/example/data/ExampleDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/data/ExampleDemoData.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/example/data/ExampleDemoData.xml (added)
+++ ofbiz/trunk/framework/example/data/ExampleDemoData.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,33 @@
+<?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>
+    <PortalPortlet portalPortletId="EXAMPLE_1" portletName="Example 1" description="Example portlet n. 1"
+        screenName="ExamplePortlet1" screenLocation="component://example/widget/example/PortletScreens.xml"
+        editFormName="ExamplePortlet1Edit" editFormLocation="component://example/widget/example/PortletEditForms.xml"
+        screenshot="/images/ofbiz_logo.jpg" />
+                  
+    <PortalPortlet portalPortletId="EXAMPLE_2" portletName="Example 2" description="Example portlet n. 2"
+        screenName="ExamplePortlet2" screenLocation="component://example/widget/example/PortletScreens.xml"
+        screenshot="/images/opentravelsystem_logo.jpg" />
+
+    <PortalPortlet portalPortletId="EXAMPLE_3" portletName="Example 3" description="Example portlet n. 3"
+        screenName="ExamplePortlet3" screenLocation="component://example/widget/example/PortletScreens.xml"
+        editFormName="ExamplePortlet3Edit" editFormLocation="component://example/widget/example/PortletEditForms.xml" />
+</entity-engine-xml>

Propchange: ofbiz/trunk/framework/example/data/ExampleDemoData.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/example/data/ExampleDemoData.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/example/data/ExampleDemoData.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: ofbiz/trunk/framework/example/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/ofbiz-component.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/ofbiz-component.xml (original)
+++ ofbiz/trunk/framework/example/ofbiz-component.xml Sun Nov 16 23:56:27 2008
@@ -36,7 +36,8 @@
     <!-- <entity-resource type="eca" reader-name="main" loader="main" location="entitydef/eecas.xml"/> -->
     <entity-resource type="data" reader-name="seed" loader="main" location="data/ExampleTypeData.xml"/>
     <entity-resource type="data" reader-name="seed" loader="main" location="data/ExampleSecurityData.xml"/>
-
+    <entity-resource type="data" reader-name="demo" loader="main" location="data/ExampleDemoData.xml"/>
+    
     <!-- service resources: model(s), eca(s) and group definitions -->
     <service-resource type="model" loader="main" location="servicedef/services.xml"/>
     <!--

Modified: ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml Sun Nov 16 23:56:27 2008
@@ -24,7 +24,8 @@
          can be found in the following xml file. A component can override the
          elements found in the common-controller.xml file. -->
     <include location="component://common/webcommon/WEB-INF/common-controller.xml"/>    
-
+    <include location="component://common/webcommon/WEB-INF/portal-controller.xml"/>    
+    
     <description>Example Component Site Configuration File</description>
     <owner>Copyright 2001-2008 The Apache Software Foundation</owner>
 

Modified: ofbiz/trunk/framework/example/widget/example/ExampleMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleMenus.xml?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/ExampleMenus.xml (original)
+++ ofbiz/trunk/framework/example/widget/example/ExampleMenus.xml Sun Nov 16 23:56:27 2008
@@ -26,6 +26,8 @@
         <menu-item name="ExampleFeature" title="${uiLabelMap.ExampleFeature}"><link target="FindExampleFeature"/></menu-item>
         <menu-item name="FormWidgetExamples" title="${uiLabelMap.ExampleFormWidgetExamples}"><link target="FormWidgetExamples"/></menu-item>
         <menu-item name="AjaxExample" title="Ajax Examples"><link target="authview/findExampleAjax"/></menu-item>
+        <!-- Right Side Items -->
+        <menu-item name="Dashboard" title="Dashboard" align-style="opposed"><link target="dashboard"/></menu-item>
     </menu>
 
     <menu name="EditExample" default-selected-style="selected" type="simple"

Added: ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml (added)
+++ ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+
+    <form name="ExamplePortlet1Edit" extends="CommonPortletEdit" extends-resource="component://common/widget/PortletEditForms.xml">
+
+        <field name="ItemsToShow" entry-name="attributeMap.ItemsToShow">
+            <drop-down allow-empty="false">
+                <option key="5"/>
+                <option key="15"/>
+                <option key="20"/>
+                <option key="25"/>
+                <option key="30"/>
+                <option key="35"/>
+            </drop-down>
+        </field>
+
+        <field name="SpecificTitle" entry-name="attributeMap.SpecificTitle">
+            <text/>
+        </field>
+
+        <field name="Nuovo" entry-name="attributeMap.Nuovo">
+            <text/>
+        </field>
+    </form>
+
+    <form name="ExamplePortlet3Edit" extends="CommonPortletEdit" extends-resource="component://common/widget/PortletEditForms.xml">
+        <field name="SpecificTitle" entry-name="attributeMap.SpecificTitle">
+            <text/>
+        </field>
+        <field name="SpecificSubTitle" entry-name="attributeMap.SpecificSubTitle">
+            <text/>
+        </field>
+    </form>
+
+</forms>

Propchange: ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/example/widget/example/PortletEditForms.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/example/widget/example/PortletScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/PortletScreens.xml?rev=718185&view=auto
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/PortletScreens.xml (added)
+++ ofbiz/trunk/framework/example/widget/example/PortletScreens.xml Sun Nov 16 23:56:27 2008
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+
+    <screen name="ExamplePortlet1">
+        <section>
+            <actions>
+                <!-- TODO: figure out why this isn't getting the request object and requestAttributes is not updated either: <script location="component://common/script/org/ofbiz/common/PortalPageMethods.xml#getPortletAttributes"/>-->
+                <script location="component://common/webcommon/WEB-INF/actions/includes/retrievePortletAttributes.groovy"/>
+            </actions>
+            <widgets>
+                <label text="Hi, this is a first example of portlet"/>
+                <label text="...${SpecificTitle}"/>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="ExamplePortlet2">
+        <section>
+            <widgets>
+                <label text="Hi, this is a second example of portlet"/>
+            </widgets>
+        </section>
+    </screen>
+
+    <screen name="ExamplePortlet3">
+        <section>
+            <widgets>
+                <label text="Hi, this is a third example of portlet"/>
+            </widgets>
+        </section>
+    </screen>
+</screens>

Propchange: ofbiz/trunk/framework/example/widget/example/PortletScreens.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/example/widget/example/PortletScreens.xml
------------------------------------------------------------------------------
    svn:keywords = "Date Rev Author URL Id"

Propchange: ofbiz/trunk/framework/example/widget/example/PortletScreens.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ofbiz/trunk/framework/images/webapp/images/arrow-end-down-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-end-down-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-end-down-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-end-down-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/arrow-end-up-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-end-up-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-end-up-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-end-up-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/arrow-single-down-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-single-down-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-down-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-down-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/arrow-single-left-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-single-left-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-left-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-left-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/arrow-single-right-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-single-right-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-right-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-right-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: ofbiz/trunk/framework/images/webapp/images/arrow-single-up-green.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/arrow-single-up-green.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-up-green.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/arrow-single-up-green.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: ofbiz/trunk/framework/images/webapp/images/maincss.css
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/maincss.css?rev=718185&r1=718184&r2=718185&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/maincss.css (original)
+++ ofbiz/trunk/framework/images/webapp/images/maincss.css Sun Nov 16 23:56:27 2008
@@ -2013,3 +2013,77 @@
 width: 1.1em;
 cursor: default;
 }
+
+/* == Portlet configuration screenlet == */
+
+.portlet-config {
+  background-color:#D4D0C8;
+  border: 2px solid #D4D0C8;
+  margin-bottom: 5px;
+}
+
+.portlet-config-title-bar .title {
+color: #555555;
+font-size: 1.2em;
+float: left;
+}
+
+.portlet-config-title-bar ul {
+display: inline; /* IE Fix */
+}
+
+.portlet-config-title-bar ul li {
+float: right;
+font-size: 1em;
+font-weight: bold;
+padding: 0.1em 0.5em 0.2em 0.5em;
+}
+
+.portlet-config-title-bar ul li.move-up {
+background: url(/images/arrow-single-up-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.move-down {
+background: url(/images/arrow-single-down-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.move-left {
+background: url(/images/arrow-single-left-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.move-right {
+background: url(/images/arrow-single-right-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.move-top {
+background: url(/images/arrow-end-up-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.move-bottom {
+background: url(/images/arrow-end-down-green.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.remove {
+background: url(/images/mini-trash.png) no-repeat center center;
+}
+.portlet-config-title-bar ul li.edit {
+background: url(/images/mini-edit.png) no-repeat center center;
+}
+
+
+/* == Portal Manager Toolbar == */
+
+#manage-portal-toolbar {
+background-color:#D4D0C8;
+margin-bottom: 0.5em;
+}
+
+#manage-portal-toolbar ul li {
+float: left;
+padding: 0.1em 0.5em 0.2em 0.5em;
+}
+
+#manage-portal-toolbar #config-on-off,
+#manage-portal-toolbar #manage-portal-page,
+#manage-portal-toolbar #add-portlet {
+float: right;
+}
+
+#manage-portal-toolbar #portal-page-name {
+font-size: 1.5em;
+font-weight: bold;
+}

Added: ofbiz/trunk/framework/images/webapp/images/mini-edit.png
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/mini-edit.png?rev=718185&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/framework/images/webapp/images/mini-edit.png
------------------------------------------------------------------------------
    svn:executable = *

Propchange: ofbiz/trunk/framework/images/webapp/images/mini-edit.png
------------------------------------------------------------------------------
    svn:mime-type = image/png