Merge "[DEPRECATING CHANGE] Make Target#createModelFromDom static"

This commit is contained in:
jenkins-bot 2017-06-12 18:50:38 +00:00 committed by Gerrit Code Review
commit 27c6f624ae
3 changed files with 41 additions and 36 deletions

View file

@ -21,12 +21,12 @@
}
}
target.originalDmDoc = target.createModelFromDom( target.parseDocument( oldHtml ), 'visual' );
target.originalDmDoc = target.constructor.static.createModelFromDom( target.parseDocument( oldHtml ), 'visual' );
surface.getModel().getDocument().getStore().merge( target.originalDmDoc.getStore() );
surface.getModel().getLinearFragment( new ve.Range( 0 ) ).insertDocument(
target.createModelFromDom( target.parseDocument( newHtml ), 'visual' )
target.constructor.static.createModelFromDom( target.parseDocument( newHtml ), 'visual' )
).collapseToEnd().adjustLinearSelection( 0, 3 ).removeContent();
target.once( 'saveReview', function () {

View file

@ -1070,7 +1070,7 @@ ve.init.mw.ArticleTarget.prototype.getVisualDiffGeneratorPromise = function () {
if ( !this.originalDmDoc ) {
if ( !this.fromEditedState ) {
this.originalDmDoc = this.createModelFromDom( this.doc, 'visual' );
this.originalDmDoc = this.constructor.static.createModelFromDom( this.doc, 'visual' );
} else {
mw.libs.ve.targetLoader.requestParsoidData(
this.pageName,
@ -1080,7 +1080,7 @@ ve.init.mw.ArticleTarget.prototype.getVisualDiffGeneratorPromise = function () {
var doc, data = response ? ( response.visualeditor || response.visualeditoredit ) : null;
if ( data && typeof data.content === 'string' ) {
doc = target.parseDocument( data.content, 'visual' );
target.originalDmDoc = target.createModelFromDom( doc, 'visual' );
target.originalDmDoc = target.constructor.static.createModelFromDom( doc, 'visual' );
deferred.resolve( function () {
return new ve.dm.VisualDiff( target.originalDmDoc, dmDoc );
} );

View file

@ -149,6 +149,42 @@ ve.init.mw.Target.static.fixBase = function ( doc ) {
) );
};
/**
* Create a document model from an HTML document.
*
* @param {HTMLDocument} doc HTML document
* @param {string} mode Editing mode
* @return {ve.dm.Document} Document model
*/
ve.init.mw.Target.static.createModelFromDom = function ( doc, mode ) {
var i, l, children, data,
conf = mw.config.get( 'wgVisualEditor' );
if ( mode === 'source' ) {
children = doc.body.children;
data = [];
// Wikitext documents are just plain text paragraphs, so we can just do a simple manual conversion.
for ( i = 0, l = children.length; i < l; i++ ) {
data.push( { type: 'paragraph' } );
ve.batchPush( data, children[ i ].textContent.split( '' ) );
data.push( { type: '/paragraph' } );
}
data.push( { type: 'internalList' }, { type: '/internalList' } );
return new ve.dm.Document( data, doc, null, null, null, conf.pageLanguageCode, conf.pageLanguageDir );
} else {
return ve.dm.converter.getModelFromDom( doc, {
lang: conf.pageLanguageCode,
dir: conf.pageLanguageDir
} );
}
};
// Deprecated alias
ve.init.mw.Target.prototype.createModelFromDom = function () {
return this.constructor.static.createModelFromDom.apply( this.constructor.static, arguments );
};
/* Methods */
/**
@ -299,37 +335,6 @@ ve.init.mw.Target.prototype.createSurface = function ( dmDoc, config ) {
return surface;
};
/**
* Create a document model from an HTML document.
*
* @param {HTMLDocument} doc HTML document
* @param {string} mode Editing mode
* @return {ve.dm.Document} Document model
*/
ve.init.mw.Target.prototype.createModelFromDom = function ( doc, mode ) {
var i, l, children, data,
conf = mw.config.get( 'wgVisualEditor' );
if ( mode === 'source' ) {
children = doc.body.children;
data = [];
// Wikitext documents are just plain text paragraphs, so we can just do a simple manual conversion.
for ( i = 0, l = children.length; i < l; i++ ) {
data.push( { type: 'paragraph' } );
ve.batchPush( data, children[ i ].textContent.split( '' ) );
data.push( { type: '/paragraph' } );
}
data.push( { type: 'internalList' }, { type: '/internalList' } );
return new ve.dm.Document( data, doc, null, null, null, conf.pageLanguageCode, conf.pageLanguageDir );
} else {
return ve.dm.converter.getModelFromDom( doc, {
lang: conf.pageLanguageCode,
dir: conf.pageLanguageDir
} );
}
};
/**
* Switch to editing mode.
*
@ -344,7 +349,7 @@ ve.init.mw.Target.prototype.setupSurface = function ( doc, callback ) {
var dmDoc;
target.track( 'trace.convertModelFromDom.enter' );
dmDoc = target.createModelFromDom( doc, target.getDefaultMode() );
dmDoc = target.constructor.static.createModelFromDom( doc, target.getDefaultMode() );
target.track( 'trace.convertModelFromDom.exit' );
// Build DM tree now (otherwise it gets lazily built when building the CE tree)