@@ -123,10 +123,10 @@ function getStatusText(code) {
123
123
} ;
124
124
125
125
function select_dataset ( e ) {
126
- switch_dataset ( e . currentTarget . ds_name , true ) ;
126
+ switch_dataset ( e . currentTarget . ds_name , true , false ) ;
127
127
}
128
128
129
- function switch_dataset ( ds , sflag ) {
129
+ function switch_dataset ( ds , sflag , dflag ) {
130
130
if ( sflag ) {
131
131
datasets [ current_ds ] [ 0 ] = window . cmData . swapDoc ( datasets [ ds ] [ 0 ] ) ;
132
132
datasets [ current_ds ] [ 1 ] = window . cmVars . swapDoc ( datasets [ ds ] [ 1 ] ) ;
@@ -136,6 +136,13 @@ function getStatusText(code) {
136
136
window . cmVars . swapDoc ( datasets [ ds ] [ 1 ] ) ;
137
137
}
138
138
if ( ds != current_ds ) {
139
+ if ( dflag ) {
140
+ window . addEventListener ( 'beforeunload' , onBeforeUnload ) ;
141
+ if ( document . getElementById ( 'get_link' ) . value != 'false' ) {
142
+ document . title = 'JinjaFx [unsaved]' ;
143
+ }
144
+ }
145
+ dirty = true ;
139
146
document . getElementById ( 'selected_ds' ) . innerHTML = ds ;
140
147
current_ds = ds ;
141
148
onDataBlur ( ) ;
@@ -198,14 +205,14 @@ function getStatusText(code) {
198
205
199
206
function delete_dataset ( ds ) {
200
207
delete datasets [ ds ] ;
201
- window . addEventListener ( 'beforeunload' , onBeforeUnload ) ;
202
- if ( document . getElementById ( 'get_link' ) . value != 'false' ) {
203
- document . title = 'JinjaFx [unsaved]' ;
204
- }
205
- dirty = true ;
208
+ // window.addEventListener('beforeunload', onBeforeUnload);
209
+ // if (document.getElementById('get_link').value != 'false') {
210
+ // document.title = 'JinjaFx [unsaved]';
211
+ // }
212
+ // dirty = true;
206
213
207
214
rebuild_datasets ( ) ;
208
- switch_dataset ( Object . keys ( datasets ) [ 0 ] , false ) ;
215
+ switch_dataset ( Object . keys ( datasets ) [ 0 ] , false , true ) ;
209
216
fe . focus ( ) ;
210
217
}
211
218
@@ -540,6 +547,7 @@ function getStatusText(code) {
540
547
return false ;
541
548
}
542
549
550
+ dt . dataset = current_ds ;
543
551
dt . template = e ( window . cmTemplate . getValue ( ) . replace ( / \t / g, " " ) ) ;
544
552
545
553
if ( ( current_ds === 'Default' ) && ( Object . keys ( datasets ) . length === 1 ) ) {
@@ -553,7 +561,7 @@ function getStatusText(code) {
553
561
dt . global = e ( window . cmgVars . getValue ( ) . replace ( / \t / g, " " ) ) ;
554
562
}
555
563
556
- switch_dataset ( current_ds , true ) ;
564
+ switch_dataset ( current_ds , true , false ) ;
557
565
Object . keys ( datasets ) . forEach ( function ( ds ) {
558
566
dt . datasets [ ds ] = { } ;
559
567
dt . datasets [ ds ] . data = e ( datasets [ ds ] [ 0 ] . getValue ( ) ) ;
@@ -711,7 +719,12 @@ function getStatusText(code) {
711
719
try {
712
720
var dt = jsyaml . load ( d ( JSON . parse ( this . responseText ) [ 'dt' ] ) , jsyaml_schema ) ;
713
721
714
- load_datatemplate ( dt [ 'dt' ] , qs ) ;
722
+ if ( dt . hasOwnProperty ( 'dataset' ) ) {
723
+ load_datatemplate ( dt [ 'dt' ] , qs , dt [ 'dataset' ] ) ;
724
+ }
725
+ else {
726
+ load_datatemplate ( dt [ 'dt' ] , qs , null ) ;
727
+ }
715
728
dt_id = qs . dt ;
716
729
717
730
document . getElementById ( 'update' ) . classList . remove ( 'd-none' ) ;
@@ -1393,13 +1406,13 @@ function getStatusText(code) {
1393
1406
if ( ! datasets . hasOwnProperty ( new_ds ) ) {
1394
1407
datasets [ new_ds ] = [ CodeMirror . Doc ( '' , 'data' ) , CodeMirror . Doc ( '' , 'yaml' ) ] ;
1395
1408
rebuild_datasets ( ) ;
1396
- window . addEventListener ( 'beforeunload' , onBeforeUnload ) ;
1397
- if ( document . getElementById ( 'get_link' ) . value != 'false' ) {
1398
- document . title = 'JinjaFx [unsaved]' ;
1399
- }
1400
- dirty = true ;
1409
+ // window.addEventListener('beforeunload', onBeforeUnload);
1410
+ // if (document.getElementById('get_link').value != 'false') {
1411
+ // document.title = 'JinjaFx [unsaved]';
1412
+ // }
1413
+ // dirty = true;
1401
1414
}
1402
- switch_dataset ( new_ds , true ) ;
1415
+ switch_dataset ( new_ds , true , true ) ;
1403
1416
}
1404
1417
else {
1405
1418
set_status ( "darkred" , "ERROR" , "Invalid Data Set Name" ) ;
@@ -1687,7 +1700,7 @@ function getStatusText(code) {
1687
1700
}
1688
1701
1689
1702
function apply_dt ( ) {
1690
- load_datatemplate ( pending_dt , null ) ;
1703
+ load_datatemplate ( pending_dt , null , null ) ;
1691
1704
reset_location ( '' ) ;
1692
1705
dt_id = '' ;
1693
1706
dt_password = null ;
@@ -1747,7 +1760,7 @@ function getStatusText(code) {
1747
1760
}
1748
1761
}
1749
1762
1750
- function load_datatemplate ( _dt , _qs ) {
1763
+ function load_datatemplate ( _dt , _qs , _ds ) {
1751
1764
try {
1752
1765
current_ds = 'Default' ;
1753
1766
@@ -1762,7 +1775,12 @@ function getStatusText(code) {
1762
1775
datasets [ ds ] = [ CodeMirror . Doc ( data , 'data' ) , CodeMirror . Doc ( vars , 'yaml' ) ] ;
1763
1776
} ) ;
1764
1777
1765
- current_ds = Object . keys ( datasets ) [ 0 ] ;
1778
+ if ( ( _ds == null ) || ! datasets . hasOwnProperty ( _ds ) ) {
1779
+ current_ds = Object . keys ( datasets ) [ 0 ] ;
1780
+ }
1781
+ else {
1782
+ current_ds = _ds ;
1783
+ }
1766
1784
window . cmData . swapDoc ( datasets [ current_ds ] [ 0 ] ) ;
1767
1785
window . cmVars . swapDoc ( datasets [ current_ds ] [ 1 ] ) ;
1768
1786
0 commit comments