You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by er...@apache.org on 2011/10/30 16:25:37 UTC
svn commit: r1195175 - in /ofbiz/trunk/framework/common:
script/org/ofbiz/common/PortalPageServices.xml widget/PortalPageScreens.xml
Author: erwan
Date: Sun Oct 30 15:25:36 2011
New Revision: 1195175
URL: http://svn.apache.org/viewvc?rev=1195175&view=rev
Log:
A patch from Nicolas Malin - OFBIZ-4474 - PortalPage Admin screen : change portlet sequence is broken
Modified:
ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml
ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
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=1195175&r1=1195174&r2=1195175&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml (original)
+++ ofbiz/trunk/framework/common/script/org/ofbiz/common/PortalPageServices.xml Sun Oct 30 15:25:36 2011
@@ -69,6 +69,26 @@ under the License.
<call-simple-method method-name="checkOwnerShip"/>
<make-value entity-name="PortalPagePortlet" value-field="newEntity"/>
<set-pk-fields map="parameters" value-field="newEntity"/>
+
+ <entity-condition list="portlets" entity-name="PortalPagePortlet">
+ <condition-expr field-name="portalPageId" operator="equals" from-field="parameters.portalPageId"/>
+ <select-field field-name="sequenceNum"/>
+ <order-by field-name="-sequenceNum"/>
+ <limit-range size="1" start="0"/>
+ </entity-condition>
+ <first-from-list entry="portalPagePortlet" list="portlets"/>
+
+ <if-empty field="portalPagePortlet.sequenceNum">
+ <calculate field="newEntity.sequenceNum" type="Long"><number value="1"/></calculate>
+ <else>
+ <calculate field="newEntity.sequenceNum" type="Long">
+ <calcop operator="add" field="portalPagePortlet.sequenceNum">
+ <number value="1"/>
+ </calcop>
+ </calculate>
+ </else>
+ </if-empty>
+
<make-next-seq-id value-field="newEntity" seq-field-name="portletSeqId"/>
<field-to-result field="newEntity.portletSeqId" result-name="portletSeqId"/>
<set-nonpk-fields map="parameters" value-field="newEntity"/>
@@ -252,9 +272,10 @@ under the License.
<set field="first.sequenceNum" from-field="getSequenceNum.sequenceNum" type="Long"/>
<call-service service-name="updatePortalPage" in-map-name="first"/>
</simple-method>
+
<!-- update Portlet Seq with Drag & Drop -->
<simple-method method-name="updatePortletSeqDragDrop" short-description="Updates a portlet Seq No for the Drag and Drop Feature">
- <set field="parameters.portalPageId" value="${parameters.o_portalPageId}"/>
+ <set field="parameters.portalPageId" from-field="parameters.o_portalPageId"/>
<call-simple-method method-name="checkOwnerShip"/>
<!-- origin Portlet -->
@@ -266,55 +287,76 @@ under the License.
<if-empty field="originPp">
<return response-code="error"/>
</if-empty>
+ <set field="columnSeqId" from-field="parameters.destinationColumn" default-value="${originPp.columnSeqId}"/>
<!-- destination Portlet -->
- <if-compare operator="equals" field="parameters.mode" value="BEFORE">
+ <if-compare operator="contains" field="parameters.mode" value="DRAGDROPBEFORE">
<entity-one value-field="destiPp" entity-name="PortalPagePortlet">
- <field-map field-name="portalPageId" value="${parameters.d_portalPageId}"/>
- <field-map field-name="portalPortletId" value="${parameters.d_portalPortletId}"/>
- <field-map field-name="portletSeqId" value="${parameters.d_portletSeqId}"/>
+ <field-map field-name="portalPageId" from-field="parameters.d_portalPageId"/>
+ <field-map field-name="portalPortletId" from-field="parameters.d_portalPortletId"/>
+ <field-map field-name="portletSeqId" from-field="parameters.d_portletSeqId"/>
</entity-one>
<entity-condition list="modifyPpList" entity-name="PortalPagePortlet">
<condition-list combine="and">
- <condition-expr field-name="columnSeqId" operator="equals" value="${parameters.destinationColumn}"/>
- <condition-expr field-name="sequenceNum" operator="greater-equals" value="${destiPp.sequenceNum}"/>
+ <condition-expr field-name="portalPageId" operator="equals" from-field="parameters.portalPageId"/>
+ <condition-expr field-name="columnSeqId" operator="equals" from-field="columnSeqId"/>
+ <condition-expr field-name="sequenceNum" operator="greater-equals" from-field="destiPp.sequenceNum"/>
+ <condition-expr field-name="sequenceNum" operator="less" from-field="originPp.sequenceNum" ignore-if-empty="true"/>
</condition-list>
+ <order-by field-name="sequenceNum"/>
</entity-condition>
-
+ <set field="increase" value="1" type="Long"/>
<set field="newSequenceNo" from-field="destiPp.sequenceNum"/>
</if-compare>
- <if-compare operator="equals" field="parameters.mode" value="AFTER">
+ <if-compare operator="equals" field="parameters.mode" value="DRAGDROPAFTER">
<entity-one value-field="destiPp" entity-name="PortalPagePortlet">
- <field-map field-name="portalPageId" value="${parameters.d_portalPageId}"/>
- <field-map field-name="portalPortletId" value="${parameters.d_portalPortletId}"/>
- <field-map field-name="portletSeqId" value="${parameters.d_portletSeqId}"/>
+ <field-map field-name="portalPageId" from-field="parameters.d_portalPageId"/>
+ <field-map field-name="portalPortletId" from-field="parameters.d_portalPortletId"/>
+ <field-map field-name="portletSeqId" from-field="parameters.d_portletSeqId"/>
</entity-one>
<entity-condition list="modifyPpList" entity-name="PortalPagePortlet">
<condition-list combine="and">
- <condition-expr field-name="columnSeqId" operator="equals" value="${parameters.destinationColumn}"/>
- <condition-expr field-name="sequenceNum" operator="greater" value="${destiPp.sequenceNum}"/>
+ <condition-expr field-name="portalPageId" operator="equals" from-field="parameters.portalPageId"/>
+ <condition-expr field-name="columnSeqId" operator="equals" from-field="columnSeqId"/>
+ <condition-expr field-name="sequenceNum" operator="greater" from-field="originPp.sequenceNum"/>
+ <condition-expr field-name="sequenceNum" operator="less-equals" from-field="destiPp.sequenceNum" ignore-if-empty="true"/>
</condition-list>
+ <order-by field-name="-sequenceNum"/>
</entity-condition>
-
- <set field="newSequenceNo" value="${destiPp.sequenceNum + 1}"/>
+ <set field="increase" value="-1" type="Long"/>
+ <set field="newSequenceNo" from-field="destiPp.sequenceNum"/>
</if-compare>
- <if-compare operator="equals" field="parameters.mode" value="NEW">
+ <if-compare operator="contains" field="parameters.mode" value="NEW">
<set field="newSequenceNo" value="0"/>
</if-compare>
<!-- Modify the sequence id from the following portlets -->
<if-not-empty field="modifyPpList">
<iterate entry="modifyPp" list="modifyPpList">
- <set field="modifyPp.sequenceNum" value="${modifyPp.sequenceNum + 1}" type="Long"/>
+ <if-empty field="modifyPp.sequenceNum">
+ <set field="modifyPp.sequenceNum" value="newSequenceNo"/>
+ <else>
+ <calculate field="modifyPp.sequenceNum" type="Long">
+ <calcop operator="add" field="newSequenceNo">
+ <calcop operator="get" field="increase"/>
+ </calcop>
+ </calculate>
+ <calculate field="increase" type="Long">
+ <calcop operator="add" field="increase">
+ <calcop operator="get" field="increase"/>
+ </calcop>
+ </calculate>
+ </else>
+ </if-empty>
<store-value value-field="modifyPp"/>
</iterate>
</if-not-empty>
<!-- Create a new db entry for the moved portlet -->
- <set field="originPp.columnSeqId" from-field="parameters.destinationColumn"/>
+ <set field="originPp.columnSeqId" from-field="columnSeqId"/>
<set field="originPp.sequenceNum" from-field="newSequenceNo" type="Long"/>
<store-value value-field="originPp"/>
</simple-method>
Modified: ofbiz/trunk/framework/common/widget/PortalPageScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/PortalPageScreens.xml?rev=1195175&r1=1195174&r2=1195175&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/widget/PortalPageScreens.xml (original)
+++ ofbiz/trunk/framework/common/widget/PortalPageScreens.xml Sun Oct 30 15:25:36 2011
@@ -100,7 +100,11 @@ under the License.
<decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
<decorator-section name="body">
<screenlet id="PortalPagesList" title="${uiLabelMap.CommonPortalPagesForApplication}: ${parameters.parentPortalPageId}" collapsible="true">
- <container style="button-bar"><link target="NewPortalPage" text="${uiLabelMap.CommonNewPortalPage}" style="buttontext create"/></container>
+ <container style="button-bar">
+ <link target="NewPortalPage" text="${uiLabelMap.CommonNewPortalPage}" style="buttontext create">
+ <parameter param-name="parentPortalPageId" from-field="parameters.parentPortalPageId"/>
+ </link>
+ </container>
<include-form name="ListPortalPages" location="component://common/widget/PortalPageForms.xml"/>
</screenlet>
<section>