Skip to content

Commit 640a873

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 25b3cb0 commit 640a873

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:sequence>
530538
<xs:attribute type="xs:string" name="text" />

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
@@ -376,14 +376,22 @@ public Link(Element linkElement) {
376376
this.linkType = linkElement.getAttribute("link-type");
377377
}
378378
List<? extends Element> parameterElementList = UtilXml.childElementList(linkElement, "parameter");
379-
if (parameterElementList.isEmpty()) {
379+
boolean autoPortletParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-portlet") == null ? false : true;
380+
if (parameterElementList.isEmpty() && ! autoPortletParamsElement) {
380381
this.parameterList = Collections.emptyList();
381382
} else {
383+
int paramListSize = parameterElementList.size() + (autoPortletParamsElement ? 4 : 0);
382384
List<Parameter> parameterList = new ArrayList<>(
383-
parameterElementList.size());
385+
paramListSize);
384386
for (Element parameterElement : parameterElementList) {
385387
parameterList.add(new Parameter(parameterElement));
386388
}
389+
if (autoPortletParamsElement) {
390+
parameterList.add(new CommonWidgetModels.Parameter("portalPageId", "parameters.portalPageId", true));
391+
parameterList.add(new CommonWidgetModels.Parameter("portalPortletId", "parameters.portalPortletId", true));
392+
parameterList.add(new CommonWidgetModels.Parameter("portletSeqId", "parameters.portletSeqId", true));
393+
parameterList.add(new CommonWidgetModels.Parameter("currentAreaId", "parameters.currentAreaId", true));
394+
}
387395
this.parameterList = Collections.unmodifiableList(parameterList);
388396
}
389397
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
@@ -2338,13 +2338,21 @@ public UpdateArea(Element updateAreaElement, String defaultServiceName, String d
23382338
this.defaultServiceName = defaultServiceName;
23392339
this.defaultEntityName = defaultEntityName;
23402340
List<? extends Element> parameterElementList = UtilXml.childElementList(updateAreaElement, "parameter");
2341-
if (parameterElementList.isEmpty()) {
2341+
boolean autoPortletParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-portlet") == null ? false : true;
2342+
if (parameterElementList.isEmpty() && ! autoPortletParamsElement) {
23422343
this.parameterList = Collections.emptyList();
23432344
} else {
2344-
List<CommonWidgetModels.Parameter> parameterList = new ArrayList<>(parameterElementList.size());
2345+
int paramListSize = parameterElementList.size() + (autoPortletParamsElement ? 4 : 0);
2346+
List<CommonWidgetModels.Parameter> parameterList = new ArrayList<>(paramListSize);
23452347
for (Element parameterElement : parameterElementList) {
23462348
parameterList.add(new CommonWidgetModels.Parameter(parameterElement));
23472349
}
2350+
if (autoPortletParamsElement) {
2351+
parameterList.add(new CommonWidgetModels.Parameter("portalPageId", "parameters.portalPageId", true));
2352+
parameterList.add(new CommonWidgetModels.Parameter("portalPortletId", "parameters.portalPortletId", true));
2353+
parameterList.add(new CommonWidgetModels.Parameter("portletSeqId", "parameters.portletSeqId", true));
2354+
parameterList.add(new CommonWidgetModels.Parameter("currentAreaId", "parameters.currentAreaId", true));
2355+
}
23482356
this.parameterList = Collections.unmodifiableList(parameterList);
23492357
}
23502358
Element autoServiceParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-service");

0 commit comments

Comments
 (0)