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 109
109
}
110
110
}
111
111
112
- async function onDocumentReady ( ) {
112
+ async function initialiseForms ( ) {
113
113
const startTime = new Date ( ) . getTime ( ) ;
114
114
let elements = document . querySelectorAll ( FormContainerV2 . selectors . self ) ;
115
115
116
116
for ( let i = 0 ; i < elements . length ; i ++ ) {
117
+ if ( elements . dataset ?. cmpVisited === "true" ) {
118
+ continue ;
119
+ }
117
120
let loaderToAdd = document . querySelector ( "[data-cmp-adaptiveform-container-loader='" + elements [ i ] . id + "']" ) ;
118
121
if ( loaderToAdd ) {
119
122
loaderToAdd . classList . add ( FormContainerV2 . loadingClass ) ;
153
156
document . cookie = "wcmmode=disabled; max-age=0; path=/" ;
154
157
155
158
if ( document . readyState !== "loading" ) {
156
- onDocumentReady ( ) ;
159
+ initialiseForms ( ) ;
157
160
} else {
158
- document . addEventListener ( "DOMContentLoaded" , onDocumentReady ) ;
161
+ document . addEventListener ( "DOMContentLoaded" , initialiseForms ) ;
159
162
}
163
+
164
+ window . Forms = window . Forms || { } ;
165
+ window . Forms . CoreComponents = window . Forms . CoreComponents || { } ;
166
+ window . Forms . CoreComponents . initialiseForms = initialiseForms ;
160
167
} ) ( ) ;
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