Skip to content

Commit 42077bb

Browse files
DhruvSharma-845dhrsharmvjystvasrivastvrismehta
authored
feat(print-properties): Adding dorContainer in each component and pageTemplate in FormContainer and new print specific components (#1567)
* feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): Fixing issues with rebasing * feat(print-properties): Import sorting * feat(print-properties): Removing unnecessary file * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): Fixing issues with rebasing * feat(print-properties): Import sorting * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing synthetic resource changes * feat(print-properties): Adding test case for channel based fragment resolution * feat(print-properties): Removing the pageTemplate handling as it is not in separate PrintContainer * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): Fixing issues with rebasing * feat(print-properties): Import sorting * feat(print-properties): Removing unnecessary file * feat(print-properties): Adding the change to resolve fragment based on its guideContainer in hierarchy * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): Fixing issues with rebasing * feat(print-properties): Import sorting * feat(print-properties): Removing unnecessary file * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Adding channel check while resolving fragment * feat(print-properties): Adding interfaces and model implementations * feat(print-properties): Moving print related model implementations in separate bundle * feat(print-properties): Updating schema version for more test files * feat(print-properties): RTC - Adding components - Barcode, Line and Rectangle * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): RTC - Adding UTs for print specific interfaces * feat(print-properties): Adding DoR view and correcting a typo * feat(print-properties): Adding more UTs * feat(print-properties): Removing print related files * feat(print-properties): Reformatting to avoid unnecessary changes * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing unnecessary file * feat(print-properties): Refactoring changes * feat(print-properties): Fixing issues with rebasing * feat(print-properties): Import sorting * feat(print-properties): Removing unnecessary file * feat(print-properties): Removing synthetic resource changes * feat(print-properties): Adding test case for channel based fragment resolution * feat(print-properties): Removing the pageTemplate handling as it is not in separate PrintContainer * feat(print-properties): Removing code came due to merge conflicts * feat(print-properties): Removing new schema; it is used in print specific sdk * feat(print-properties): Removing new field types * feat(print-properties): Updating version of dor api package * feat(print-properties): Converting string literals to constants * feat(print-properties): Adding test case for getDorContainer in the FormComponent inetrface * feat(print-cc): Adding changes to pass down channel info to correctly resolve fragment * feat(print-cc): Removing unnecessary change * feat(print-cc): Adding dorcontainer check in UT * feat(print-cc): Fixing conflict issues * feat(print-cc): Fixing conflict issues * feat(print-cc): Adding test cases for Views classes * feat(print-cc): Adding test case * FORMS-19758: Addition of fragmentPath to the CRISPR JSON in Author View (#1593) * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * updating crispr spec version in dialog * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * RTC Updated AdaptiveFormVersion * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Adding Default specVersionfor formcontainerv2 test * Added fragment path in Crispr json for Author view * RTC Adding Default specVersionfor formcontainerv2 test * RTC updating test baseline * updated baseline * updating baseline * Added test cases and addressed review comments * RTC Removed duplicate function * RTC Updated AdaptiveFormVersion * RTC Updated AdaptiveFormVersion or rest-submission * RTC Updated AdaptiveFormVersion or rest-submission * RTC Updated AdaptiveFormVersion in formcontainerv2 * RTC Updated AdaptiveFormVersion in formcontainerv2WithAutoSave * Fixing code formatting --------- Co-authored-by: srivastv <[email protected]> Co-authored-by: Rishi Mehta <[email protected]> * feat(print-cc): Updating version in test case --------- Co-authored-by: dhrsharm <[email protected]> Co-authored-by: vjystva <[email protected]> Co-authored-by: srivastv <[email protected]> Co-authored-by: Rishi Mehta <[email protected]>
1 parent ec73f41 commit 42077bb

File tree

22 files changed

+447
-19
lines changed

22 files changed

+447
-19
lines changed

bundles/af-core/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -653,6 +653,10 @@
653653
<artifactId>core.wcm.components.core</artifactId>
654654
<scope>provided</scope>
655655
</dependency>
656+
<dependency>
657+
<groupId>com.adobe.aem</groupId>
658+
<artifactId>core-forms-print-components-print-dor-api</artifactId>
659+
</dependency>
656660
<dependency>
657661
<groupId>org.apache.sling</groupId>
658662
<artifactId>org.apache.sling.testing.caconfig-mock-plugin</artifactId>

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/form/FormConstants.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,4 +148,7 @@ private FormConstants() {
148148

149149
/** Form definition type indicating submission view */
150150
public static final String FORM_DEFINITION_SUBMISSION = "submission";
151+
152+
/** The channel for print */
153+
public static final String CHANNEL_PRINT = "print";
151154
}

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/ButtonImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ public Map<String, Object> getDorProperties() {
109109
if (dorColspan != null) {
110110
customDorProperties.put("dorColspan", dorColspan);
111111
}
112+
Map<String, Object> dorContainer = getDorContainer();
113+
if (dorContainer != null) {
114+
customDorProperties.put(CUSTOM_DOR_CONTAINER_WRAPPER, dorContainer);
115+
}
112116
return customDorProperties;
113117
}
114118

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/FragmentImpl.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
1616
package com.adobe.cq.forms.core.components.internal.models.v1.form;
1717

18-
import java.util.*;
18+
import java.util.ArrayList;
19+
import java.util.List;
20+
import java.util.Map;
1921

2022
import javax.annotation.PostConstruct;
2123

@@ -57,6 +59,7 @@
5759
public class FragmentImpl extends PanelImpl implements Fragment {
5860

5961
public static final String CUSTOM_FRAGMENT_PROPERTY_WRAPPER = "fd:fragment";
62+
private static final String PRINT_CHANNEL_PATH = "/" + "print";
6063

6164
@OSGiService
6265
private SlingModelFilter slingModelFilter;
@@ -72,7 +75,9 @@ public class FragmentImpl extends PanelImpl implements Fragment {
7275
@PostConstruct
7376
private void initFragmentModel() {
7477
ResourceResolver resourceResolver = resource.getResourceResolver();
75-
fragmentContainer = ComponentUtils.getFragmentContainer(resourceResolver, fragmentPath);
78+
79+
String updatedFragmentPath = this.getFragmentPathBasedOnChannel(fragmentPath);
80+
fragmentContainer = ComponentUtils.getFragmentContainer(resourceResolver, updatedFragmentPath);
7681
if (request != null) {
7782
FormClientLibManager formClientLibManager = request.adaptTo(FormClientLibManager.class);
7883
String clientLibRef = getClientLibForFragment();
@@ -82,6 +87,13 @@ private void initFragmentModel() {
8287
}
8388
}
8489

90+
private String getFragmentPathBasedOnChannel(String fragmentPath) {
91+
if (FormConstants.CHANNEL_PRINT.equals(this.channel)) {
92+
return fragmentPath + PRINT_CHANNEL_PATH;
93+
}
94+
return fragmentPath;
95+
}
96+
8597
@JsonView(Views.Author.class)
8698
public String getFragmentPath() {
8799
return fragmentPath;

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/internal/models/v1/form/PanelImpl.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ public Map<String, Object> getDorProperties() {
145145
if (dorLayoutType != null) {
146146
customDorProperties.put(DOR_LAYOUT_TYPE, dorLayoutType);
147147
}
148+
Map<String, Object> dorContainer = getDorContainer();
149+
if (dorContainer != null) {
150+
customDorProperties.put(CUSTOM_DOR_CONTAINER_WRAPPER, dorContainer);
151+
}
148152
return customDorProperties;
149153
}
150154

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/models/form/FormComponent.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ default Map<String, Object> getDorProperties() {
7676
return Collections.emptyMap();
7777
}
7878

79+
/**
80+
* DOR container
81+
*
82+
* @since com.adobe.cq.forms.core.components.models.form 2.1.0
83+
*/
84+
@JsonView(Views.DoR.class)
85+
@JsonInclude(JsonInclude.Include.NON_EMPTY)
86+
default Map<String, Object> getDorContainer() {
87+
return Collections.emptyMap();
88+
}
89+
7990
/**
8091
* Returns getPath of the form field
8192
*

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/util/AbstractComponentImpl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,7 @@
2323
import org.apache.commons.lang3.StringUtils;
2424
import org.apache.sling.api.SlingHttpServletRequest;
2525
import org.apache.sling.api.resource.Resource;
26-
import org.apache.sling.models.annotations.injectorspecific.InjectionStrategy;
27-
import org.apache.sling.models.annotations.injectorspecific.ScriptVariable;
28-
import org.apache.sling.models.annotations.injectorspecific.Self;
29-
import org.apache.sling.models.annotations.injectorspecific.SlingObject;
26+
import org.apache.sling.models.annotations.injectorspecific.*;
3027
import org.jetbrains.annotations.NotNull;
3128
import org.jetbrains.annotations.Nullable;
3229
import org.osgi.annotation.versioning.ConsumerType;
@@ -43,6 +40,7 @@
4340
import com.day.cq.wcm.api.Page;
4441
import com.day.cq.wcm.api.PageManager;
4542
import com.day.cq.wcm.api.components.ComponentContext;
43+
import com.fasterxml.jackson.annotation.JsonIgnore;
4644

4745
// this class is copied from WCM, since for forms adapting via slingRequest is optional
4846

@@ -85,6 +83,11 @@ public abstract class AbstractComponentImpl implements Component {
8583
@Nullable
8684
private Page currentPage;
8785

86+
@ValueMapValue(injectionStrategy = InjectionStrategy.OPTIONAL, name = "fd:channel")
87+
@Nullable
88+
@JsonIgnore
89+
protected String channel;
90+
8891
/**
8992
* The ID for this component.
9093
*/

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/util/AbstractContainerImpl.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,20 +15,18 @@
1515
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
1616
package com.adobe.cq.forms.core.components.util;
1717

18-
import java.util.ArrayList;
19-
import java.util.Arrays;
20-
import java.util.Collections;
21-
import java.util.LinkedHashMap;
22-
import java.util.LinkedList;
23-
import java.util.List;
24-
import java.util.Map;
18+
import java.util.*;
2519

2620
import javax.annotation.Nonnull;
2721
import javax.annotation.PostConstruct;
2822

2923
import org.apache.commons.lang3.ArrayUtils;
3024
import org.apache.sling.api.SlingHttpServletRequest;
3125
import org.apache.sling.api.resource.Resource;
26+
import org.apache.sling.api.resource.ResourceUtil;
27+
import org.apache.sling.api.resource.ValueMap;
28+
import org.apache.sling.api.wrappers.ValueMapDecorator;
29+
import org.apache.sling.api.wrappers.ValueMapUtil;
3230
import org.apache.sling.models.annotations.injectorspecific.OSGiService;
3331
import org.apache.sling.models.annotations.injectorspecific.SlingObject;
3432
import org.apache.sling.models.factory.ModelFactory;
@@ -39,9 +37,11 @@
3937

4038
import com.adobe.cq.export.json.ComponentExporter;
4139
import com.adobe.cq.export.json.SlingModelFilter;
40+
import com.adobe.cq.forms.core.components.internal.form.FormConstants;
4241
import com.adobe.cq.forms.core.components.models.form.Container;
4342
import com.adobe.cq.forms.core.components.models.form.ContainerConstraint;
4443
import com.adobe.cq.forms.core.components.models.form.FormComponent;
44+
import com.adobe.granite.ui.components.ds.ValueMapResource;
4545
import com.day.cq.wcm.foundation.model.export.AllowedComponentsExporter;
4646
import com.day.cq.wcm.foundation.model.responsivegrid.ResponsiveGrid;
4747
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -143,6 +143,13 @@ protected <T> Map<String, T> getChildrenModels(@Nullable SlingHttpServletRequest
143143
Map<String, T> models = new LinkedHashMap<>();
144144
for (Resource child : filteredChildrenResources) {
145145
T model = null;
146+
if (FormConstants.CHANNEL_PRINT.equals(this.channel)) {
147+
// Create a ValueMap with additional properties
148+
ValueMap additionalProperties = new ValueMapDecorator(new HashMap<>());
149+
additionalProperties.put("fd:channel", this.channel);
150+
ValueMap properties = ValueMapUtil.merge(ResourceUtil.getValueMap(child), additionalProperties);
151+
child = new ValueMapResource(child.getResourceResolver(), child.getPath(), child.getResourceType(), properties);
152+
}
146153
if (request != null) {
147154
// todo: if possible set i18n form parent to child here, this would optimize the first form rendering
148155
model = modelFactory.getModelFromWrappedRequest(request, child, modelClass);

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/util/AbstractFormComponentImpl.java

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,18 @@
1717

1818
import java.io.IOException;
1919
import java.math.BigDecimal;
20-
import java.util.*;
20+
import java.util.AbstractMap;
21+
import java.util.ArrayList;
22+
import java.util.Arrays;
23+
import java.util.Calendar;
24+
import java.util.Collections;
25+
import java.util.HashMap;
26+
import java.util.HashSet;
27+
import java.util.LinkedHashMap;
28+
import java.util.List;
29+
import java.util.Map;
30+
import java.util.Optional;
31+
import java.util.Set;
2132
import java.util.function.Predicate;
2233
import java.util.regex.Pattern;
2334
import java.util.stream.Collectors;
@@ -44,11 +55,13 @@
4455
import com.adobe.aemds.guide.utils.GuideUtils;
4556
import com.adobe.cq.forms.core.components.datalayer.FormComponentData;
4657
import com.adobe.cq.forms.core.components.internal.datalayer.ComponentDataImpl;
58+
import com.adobe.cq.forms.core.components.internal.form.FormConstants;
4759
import com.adobe.cq.forms.core.components.internal.form.ReservedProperties;
4860
import com.adobe.cq.forms.core.components.models.form.BaseConstraint;
4961
import com.adobe.cq.forms.core.components.models.form.FieldType;
5062
import com.adobe.cq.forms.core.components.models.form.FormComponent;
5163
import com.adobe.cq.forms.core.components.models.form.Label;
64+
import com.adobe.cq.forms.core.components.models.form.print.dorapi.DorContainer;
5265
import com.adobe.cq.wcm.core.components.models.Component;
5366
import com.adobe.cq.wcm.core.components.util.ComponentUtils;
5467
import com.day.cq.i18n.I18n;
@@ -58,6 +71,7 @@
5871
import com.fasterxml.jackson.annotation.JsonInclude;
5972
import com.fasterxml.jackson.annotation.JsonProperty;
6073
import com.fasterxml.jackson.core.JsonGenerator;
74+
import com.fasterxml.jackson.core.type.TypeReference;
6175
import com.fasterxml.jackson.databind.JsonNode;
6276
import com.fasterxml.jackson.databind.JsonSerializer;
6377
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -258,6 +272,7 @@ protected boolean getEditMode() {
258272
}
259273

260274
public static final String CUSTOM_DOR_PROPERTY_WRAPPER = "fd:dor";
275+
public static final String CUSTOM_DOR_CONTAINER_WRAPPER = "dorContainer";
261276
// used for DOR and SPA editor to work
262277
public static final String CUSTOM_JCR_PATH_PROPERTY_WRAPPER = "fd:path";
263278

@@ -544,6 +559,10 @@ public Map<String, Object> getDorProperties() {
544559
if (dorBindRef != null) {
545560
customDorProperties.put("dorBindRef", dorBindRef);
546561
}
562+
Map<String, Object> dorContainer = getDorContainer();
563+
if (dorContainer != null) {
564+
customDorProperties.put(CUSTOM_DOR_CONTAINER_WRAPPER, dorContainer);
565+
}
547566
return customDorProperties;
548567
}
549568

@@ -567,4 +586,26 @@ private List<String> getDisabledXFAScripts() {
567586
}
568587
return new ArrayList<>(disabledScripts);
569588
}
589+
590+
/**
591+
* Returns the dor container properties.
592+
*
593+
* @return Map of dor container properties if `fd:dorContainer` node is present otherwise returns null
594+
*/
595+
@JsonIgnore
596+
@Override
597+
public Map<String, Object> getDorContainer() {
598+
if (FormConstants.CHANNEL_PRINT.equals(this.channel) && resource != null) {
599+
Resource dorContainerResource = resource.getChild("fd:dorContainer");
600+
if (dorContainerResource != null) {
601+
DorContainer dorContainer = dorContainerResource.adaptTo(DorContainer.class);
602+
ObjectMapper objectMapper = new ObjectMapper();
603+
if (dorContainer != null) {
604+
return objectMapper.convertValue(dorContainer, new TypeReference<Map<String, Object>>() {});
605+
}
606+
}
607+
}
608+
return null;
609+
}
610+
570611
}

bundles/af-core/src/main/java/com/adobe/cq/forms/core/components/views/Views.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,10 @@ public static class Publish {}
2929
*/
3030
public static class Author extends Publish {}
3131

32+
/**
33+
* Use this view for including the print-specific properties
34+
* Eg; dorContainer and pageTemplate
35+
*/
36+
public static class DoR extends Author {}
37+
3238
}

0 commit comments

Comments
 (0)