Avoid use of $.parseHTML in model

Change-Id: Ide671e7459b14bfbb7385261221c2edd17bd1153
This commit is contained in:
Ed Sanders 2019-11-04 12:16:14 +00:00 committed by Divec
parent 2d4234fac8
commit cc217cef29
2 changed files with 9 additions and 18 deletions

View file

@ -105,6 +105,8 @@
var contentNodes; var contentNodes;
if ( ve.getProp( response, 'visualeditor', 'result' ) === 'success' ) { if ( ve.getProp( response, 'visualeditor', 'result' ) === 'success' ) {
// This method is only ever run by a client, so it is okay to use jQuery
// eslint-disable-next-line no-undef
contentNodes = $.parseHTML( response.visualeditor.content, surfaceFragment.getDocument().getHtmlDocument() ) || []; contentNodes = $.parseHTML( response.visualeditor.content, surfaceFragment.getDocument().getHtmlDocument() ) || [];
contentNodes = ve.ce.MWTransclusionNode.static.filterRendering( contentNodes ); contentNodes = ve.ce.MWTransclusionNode.static.filterRendering( contentNodes );
insertNode( insertNode(

View file

@ -215,8 +215,7 @@ ve.dm.MWLanguageVariantNode.static.insertPreviewElements = function ( element, v
* @return {string} HTML string * @return {string} HTML string
*/ */
ve.dm.MWLanguageVariantNode.static.getPreviewHtml = function ( variantInfo, opts ) { ve.dm.MWLanguageVariantNode.static.getPreviewHtml = function ( variantInfo, opts ) {
var languageIndex, var languageIndex, html;
$holder;
if ( variantInfo.disabled ) { if ( variantInfo.disabled ) {
return variantInfo.disabled.t; return variantInfo.disabled.t;
} else if ( variantInfo.name ) { } else if ( variantInfo.name ) {
@ -224,29 +223,19 @@ ve.dm.MWLanguageVariantNode.static.getPreviewHtml = function ( variantInfo, opts
} else if ( variantInfo.filter ) { } else if ( variantInfo.filter ) {
return variantInfo.filter.t; return variantInfo.filter.t;
} else if ( variantInfo.describe || ( opts && opts.describeAll ) ) { } else if ( variantInfo.describe || ( opts && opts.describeAll ) ) {
$holder = $( '<body>' );
if ( variantInfo.twoway && variantInfo.twoway.length ) { if ( variantInfo.twoway && variantInfo.twoway.length ) {
variantInfo.twoway.forEach( function ( item ) { variantInfo.twoway.forEach( function ( item ) {
$holder.append( html += ve.init.platform.getLanguageName( item.l.toLowerCase() ) + ':' +
ve.init.platform.getLanguageName( item.l.toLowerCase() ) item.t + ';';
);
$holder.append( ':' );
$holder.append( $.parseHTML( item.t ) );
$holder.append( ';' );
} ); } );
} else if ( variantInfo.oneway && variantInfo.oneway.length ) { } else if ( variantInfo.oneway && variantInfo.oneway.length ) {
variantInfo.oneway.forEach( function ( item ) { variantInfo.oneway.forEach( function ( item ) {
$holder.append( $.parseHTML( item.f ) ); html += item.f + '⇒' +
$holder.append( '⇒' ); ve.init.platform.getLanguageName( item.l.toLowerCase() ) + ':' +
$holder.append( item.t + ';';
ve.init.platform.getLanguageName( item.l.toLowerCase() )
);
$holder.append( ':' );
$holder.append( $.parseHTML( item.t ) );
$holder.append( ';' );
} ); } );
} }
return $holder.html(); return html;
} else { } else {
if ( variantInfo.twoway && variantInfo.twoway.length ) { if ( variantInfo.twoway && variantInfo.twoway.length ) {
languageIndex = this.matchLanguage( variantInfo.twoway ); languageIndex = this.matchLanguage( variantInfo.twoway );