@@ -19,7 +19,7 @@ $.ajaxSetup({
19
19
$ . setQueryParameters = function ( params ) {
20
20
var url = location . href . split ( '?' ) [ 0 ] ;
21
21
var encodedParams = Object . keys ( params ) . map ( function ( key ) {
22
- return key + '=' + encodeURIComponent ( params [ key ] ) ;
22
+ return key + '=' + encodeURIComponent ( params [ key ] . replace ( '\/' , '' ) ) ;
23
23
} ) . join ( '&' ) ;
24
24
25
25
document . location = url + '?' + encodedParams ;
@@ -30,10 +30,8 @@ $(function() {
30
30
31
31
var defaultBundleAndExecute = function ( js , backend ) {
32
32
$ . get ( backend . endpoint + '/bundle' ) . done ( function ( bundle ) {
33
-
34
33
execute ( js , bundle , backend ) ;
35
34
} ) . fail ( function ( err ) {
36
-
37
35
myconsole . warn ( "Unable to load JS bundle" , err ) ;
38
36
} ) ;
39
37
} ;
@@ -71,31 +69,35 @@ $(function() {
71
69
endpoint : "https://compile.purescript.org/slides" ,
72
70
mainGist : "c62b5778a6a5f2bcd32dd97b294c068a" ,
73
71
extra_styling : '<link rel="stylesheet" href="css/slides.css">' ,
74
- extra_body : '<div id="main"></div>'
72
+ extra_body : '<div id="main"></div>' ,
73
+ bundleAndExecute : defaultBundleAndExecute
75
74
} ;
76
75
} else if ( backend === "flare" ) {
77
76
return {
78
77
backend : "flare" ,
79
78
endpoint : "https://compile.purescript.org/flare" ,
80
79
mainGist : "4f54d6dd213caa54d736ead597e17fee" ,
81
80
extra_styling : '<link rel="stylesheet" href="css/flare.css">' ,
82
- extra_body : '<div id="controls"></div><div id="output"></div><div id="tests"></div><canvas id="canvas" width="800" height="600"></canvas>'
81
+ extra_body : '<div id="controls"></div><div id="output"></div><div id="tests"></div><canvas id="canvas" width="800" height="600"></canvas>' ,
82
+ bundleAndExecute : defaultBundleAndExecute
83
83
} ;
84
84
} else if ( backend === "mathbox" ) {
85
85
return {
86
86
backend : "mathbox" ,
87
87
endpoint : "https://compile.purescript.org/purescript-mathbox" ,
88
88
mainGist : "aeecffd458fa8a365b4af3b3cd9d7759" ,
89
89
extra_styling : [ '<script src="js/mathbox-bundle.js"></script>' , '<link rel="stylesheet" href="css/mathbox.css">' ] . join ( "\n" ) ,
90
- extra_body : ''
90
+ extra_body : '' ,
91
+ bundleAndExecute : defaultBundleAndExecute
91
92
} ;
92
93
} else { // core
93
94
return {
94
95
backend : "core" ,
95
96
endpoint : "https://compile.purescript.org/try" ,
96
97
mainGist : "b57a766d417e109785540d584266fc33" ,
97
98
extra_styling : '' ,
98
- extra_body : ''
99
+ extra_body : '' ,
100
+ bundleAndExecute : defaultBundleAndExecute
99
101
} ;
100
102
}
101
103
} ;
@@ -134,9 +136,9 @@ $(function() {
134
136
} ) ;
135
137
} ;
136
138
137
- var setupSession = function ( ) {
138
- function guid ( ) {
139
- function s4 ( ) {
139
+ var setupSession = function ( onSessionExists ) {
140
+ var guid = function ( ) {
141
+ var s4 = function ( ) {
140
142
return Math . floor ( ( 1 + Math . random ( ) ) * 0x10000 )
141
143
. toString ( 16 )
142
144
. substring ( 1 ) ;
@@ -146,12 +148,12 @@ $(function() {
146
148
}
147
149
148
150
var sessionId = $ . QueryString [ 'session' ] ;
149
- if ( ! sessionId ) {
151
+ if ( sessionId ) {
152
+ onSessionExists ( sessionId ) ;
153
+ } else {
150
154
$ . QueryString [ 'session' ] = sessionId = guid ( ) ;
151
155
$ . setQueryParameters ( $ . QueryString ) ;
152
156
}
153
-
154
- return sessionId ;
155
157
} ;
156
158
157
159
var cacheCurrentCode = function ( backend ) {
@@ -273,7 +275,8 @@ $(function() {
273
275
var script = iframe . createElement ( 'script' ) ;
274
276
script . appendChild ( iframe . createTextNode ( scripts ) ) ;
275
277
276
- $ ( 'iframe' ) . load ( function ( ) {
278
+ $ ( 'iframe' ) . ready ( function ( ) {
279
+
277
280
var body = iframe . getElementsByTagName ( 'body' ) [ 0 ] ;
278
281
279
282
body . onclick = function ( ) {
@@ -496,13 +499,15 @@ $(function() {
496
499
hideMenus ( ) ;
497
500
} ) ;
498
501
499
- var sessionId = setupSession ( ) ;
500
- var cachedBackend = tryRestoreCachedCode ( sessionId ) ;
501
- if ( cachedBackend ) {
502
+ function withSession ( sessionId ) {
503
+ var cachedBackend = tryRestoreCachedCode ( sessionId ) ;
504
+ if ( cachedBackend ) {
502
505
setupEditor ( getBackend ( cachedBackend ) ) ;
503
- } else {
504
- var backend = getBackend ( $ . QueryString [ "backend" ] ) ;
505
- var gist = $ . QueryString [ "gist" ] || backend . mainGist ;
506
- loadFromGist ( gist , backend ) ;
507
- }
506
+ } else {
507
+ var backend = getBackend ( $ . QueryString [ "backend" ] ) ;
508
+ var gist = $ . QueryString [ "gist" ] || backend . mainGist ;
509
+ loadFromGist ( gist , backend ) ;
510
+ }
511
+ } ;
512
+ setupSession ( withSession ) ;
508
513
} ) ;
0 commit comments