Skip to content

Commit bc3f90f

Browse files
committed
Forms Experimentation
1 parent 0d552d7 commit bc3f90f

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
@@ -105,11 +105,14 @@
105105
}
106106
}
107107

108-
async function onDocumentReady() {
108+
async function initialiseForms() {
109109
const startTime = new Date().getTime();
110110
let elements = document.querySelectorAll(FormContainerV2.selectors.self);
111111

112112
for (let i = 0; i < elements.length; i++) {
113+
if(elements.dataset?.cmpVisited === "true") {
114+
continue;
115+
}
113116
let loaderToAdd = document.querySelector("[data-cmp-adaptiveform-container-loader='"+ elements[i].id + "']");
114117
if(loaderToAdd){
115118
loaderToAdd.classList.add(FormContainerV2.loadingClass);
@@ -149,8 +152,12 @@
149152
document.cookie="wcmmode=disabled; max-age=0; path=/";
150153

151154
if (document.readyState !== "loading") {
152-
onDocumentReady();
155+
initialiseForms();
153156
} else {
154-
document.addEventListener("DOMContentLoaded", onDocumentReady);
157+
document.addEventListener("DOMContentLoaded", initialiseForms);
155158
}
159+
160+
window.Forms = window.Forms || {};
161+
window.Forms.CoreComponents = window.Forms.CoreComponents || {};
162+
window.Forms.CoreComponents.initialiseForms = initialiseForms;
156163
})();

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)