@ -127,6 +127,36 @@ define("webodf/editor/Editor", [
initDocLoading ( docUrl , memberId , editorReadyCallback ) ;
} ;
/ * *
* Closes a single - user document , and does cleanup .
* @ param { ! function ( ! Object = ) } callback , passing an error object in case of error
* @ return undefined ;
* /
this . closeDocument = function ( callback ) {
runtime . assert ( session , "session should exist here." ) ;
session . close ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
editorSession . destroy ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
editorSession = undefined ;
session . destroy ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
session = undefined ;
callback ( ) ;
}
} ) ;
}
} ) ;
}
} ) ;
} ;
/ * *
* @ param { ! string } filename
* @ param { ? function ( ) } callback
@ -188,34 +218,26 @@ define("webodf/editor/Editor", [
* @ param { ! function ( ! Object = ) } callback , passing an error object in case of error
* @ return { undefined }
* /
this . close = function ( callback ) {
this . close Session = function ( callback ) {
runtime . assert ( session , "session should exist here." ) ;
// TODO: there is a better pattern for this instead of unrolling
editorS ession. close ( function ( err ) {
s ession. close ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
session . close ( function ( err ) {
// now also destroy session, will not be reused for new document
memberListView . setEditorSession ( undefined ) ;
editorSession . destroy ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
// now also destroy session, will not be reused for new document
if ( memberListView ) {
memberListView . setEditorSession ( undefined ) ;
}
editorSession . destroy ( function ( err ) {
editorSession = undefined ;
session . destroy ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
editorSession = undefined ;
session . destroy ( function ( err ) {
if ( err ) {
callback ( err ) ;
} else {
session = undefined ;
callback ( ) ;
}
} ) ;
session = undefined ;
callback ( ) ;
}
} ) ;
}
@ -294,7 +316,7 @@ define("webodf/editor/Editor", [
canvasElement = document . getElementById ( "canvas" ) ,
memberListElement = document . getElementById ( 'memberList' ) ,
collabEditing = Boolean ( server ) ,
direct StylingEnabled = ( ! collabEditing ) || args . unstableFeaturesEnabled ,
direct Paragraph StylingEnabled = ( ! collabEditing ) || args . unstableFeaturesEnabled ,
imageInsertingEnabled = ( ! collabEditing ) || args . unstableFeaturesEnabled ,
// annotations not yet properly supported for OT
annotationsEnabled = ( ! collabEditing ) || args . unstableFeaturesEnabled ,
@ -360,7 +382,7 @@ define("webodf/editor/Editor", [
loadOdtFile : loadOdtFile ,
saveOdtFile : saveOdtFile ,
close : close ,
direct StylingEnabled: direct StylingEnabled,
direct Paragraph StylingEnabled: direct Paragraph StylingEnabled,
imageInsertingEnabled : imageInsertingEnabled ,
annotationsEnabled : annotationsEnabled ,
undoRedoEnabled : undoRedoEnabled
@ -380,7 +402,7 @@ define("webodf/editor/Editor", [
session = new ops . Session ( odfCanvas ) ;
editorSession = new EditorSession ( session , pendingMemberId , {
viewOptions : viewOptions ,
direct StylingEnabled: direct StylingEnabled,
direct Paragraph StylingEnabled: direct Paragraph StylingEnabled,
imageInsertingEnabled : imageInsertingEnabled
} ) ;
if ( undoRedoEnabled ) {