Skip to content

Commit 5cee138

Browse files
dmaurya929ci-build
authored and
ci-build
committed
Forms Experimentation
1 parent fe3a9ac commit 5cee138

File tree

2 files changed

+19
-4
lines changed
  • ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/clientlibs/site/js
  • ui.frontend/src

2 files changed

+19
-4
lines changed

ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/form/container/v2/container/clientlibs/site/js/formcontainerview.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,14 @@
109109
}
110110
}
111111

112-
async function onDocumentReady() {
112+
async function initialiseForms() {
113113
const startTime = new Date().getTime();
114114
let elements = document.querySelectorAll(FormContainerV2.selectors.self);
115115

116116
for (let i = 0; i < elements.length; i++) {
117+
if(elements.dataset?.cmpVisited === "true") {
118+
continue;
119+
}
117120
let loaderToAdd = document.querySelector("[data-cmp-adaptiveform-container-loader='"+ elements[i].id + "']");
118121
if(loaderToAdd){
119122
loaderToAdd.classList.add(FormContainerV2.loadingClass);
@@ -153,8 +156,12 @@
153156
document.cookie="wcmmode=disabled; max-age=0; path=/";
154157

155158
if (document.readyState !== "loading") {
156-
onDocumentReady();
159+
initialiseForms();
157160
} else {
158-
document.addEventListener("DOMContentLoaded", onDocumentReady);
161+
document.addEventListener("DOMContentLoaded", initialiseForms);
159162
}
163+
164+
window.Forms = window.Forms || {};
165+
window.Forms.CoreComponents = window.Forms.CoreComponents || {};
166+
window.Forms.CoreComponents.initialiseForms = initialiseForms;
160167
})();

ui.frontend/src/utils.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ class Utils {
105105

106106
const pathAttr = '[data-cmp-path="' + formContainer.getPath() + '"]';
107107
const formContainerElement = document.querySelector(pathAttr);
108+
if(!formContainerElement) return;
108109
observer.observe(formContainerElement, {
109110
subtree: true,
110111
childList: true,
@@ -320,7 +321,14 @@ class Utils {
320321
*/
321322
static async setupFormContainer(createFormContainer, formContainerSelector, formContainerClass) {
322323
FunctionRuntime.registerFunctions(customFunctions);
323-
let elements = document.querySelectorAll(formContainerSelector);
324+
let elements = Array.from(document.querySelectorAll(formContainerSelector));
325+
// Avoid already initialised form container ( in case of multiple container in site )
326+
elements = elements
327+
.filter(element => element.dataset["cmpVisited"] !== "true")
328+
.map(element => {
329+
element.dataset["cmpVisited"] = "true";
330+
return element;
331+
});
324332
for (let i = 0; i < elements.length; i++) {
325333
const dataset = Utils.readData(elements[i], formContainerClass);
326334
const customFunctionUrl = dataset["customFunctionsModuleUrl"];

0 commit comments

Comments
 (0)