@@ -7,10 +7,13 @@ $(document).on('click', 'a', function (e) {
7
7
alert ( 'Please allow popups for this site' ) ;
8
8
}
9
9
} ) ;
10
+ $ ( '.btn input' ) . click ( function ( e ) {
11
+ e . stopPropagation ( ) ;
12
+ } ) ;
10
13
11
14
var tm = new TracerManager ( ) ;
12
15
13
- $ ( '#btn_interval input ' ) . on ( 'change' , function ( ) {
16
+ $ ( '#interval ' ) . on ( 'change' , function ( ) {
14
17
tm . interval = Number . parseFloat ( $ ( this ) . val ( ) * 1000 ) ;
15
18
showInfoToast ( 'Tracing interval has been set to ' + tm . interval / 1000 + ' second(s).' ) ;
16
19
} ) ;
@@ -181,9 +184,9 @@ var loadAlgorithm = function (category, algorithm) {
181
184
} ) ;
182
185
} ;
183
186
var list = { } ;
187
+ var anyOpened = false ;
184
188
$ . getJSON ( './algorithm/category.json' , function ( data ) {
185
189
list = data ;
186
- var init = false ;
187
190
for ( var category in list ) {
188
191
( function ( category ) {
189
192
var $category = $ ( '<button class="category">' ) . append ( list [ category ] . name ) ;
@@ -194,16 +197,16 @@ $.getJSON('./algorithm/category.json', function (data) {
194
197
var subList = list [ category ] . list ;
195
198
for ( var algorithm in subList ) {
196
199
( function ( category , subList , algorithm ) {
197
- var $algorithm = $ ( '<button class="indent">' )
200
+ var $algorithm = $ ( '<button class="indent collapse ">' )
198
201
. append ( subList [ algorithm ] )
199
202
. attr ( 'data-algorithm' , algorithm )
200
203
. attr ( 'data-category' , category )
201
204
. click ( function ( ) {
202
205
loadAlgorithm ( category , algorithm ) ;
203
206
} ) ;
204
207
$ ( '#list' ) . append ( $algorithm ) ;
205
- if ( ! init ) {
206
- init = true ;
208
+ if ( ! anyOpened ) {
209
+ anyOpened = true ;
207
210
$algorithm . click ( ) ;
208
211
}
209
212
} ) ( category , subList , algorithm ) ;
@@ -255,6 +258,15 @@ var showInfoToast = function (info) {
255
258
} , 3000 ) ;
256
259
} ;
257
260
261
+ $ ( '#btn_share' ) . click ( function ( ) {
262
+ var $icon = $ ( this ) . find ( '.fa-share' ) ;
263
+ $icon . addClass ( 'fa-spin fa-spin-faster' ) ;
264
+ shareScratchPaper ( function ( url ) {
265
+ $icon . removeClass ( 'fa-spin fa-spin-faster' ) ;
266
+ $ ( '#shared' ) . removeClass ( 'collapse' ) ;
267
+ $ ( '#shared' ) . val ( url ) ;
268
+ } ) ;
269
+ } ) ;
258
270
$ ( '#btn_run' ) . click ( function ( ) {
259
271
$ ( '#btn_trace' ) . click ( ) ;
260
272
try {
@@ -393,8 +405,6 @@ $module_container.on('DOMMouseScroll mousewheel', '.module_wrapper', function (e
393
405
tm . findOwner ( this ) . mousewheel ( e ) ;
394
406
} ) ;
395
407
396
- // Share scratch paper
397
-
398
408
var getParameterByName = function ( name ) {
399
409
var url = window . location . href ;
400
410
name = name . replace ( / [ \[ \] ] / g, "\\$&" ) ;
@@ -405,30 +415,38 @@ var getParameterByName = function (name) {
405
415
return decodeURIComponent ( results [ 2 ] . replace ( / \+ / g, " " ) ) ;
406
416
} ;
407
417
408
- var shareScratchPaper = function ( ) {
418
+ var shareScratchPaper = function ( callback ) {
409
419
var gist = {
410
420
'description' : 'temp' ,
411
421
'public' : true ,
412
422
'files' : {
413
- 'code.js' : { 'content' : dataEditor . getValue ( ) } ,
414
- 'data.js' : { 'content' : codeEditor . getValue ( ) }
423
+ 'code.js' : { 'content' : codeEditor . getValue ( ) } ,
424
+ 'data.js' : { 'content' : dataEditor . getValue ( ) }
415
425
}
416
426
} ;
417
427
$ . post ( 'https://api.github.com/gists' , JSON . stringify ( gist ) , function ( res ) {
418
428
var data = JSON . parse ( res ) ;
419
- console . log ( location . protocol + '//' + location . host + location . pathname + '?scratch-paper=' + data . id ) ;
429
+ if ( callback ) callback ( location . protocol + '//' + location . host + location . pathname + '?scratch-paper=' + data . id ) ;
420
430
} ) ;
421
431
} ;
422
432
423
433
var loadScratchPaper = function ( gistID ) {
434
+ anyOpened = true ;
424
435
$ . get ( 'https://api.github.com/gists/' + gistID , function ( res ) {
425
436
var data = JSON . parse ( res ) ;
426
- console . log ( data ) ;
437
+ var category = null ;
438
+ var algorithm = 'scratch_paper' ;
439
+ var dir = getFileDir ( category , algorithm , 'scratch_paper' ) ;
440
+ cachedFile [ dir ] = {
441
+ data : data . files [ 'data.js' ] . content ,
442
+ code : data . files [ 'code.js' ] . content
443
+ } ;
444
+ loadAlgorithm ( category , algorithm ) ;
427
445
} ) ;
428
446
} ;
429
447
430
- if ( / [ ? & ] s c r a t c h - p a p e r = / . test ( location . search ) ) {
431
- var gistID = getParameterByName ( 'scratch-paper' ) ;
448
+ var gistID = getParameterByName ( ' scratch-paper' ) ;
449
+ if ( gistID ) {
432
450
console . log ( gistID ) ;
433
451
loadScratchPaper ( gistID ) ;
434
452
}
0 commit comments