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
2 files changed +19
-4
lines changed Original file line number Diff line number Diff line change 105
105
}
106
106
}
107
107
108
- async function onDocumentReady ( ) {
108
+ async function initialiseForms ( ) {
109
109
const startTime = new Date ( ) . getTime ( ) ;
110
110
let elements = document . querySelectorAll ( FormContainerV2 . selectors . self ) ;
111
111
112
112
for ( let i = 0 ; i < elements . length ; i ++ ) {
113
+ if ( elements . dataset ?. cmpVisited === "true" ) {
114
+ continue ;
115
+ }
113
116
let loaderToAdd = document . querySelector ( "[data-cmp-adaptiveform-container-loader='" + elements [ i ] . id + "']" ) ;
114
117
if ( loaderToAdd ) {
115
118
loaderToAdd . classList . add ( FormContainerV2 . loadingClass ) ;
149
152
document . cookie = "wcmmode=disabled; max-age=0; path=/" ;
150
153
151
154
if ( document . readyState !== "loading" ) {
152
- onDocumentReady ( ) ;
155
+ initialiseForms ( ) ;
153
156
} else {
154
- document . addEventListener ( "DOMContentLoaded" , onDocumentReady ) ;
157
+ document . addEventListener ( "DOMContentLoaded" , initialiseForms ) ;
155
158
}
159
+
160
+ window . Forms = window . Forms || { } ;
161
+ window . Forms . CoreComponents = window . Forms . CoreComponents || { } ;
162
+ window . Forms . CoreComponents . initialiseForms = initialiseForms ;
156
163
} ) ( ) ;
Original file line number Diff line number Diff line change @@ -105,6 +105,7 @@ class Utils {
105
105
106
106
const pathAttr = '[data-cmp-path="' + formContainer . getPath ( ) + '"]' ;
107
107
const formContainerElement = document . querySelector ( pathAttr ) ;
108
+ if ( ! formContainerElement ) return ;
108
109
observer . observe ( formContainerElement , {
109
110
subtree : true ,
110
111
childList : true ,
@@ -320,7 +321,14 @@ class Utils {
320
321
*/
321
322
static async setupFormContainer ( createFormContainer , formContainerSelector , formContainerClass ) {
322
323
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
+ } ) ;
324
332
for ( let i = 0 ; i < elements . length ; i ++ ) {
325
333
const dataset = Utils . readData ( elements [ i ] , formContainerClass ) ;
326
334
const customFunctionUrl = dataset [ "customFunctionsModuleUrl" ] ;
You can’t perform that action at this time.
0 commit comments