TinyMCE: remove unused code from the wpeditimage
plugin.
Fixes #41369. git-svn-id: https://develop.svn.wordpress.org/trunk@41092 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
f2adcb8e52
commit
8dcb1d0b39
@ -587,231 +587,6 @@ tinymce.PluginManager.add( 'wpeditimage', function( editor ) {
|
||||
|
||||
dom.addClass( editor.getBody(), captionClass );
|
||||
|
||||
// Add caption field to the default image dialog
|
||||
editor.on( 'wpLoadImageForm', function( event ) {
|
||||
if ( editor.getParam( 'wpeditimage_disable_captions' ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var captionField = {
|
||||
type: 'textbox',
|
||||
flex: 1,
|
||||
name: 'wpcaption',
|
||||
minHeight: 60,
|
||||
multiline: true,
|
||||
scroll: true,
|
||||
label: 'Image caption'
|
||||
};
|
||||
|
||||
event.data.splice( event.data.length - 1, 0, captionField );
|
||||
});
|
||||
|
||||
// Fix caption parent width for images added from URL
|
||||
editor.on( 'wpNewImageRefresh', function( event ) {
|
||||
var parent, captionWidth;
|
||||
|
||||
if ( parent = dom.getParent( event.node, 'dl.wp-caption' ) ) {
|
||||
if ( ! parent.style.width ) {
|
||||
captionWidth = parseInt( event.node.clientWidth, 10 ) + 10;
|
||||
captionWidth = captionWidth ? captionWidth + 'px' : '50%';
|
||||
dom.setStyle( parent, 'width', captionWidth );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
editor.on( 'wpImageFormSubmit', function( event ) {
|
||||
var data = event.imgData.data,
|
||||
imgNode = event.imgData.node,
|
||||
caption = event.imgData.wpcaption,
|
||||
captionId = '',
|
||||
captionAlign = '',
|
||||
captionWidth = '',
|
||||
imgId = null,
|
||||
wrap, parent, node, html;
|
||||
|
||||
// Temp image id so we can find the node later
|
||||
data.id = '__wp-temp-img-id';
|
||||
// Cancel the original callback
|
||||
event.imgData.cancel = true;
|
||||
|
||||
if ( ! data.style ) {
|
||||
data.style = null;
|
||||
}
|
||||
|
||||
if ( ! data.src ) {
|
||||
// Delete the image and the caption
|
||||
if ( imgNode ) {
|
||||
if ( wrap = dom.getParent( imgNode, 'div.mceTemp' ) ) {
|
||||
dom.remove( wrap );
|
||||
} else if ( imgNode.parentNode.nodeName === 'A' ) {
|
||||
dom.remove( imgNode.parentNode );
|
||||
} else {
|
||||
dom.remove( imgNode );
|
||||
}
|
||||
|
||||
editor.nodeChanged();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if ( caption ) {
|
||||
caption = caption.replace( /\r\n|\r/g, '\n' ).replace( /<\/?[a-zA-Z0-9]+( [^<>]+)?>/g, function( a ) {
|
||||
// No line breaks inside HTML tags
|
||||
return a.replace( /[\r\n\t]+/, ' ' );
|
||||
});
|
||||
|
||||
// Convert remaining line breaks to <br>
|
||||
caption = caption.replace( /(<br[^>]*>)\s*\n\s*/g, '$1' ).replace( /\s*\n\s*/g, '<br />' );
|
||||
caption = verifyHTML( caption );
|
||||
}
|
||||
|
||||
if ( ! imgNode ) {
|
||||
// New image inserted
|
||||
html = dom.createHTML( 'img', data );
|
||||
|
||||
if ( caption ) {
|
||||
node = editor.selection.getNode();
|
||||
|
||||
if ( data.width ) {
|
||||
captionWidth = parseInt( data.width, 10 );
|
||||
|
||||
if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
||||
captionWidth += 10;
|
||||
}
|
||||
|
||||
captionWidth = ' style="width: ' + captionWidth + 'px"';
|
||||
}
|
||||
|
||||
html = '<dl class="wp-caption alignnone"' + captionWidth + '>' +
|
||||
'<dt class="wp-caption-dt">'+ html +'</dt><dd class="wp-caption-dd">'+ caption +'</dd></dl>';
|
||||
|
||||
if ( node.nodeName === 'P' ) {
|
||||
parent = node;
|
||||
} else {
|
||||
parent = dom.getParent( node, 'p' );
|
||||
}
|
||||
|
||||
if ( parent && parent.nodeName === 'P' ) {
|
||||
wrap = dom.create( 'div', { 'class': 'mceTemp' }, html );
|
||||
parent.parentNode.insertBefore( wrap, parent );
|
||||
editor.selection.select( wrap );
|
||||
editor.nodeChanged();
|
||||
|
||||
if ( dom.isEmpty( parent ) ) {
|
||||
dom.remove( parent );
|
||||
}
|
||||
} else {
|
||||
editor.selection.setContent( '<div class="mceTemp">' + html + '</div>' );
|
||||
}
|
||||
} else {
|
||||
editor.selection.setContent( html );
|
||||
}
|
||||
} else {
|
||||
// Edit existing image
|
||||
|
||||
// Store the original image id if any
|
||||
imgId = imgNode.id || null;
|
||||
// Update the image node
|
||||
dom.setAttribs( imgNode, data );
|
||||
wrap = dom.getParent( imgNode, 'dl.wp-caption' );
|
||||
|
||||
if ( caption ) {
|
||||
if ( wrap ) {
|
||||
if ( parent = dom.select( 'dd.wp-caption-dd', wrap )[0] ) {
|
||||
parent.innerHTML = caption;
|
||||
}
|
||||
} else {
|
||||
if ( imgNode.className ) {
|
||||
captionId = imgNode.className.match( /wp-image-([0-9]+)/ );
|
||||
captionAlign = imgNode.className.match( /align(left|right|center|none)/ );
|
||||
}
|
||||
|
||||
if ( captionAlign ) {
|
||||
captionAlign = captionAlign[0];
|
||||
imgNode.className = imgNode.className.replace( /align(left|right|center|none)/g, '' );
|
||||
} else {
|
||||
captionAlign = 'alignnone';
|
||||
}
|
||||
|
||||
captionAlign = ' class="wp-caption ' + captionAlign + '"';
|
||||
|
||||
if ( captionId ) {
|
||||
captionId = ' id="attachment_' + captionId[1] + '"';
|
||||
}
|
||||
|
||||
captionWidth = data.width || imgNode.clientWidth;
|
||||
|
||||
if ( captionWidth ) {
|
||||
captionWidth = parseInt( captionWidth, 10 );
|
||||
|
||||
if ( ! editor.getParam( 'wpeditimage_html5_captions' ) ) {
|
||||
captionWidth += 10;
|
||||
}
|
||||
|
||||
captionWidth = ' style="width: '+ captionWidth +'px"';
|
||||
}
|
||||
|
||||
if ( imgNode.parentNode && imgNode.parentNode.nodeName === 'A' ) {
|
||||
node = imgNode.parentNode;
|
||||
} else {
|
||||
node = imgNode;
|
||||
}
|
||||
|
||||
html = '<dl ' + captionId + captionAlign + captionWidth + '>' +
|
||||
'<dt class="wp-caption-dt"></dt><dd class="wp-caption-dd">'+ caption +'</dd></dl>';
|
||||
|
||||
wrap = dom.create( 'div', { 'class': 'mceTemp' }, html );
|
||||
|
||||
if ( parent = dom.getParent( node, 'p' ) ) {
|
||||
parent.parentNode.insertBefore( wrap, parent );
|
||||
} else {
|
||||
node.parentNode.insertBefore( wrap, node );
|
||||
}
|
||||
|
||||
editor.$( wrap ).find( 'dt.wp-caption-dt' ).append( node );
|
||||
|
||||
if ( parent && dom.isEmpty( parent ) ) {
|
||||
dom.remove( parent );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if ( wrap ) {
|
||||
// Remove the caption wrapper and place the image in new paragraph
|
||||
if ( imgNode.parentNode.nodeName === 'A' ) {
|
||||
html = dom.getOuterHTML( imgNode.parentNode );
|
||||
} else {
|
||||
html = dom.getOuterHTML( imgNode );
|
||||
}
|
||||
|
||||
parent = dom.create( 'p', {}, html );
|
||||
dom.insertAfter( parent, wrap.parentNode );
|
||||
editor.selection.select( parent );
|
||||
editor.nodeChanged();
|
||||
dom.remove( wrap.parentNode );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
imgNode = dom.get('__wp-temp-img-id');
|
||||
dom.setAttrib( imgNode, 'id', imgId || null );
|
||||
event.imgData.node = imgNode;
|
||||
});
|
||||
|
||||
editor.on( 'wpLoadImageData', function( event ) {
|
||||
var parent,
|
||||
data = event.imgData.data,
|
||||
imgNode = event.imgData.node;
|
||||
|
||||
if ( parent = dom.getParent( imgNode, 'dl.wp-caption' ) ) {
|
||||
parent = dom.select( 'dd.wp-caption-dd', parent )[0];
|
||||
|
||||
if ( parent ) {
|
||||
data.wpcaption = editor.serializer.serialize( parent )
|
||||
.replace( /<br[^>]*>/g, '$&\n' ).replace( /^<p>/, '' ).replace( /<\/p>$/, '' );
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Prevent IE11 from making dl.wp-caption resizable
|
||||
if ( tinymce.Env.ie && tinymce.Env.ie > 10 ) {
|
||||
// The 'mscontrolselect' event is supported only in IE11+
|
||||
|
Loading…
Reference in New Issue
Block a user