@@ -7,10 +7,13 @@ $(document).on('click', 'a', function (e) {
77 alert ( 'Please allow popups for this site' ) ;
88 }
99} ) ;
10+ $ ( '.btn input' ) . click ( function ( e ) {
11+ e . stopPropagation ( ) ;
12+ } ) ;
1013
1114var tm = new TracerManager ( ) ;
1215
13- $ ( '#btn_interval input ' ) . on ( 'change' , function ( ) {
16+ $ ( '#interval ' ) . on ( 'change' , function ( ) {
1417 tm . interval = Number . parseFloat ( $ ( this ) . val ( ) * 1000 ) ;
1518 showInfoToast ( 'Tracing interval has been set to ' + tm . interval / 1000 + ' second(s).' ) ;
1619} ) ;
@@ -181,9 +184,9 @@ var loadAlgorithm = function (category, algorithm) {
181184 } ) ;
182185} ;
183186var list = { } ;
187+ var anyOpened = false ;
184188$ . getJSON ( './algorithm/category.json' , function ( data ) {
185189 list = data ;
186- var init = false ;
187190 for ( var category in list ) {
188191 ( function ( category ) {
189192 var $category = $ ( '<button class="category">' ) . append ( list [ category ] . name ) ;
@@ -194,16 +197,16 @@ $.getJSON('./algorithm/category.json', function (data) {
194197 var subList = list [ category ] . list ;
195198 for ( var algorithm in subList ) {
196199 ( function ( category , subList , algorithm ) {
197- var $algorithm = $ ( '<button class="indent">' )
200+ var $algorithm = $ ( '<button class="indent collapse ">' )
198201 . append ( subList [ algorithm ] )
199202 . attr ( 'data-algorithm' , algorithm )
200203 . attr ( 'data-category' , category )
201204 . click ( function ( ) {
202205 loadAlgorithm ( category , algorithm ) ;
203206 } ) ;
204207 $ ( '#list' ) . append ( $algorithm ) ;
205- if ( ! init ) {
206- init = true ;
208+ if ( ! anyOpened ) {
209+ anyOpened = true ;
207210 $algorithm . click ( ) ;
208211 }
209212 } ) ( category , subList , algorithm ) ;
@@ -255,6 +258,15 @@ var showInfoToast = function (info) {
255258 } , 3000 ) ;
256259} ;
257260
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+ } ) ;
258270$ ( '#btn_run' ) . click ( function ( ) {
259271 $ ( '#btn_trace' ) . click ( ) ;
260272 try {
@@ -393,8 +405,6 @@ $module_container.on('DOMMouseScroll mousewheel', '.module_wrapper', function (e
393405 tm . findOwner ( this ) . mousewheel ( e ) ;
394406} ) ;
395407
396- // Share scratch paper
397-
398408var getParameterByName = function ( name ) {
399409 var url = window . location . href ;
400410 name = name . replace ( / [ \[ \] ] / g, "\\$&" ) ;
@@ -405,30 +415,38 @@ var getParameterByName = function (name) {
405415 return decodeURIComponent ( results [ 2 ] . replace ( / \+ / g, " " ) ) ;
406416} ;
407417
408- var shareScratchPaper = function ( ) {
418+ var shareScratchPaper = function ( callback ) {
409419 var gist = {
410420 'description' : 'temp' ,
411421 'public' : true ,
412422 '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 ( ) }
415425 }
416426 } ;
417427 $ . post ( 'https://api.github.com/gists' , JSON . stringify ( gist ) , function ( res ) {
418428 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 ) ;
420430 } ) ;
421431} ;
422432
423433var loadScratchPaper = function ( gistID ) {
434+ anyOpened = true ;
424435 $ . get ( 'https://api.github.com/gists/' + gistID , function ( res ) {
425436 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 ) ;
427445 } ) ;
428446} ;
429447
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 ) {
432450 console . log ( gistID ) ;
433451 loadScratchPaper ( gistID ) ;
434452}
0 commit comments