@@ -113,8 +113,8 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
113113 "slidingMode" : "adjust" ,
114114 "slidingTrigger" : "key" ,
115115 "theme" : "" ,
116- "autohideControls" : newDialogCtrl . element . querySelector ( 'input[name="config[autohideControls]"]' ) . checked ,
117- "captionsVisible" : newDialogCtrl . element . querySelector ( 'input[name="config[captionsVisible]"]' ) . checked ,
116+ "autohideControls" : ( newDialogCtrl . element . querySelector ( 'input[name="config[autohideControls]"]' ) || { } ) . checked || false ,
117+ "captionsVisible" : ( newDialogCtrl . element . querySelector ( 'input[name="config[captionsVisible]"]' ) || { } ) . checked || false ,
118118 "clipTimeVisible" : false ,
119119 "layoutArea" : {
120120 "areaTop" : [ ] ,
@@ -220,13 +220,21 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
220220 }
221221 } ) ;
222222
223- return Promise . all ( writeTasks ) ;
223+ return Promise . all ( writeTasks ) . then ( function ( ) {
224+ return newID ;
225+ } ) ;
224226 } ) ;
225- } ) . then ( function ( ) {
227+ } ) . then ( function ( newID ) {
228+ var wasEditMode = FrameTrail . getState ( 'editMode' ) ;
226229 newDialogCtrl . close ( ) ;
227230 FrameTrail . module ( 'Database' ) . loadHypervideoData (
228231 function ( ) {
229232 FrameTrail . module ( 'ViewOverview' ) . refreshList ( ) ;
233+ history . pushState ( { editMode : wasEditMode } , '' , '#hypervideo=' + newID ) ;
234+ if ( wasEditMode ) {
235+ FrameTrail . changeState ( 'editMode' , false ) ;
236+ }
237+ FrameTrail . module ( 'HypervideoModel' ) . updateHypervideo ( newID , wasEditMode , true ) ;
230238 } ,
231239 function ( ) { }
232240 ) ;
@@ -476,8 +484,8 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
476484 "slidingMode" : "adjust" ,
477485 "slidingTrigger" : "key" ,
478486 "theme" : "" ,
479- "autohideControls" : newDialog . querySelector ( 'input[name="config[autohideControls]"]' ) . checked ,
480- "captionsVisible" : newDialog . querySelector ( 'input[name="config[captionsVisible]"]' ) . checked ,
487+ "autohideControls" : ( newDialog . querySelector ( 'input[name="config[autohideControls]"]' ) || { } ) . checked || false ,
488+ "captionsVisible" : ( newDialog . querySelector ( 'input[name="config[captionsVisible]"]' ) || { } ) . checked || false ,
481489 "clipTimeVisible" : false ,
482490 "layoutArea" : {
483491 "areaTop" : [ ] ,
@@ -538,10 +546,17 @@ FrameTrail.defineModule('Sidebar', function(FrameTrail){
538546 . then ( function ( response ) {
539547 switch ( response [ 'code' ] ) {
540548 case 0 :
549+ var newID = response [ 'newHypervideoID' ] ;
550+ var wasEditMode = FrameTrail . getState ( 'editMode' ) ;
541551 newDialogCtrl . close ( ) ;
542552 FrameTrail . module ( 'Database' ) . loadHypervideoData (
543553 function ( ) {
544554 FrameTrail . module ( 'ViewOverview' ) . refreshList ( ) ;
555+ history . pushState ( { editMode : wasEditMode } , '' , '#hypervideo=' + newID ) ;
556+ if ( wasEditMode ) {
557+ FrameTrail . changeState ( 'editMode' , false ) ;
558+ }
559+ FrameTrail . module ( 'HypervideoModel' ) . updateHypervideo ( newID , wasEditMode , true ) ;
545560 } ,
546561 function ( ) { }
547562 ) ;
0 commit comments