Skip to content

Commit b152ed4

Browse files
author
holivier
committed
Improved: add auto-parameters-portlet as children of (OFBIZ-11771) event-update-area (field and form).
auto-parameters-portlet add for parameters in parameters-map: - portalPageId - portalPortletId - portletSeqId - currentAreaId auto-parameters-portlet is used by showPortlet to be able to renderer only one portlet, because often, it's necessary to have the 4 parameters for a future other update (ex: button back)
1 parent a9ebbee commit b152ed4

File tree

4 files changed

+30
-4
lines changed

4 files changed

+30
-4
lines changed

framework/widget/dtd/widget-common.xsd

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,6 +515,13 @@ under the License.
515515
<xs:attribute name="send-if-empty" type="xs:boolean" default="true"/>
516516
</xs:complexType>
517517
</xs:element>
518+
<xs:element name="auto-parameters-portlet">
519+
<xs:annotation>
520+
<xs:documentation>Generate 4 parameters : portalPageId, portalPortletId, portletSeqId and currentAreaId update from-field parameters.xxx</xs:documentation>
521+
</xs:annotation>
522+
<xs:complexType>
523+
</xs:complexType>
524+
</xs:element>
518525
<xs:element name="exclude">
519526
<xs:complexType>
520527
<xs:attribute name="field-name" type="xs:string" use="required" />
@@ -525,6 +532,7 @@ under the License.
525532
<xs:element minOccurs="0" ref="auto-parameters-service"/>
526533
<xs:element minOccurs="0" ref="auto-parameters-entity"/>
527534
<xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
535+
<xs:element minOccurs="0" ref="auto-parameters-portlet"/>
528536
<xs:element minOccurs="0" name="image" type="image" />
529537
<xs:element minOccurs="0" ref="set-callback"/>
530538
</xs:sequence>

framework/widget/dtd/widget-form.xsd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,7 @@ under the License.
587587
<xs:element minOccurs="0" ref="auto-parameters-service"/>
588588
<xs:element minOccurs="0" ref="auto-parameters-entity"/>
589589
<xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
590+
<xs:element minOccurs="0" ref="auto-parameters-portlet"/>
590591
</xs:sequence>
591592
<xs:attribute name="event-type" use="required">
592593
<xs:annotation>
@@ -1579,6 +1580,7 @@ under the License.
15791580
<xs:complexType>
15801581
<xs:sequence>
15811582
<xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
1583+
<xs:element minOccurs="0" ref="auto-parameters-portlet"/>
15821584
</xs:sequence>
15831585
<xs:attribute name="event-type" use="required">
15841586
<xs:annotation>

framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,14 +379,22 @@ public Link(Element linkElement) {
379379
this.linkType = linkElement.getAttribute("link-type");
380380
}
381381
List<? extends Element> parameterElementList = UtilXml.childElementList(linkElement, "parameter");
382-
if (parameterElementList.isEmpty()) {
382+
boolean autoPortletParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-portlet") == null ? false : true;
383+
if (parameterElementList.isEmpty() && ! autoPortletParamsElement) {
383384
this.parameterList = Collections.emptyList();
384385
} else {
386+
int paramListSize = parameterElementList.size() + (autoPortletParamsElement ? 4 : 0);
385387
List<Parameter> parameterList = new ArrayList<>(
386-
parameterElementList.size());
388+
paramListSize);
387389
for (Element parameterElement : parameterElementList) {
388390
parameterList.add(new Parameter(parameterElement));
389391
}
392+
if (autoPortletParamsElement) {
393+
parameterList.add(new CommonWidgetModels.Parameter("portalPageId", "parameters.portalPageId", true));
394+
parameterList.add(new CommonWidgetModels.Parameter("portalPortletId", "parameters.portalPortletId", true));
395+
parameterList.add(new CommonWidgetModels.Parameter("portletSeqId", "parameters.portletSeqId", true));
396+
parameterList.add(new CommonWidgetModels.Parameter("currentAreaId", "parameters.currentAreaId", true));
397+
}
390398
this.parameterList = Collections.unmodifiableList(parameterList);
391399
}
392400
Element autoServiceParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-service");

framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2344,13 +2344,21 @@ public UpdateArea(Element updateAreaElement, String defaultServiceName, String d
23442344
this.defaultServiceName = defaultServiceName;
23452345
this.defaultEntityName = defaultEntityName;
23462346
List<? extends Element> parameterElementList = UtilXml.childElementList(updateAreaElement, "parameter");
2347-
if (parameterElementList.isEmpty()) {
2347+
boolean autoPortletParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-portlet") == null ? false : true;
2348+
if (parameterElementList.isEmpty() && ! autoPortletParamsElement) {
23482349
this.parameterList = Collections.emptyList();
23492350
} else {
2350-
List<CommonWidgetModels.Parameter> parameterList = new ArrayList<>(parameterElementList.size());
2351+
int paramListSize = parameterElementList.size() + (autoPortletParamsElement ? 4 : 0);
2352+
List<CommonWidgetModels.Parameter> parameterList = new ArrayList<>(paramListSize);
23512353
for (Element parameterElement : parameterElementList) {
23522354
parameterList.add(new CommonWidgetModels.Parameter(parameterElement));
23532355
}
2356+
if (autoPortletParamsElement) {
2357+
parameterList.add(new CommonWidgetModels.Parameter("portalPageId", "parameters.portalPageId", true));
2358+
parameterList.add(new CommonWidgetModels.Parameter("portalPortletId", "parameters.portalPortletId", true));
2359+
parameterList.add(new CommonWidgetModels.Parameter("portletSeqId", "parameters.portletSeqId", true));
2360+
parameterList.add(new CommonWidgetModels.Parameter("currentAreaId", "parameters.currentAreaId", true));
2361+
}
23542362
this.parameterList = Collections.unmodifiableList(parameterList);
23552363
}
23562364
Element autoServiceParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-service");

0 commit comments

Comments
 (0)