@@ -263,10 +263,10 @@ define([
263
263
$ ( that . wrapSelector ( '.vp-sn-menu-box' ) ) . toggle ( ) ;
264
264
} ) ;
265
265
266
- // filter menu popup
267
- $ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-filter ' ) , function ( evt ) {
266
+ // sort menu popup
267
+ $ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-sort ' ) , function ( evt ) {
268
268
evt . stopPropagation ( ) ;
269
- $ ( that . wrapSelector ( '.vp-sn-filter -menu-box' ) ) . toggle ( ) ;
269
+ $ ( that . wrapSelector ( '.vp-sn-sort -menu-box' ) ) . toggle ( ) ;
270
270
} ) ;
271
271
272
272
// menu click
@@ -295,6 +295,38 @@ define([
295
295
} else if ( menu == 'export' ) {
296
296
// set as export mode
297
297
$ ( that . wrapSelector ( '.vp-sn-body' ) ) . addClass ( 'vp-sn-export-mode' ) ;
298
+
299
+ // check all
300
+ $ ( that . wrapSelector ( '.vp-sn-check-all' ) ) . prop ( 'checked' , true ) ;
301
+ $ ( that . wrapSelector ( '.vp-sn-item-check' ) ) . prop ( 'checked' , true ) ;
302
+ } else if ( menu == 'default-snippets' ) {
303
+ // import default snippets
304
+ var defaultSnippets = {
305
+ 'default import' : 'import numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\n%matplotlib inline\nimport seaborn as sns'
306
+ }
307
+ var timestamp = new Date ( ) . getTime ( ) ;
308
+
309
+ var keys = Object . keys ( defaultSnippets ) ;
310
+ var importKeys = [ ] ;
311
+ keys . forEach ( key => {
312
+ var importKey = key ;
313
+ var importNo = 1 ;
314
+ var titleList = Object . keys ( that . codemirrorList ) ;
315
+ // set duplicate title
316
+ while ( titleList . includes ( importKey ) ) {
317
+ importKey = key + '_imported' + importNo ;
318
+ importNo += 1 ;
319
+ }
320
+ var newSnippet = { [ importKey ] : { code : defaultSnippets [ key ] , timestamp : timestamp } } ;
321
+ vpSetting . saveUserDefinedCode ( newSnippet ) ;
322
+
323
+ importKeys . push ( importKey ) ;
324
+ } ) ;
325
+ that . importedList = [ ...importKeys ] ;
326
+
327
+ that . loadUdfList ( ) ;
328
+
329
+ vpCommon . renderSuccessMessage ( 'Default snippets imported' ) ;
298
330
}
299
331
} ) ;
300
332
@@ -311,8 +343,8 @@ define([
311
343
}
312
344
} ) ;
313
345
314
- // filter item
315
- $ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-filter -menu-item' ) , function ( ) {
346
+ // sort item
347
+ $ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-sort -menu-item' ) , function ( ) {
316
348
var menu = $ ( this ) . data ( 'menu' ) ;
317
349
if ( menu == 'name' ) {
318
350
// sort by name
@@ -450,30 +482,37 @@ define([
450
482
451
483
// export snippets
452
484
$ ( document ) . on ( 'click' , this . wrapSelector ( '.vp-sn-export' ) , async function ( ) {
453
- var checked = $ ( that . wrapSelector ( '.vp-sn-item-check:checked' ) ) ;
454
- if ( checked . length <= 0 ) {
455
- return ;
456
- }
457
-
458
- var loadURLstyle = Jupyter . notebook . base_url + vpConst . BASE_PATH + vpConst . STYLE_PATH ;
459
- var loadURLhtml = Jupyter . notebook . base_url + vpConst . BASE_PATH + vpConst . SOURCE_PATH + "component/fileNavigation/index.html" ;
460
-
461
- that . loadCss ( loadURLstyle + "component/fileNavigation.css" ) ;
485
+ var menu = $ ( this ) . data ( 'menu' ) ;
486
+ if ( menu == 'cancel' ) {
487
+ // cancel
488
+ // return to default mode
489
+ $ ( that . wrapSelector ( '.vp-sn-body' ) ) . removeClass ( 'vp-sn-export-mode' ) ;
490
+ } else if ( menu == 'export' ) {
491
+ var checked = $ ( that . wrapSelector ( '.vp-sn-item-check:checked' ) ) ;
492
+ if ( checked . length <= 0 ) {
493
+ return ;
494
+ }
462
495
463
- await $ ( `<div id="vp_fileNavigation"></div>` )
464
- . load ( loadURLhtml , ( ) => {
465
-
466
- $ ( '#vp_fileNavigation' ) . removeClass ( "hide" ) ;
467
- $ ( '#vp_fileNavigation' ) . addClass ( "show" ) ;
468
-
469
- var { vp_init
470
- , vp_bindEventFunctions } = fileNavigation ;
471
-
472
- fileNavigation . vp_init ( that , "SAVE_SNIPPETS" ) ;
473
- // fileNavigation.vp_init(that.getStateAll());
474
- fileNavigation . vp_bindEventFunctions ( ) ;
475
- } )
476
- . appendTo ( "#site" ) ;
496
+ var loadURLstyle = Jupyter . notebook . base_url + vpConst . BASE_PATH + vpConst . STYLE_PATH ;
497
+ var loadURLhtml = Jupyter . notebook . base_url + vpConst . BASE_PATH + vpConst . SOURCE_PATH + "component/fileNavigation/index.html" ;
498
+
499
+ that . loadCss ( loadURLstyle + "component/fileNavigation.css" ) ;
500
+
501
+ await $ ( `<div id="vp_fileNavigation"></div>` )
502
+ . load ( loadURLhtml , ( ) => {
503
+
504
+ $ ( '#vp_fileNavigation' ) . removeClass ( "hide" ) ;
505
+ $ ( '#vp_fileNavigation' ) . addClass ( "show" ) ;
506
+
507
+ var { vp_init
508
+ , vp_bindEventFunctions } = fileNavigation ;
509
+
510
+ fileNavigation . vp_init ( that , "SAVE_SNIPPETS" ) ;
511
+ // fileNavigation.vp_init(that.getStateAll());
512
+ fileNavigation . vp_bindEventFunctions ( ) ;
513
+ } )
514
+ . appendTo ( "#site" ) ;
515
+ }
477
516
478
517
} ) ;
479
518
@@ -556,12 +595,12 @@ define([
556
595
item . appendFormatLine ( '<i class="{0}"></i>' , 'fa fa-circle vp-sn-imported-item' ) ;
557
596
}
558
597
item . appendFormatLine ( '<div class="{0}">' , 'vp-sn-item-menu' ) ;
559
- item . appendFormatLine ( '<div class="{0}" data-menu="{1}">'
560
- , 'vp-sn-item-menu-item' , 'duplicate' ) ;
598
+ item . appendFormatLine ( '<div class="{0}" data-menu="{1}" title="{2}" >'
599
+ , 'vp-sn-item-menu-item' , 'duplicate' , 'Duplicate' ) ;
561
600
item . appendFormatLine ( '<img src="{0}"/>' , '/nbextensions/visualpython/resource/snippets/duplicate.svg' ) ;
562
601
item . appendLine ( '</div>' ) ;
563
- item . appendFormatLine ( '<div class="{0}" data-menu="{1}">'
564
- , 'vp-sn-item-menu-item' , 'delete' ) ;
602
+ item . appendFormatLine ( '<div class="{0}" data-menu="{1}" title="{2}" >'
603
+ , 'vp-sn-item-menu-item' , 'delete' , 'Delete' ) ;
565
604
item . appendFormatLine ( '<img src="{0}"/>' , '/nbextensions/visualpython/resource/snippets/delete.svg' ) ;
566
605
item . appendLine ( '</div>' ) ;
567
606
item . appendLine ( '</div>' ) ; // end of vp-sn-item-menu
0 commit comments