@@ -21,14 +21,16 @@ hqDefine("cloudcare/js/formplayer/app", function () {
21
21
var FormplayerFrontend = new Marionette . Application ( ) ;
22
22
23
23
FormplayerFrontend . on ( "before:start" , function ( app , options ) {
24
+ const xsrfRequest = new $ . Deferred ( ) ; // create Deferred object
25
+ this . xsrfPromise = xsrfRequest . promise ( ) ; // returns only the promise of the object
24
26
// Make a get call if the csrf token isn't available when the page loads.
25
27
if ( $ . cookie ( 'XSRF-TOKEN' ) === undefined ) {
26
- $ . get ( {
27
- url : options . formplayer_url + '/serverup' ,
28
- global : false ,
29
- async : false ,
30
- xhrFields : { withCredentials : true } ,
31
- } ) ;
28
+ $ . get (
29
+ { url : options . formplayer_url + '/serverup' , global : false , xhrFields : { withCredentials : true } }
30
+ ) . always ( xsrfRequest . resolve ( ) ) ;
31
+ } else {
32
+ // resolve immediately
33
+ xsrfRequest . resolve ( ) ;
32
34
}
33
35
var RegionContainer = Marionette . View . extend ( {
34
36
el : "#menu-container" ,
@@ -305,8 +307,10 @@ hqDefine("cloudcare/js/formplayer/app", function () {
305
307
hqRequire ( [ "cloudcare/js/formplayer/apps/api" ] , function ( AppsAPI ) {
306
308
AppsAPI . primeApps ( user . restoreAs , options . apps ) ;
307
309
} ) ;
308
-
309
- $ . when ( FormplayerUtils . getSavedDisplayOptions ( ) ) . done ( function ( savedDisplayOptions ) {
310
+ $ . when (
311
+ FormplayerUtils . getSavedDisplayOptions ( ) ,
312
+ FormplayerFrontend . xsrfPromise
313
+ ) . done ( function ( savedDisplayOptions ) {
310
314
savedDisplayOptions = _ . pick (
311
315
savedDisplayOptions ,
312
316
Const . ALLOWED_SAVED_OPTIONS
0 commit comments