From 87a472e2f064be424d4dc3040af8647fc42c6bc8 Mon Sep 17 00:00:00 2001 From: iseulde Date: Thu, 9 Mar 2017 17:19:34 +0100 Subject: [PATCH] Remove blockquote should remove entire blockquote --- tinymce-single/blocks.js | 11 +++++++++++ .../blocks/elements/blockquote/register.js | 15 ++++++++++++++- tinymce-single/tinymce/block.js | 9 +-------- 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/tinymce-single/blocks.js b/tinymce-single/blocks.js index 4cf3ea57dbac3..d541317a5b75e 100644 --- a/tinymce-single/blocks.js +++ b/tinymce-single/blocks.js @@ -87,6 +87,17 @@ getSelectedBlock: function() { return wp.blocks.getSelectedBlocks()[0]; }, + selectBlock: function( block ) { + var editor = window.tinyMCE.activeEditor; + var brs = block.getElementsByTagName( 'BR' ); + + // Has placeholder for text. + if ( brs.length ) { + editor.selection.setCursorLocation( brs[0].parentNode, 0 ); + } else { + editor.selection.select( block ); + } + }, extendBlock: function( settings ) { var extendId = settings.extends; var id = settings.namespace + ':' + settings.name; diff --git a/tinymce-single/blocks/elements/blockquote/register.js b/tinymce-single/blocks/elements/blockquote/register.js index 56401a1caa2a8..c3f95c9b04264 100644 --- a/tinymce-single/blocks/elements/blockquote/register.js +++ b/tinymce-single/blocks/elements/blockquote/register.js @@ -9,7 +9,20 @@ window.wp.blocks.registerBlock( { classes: 'remove-formatting', icon: 'gridicons-quote', onClick: function( block, editor ) { - editor.formatter.remove( 'blockquote' ); + var footer = block.querySelector( 'footer' ); + var firstChild = block.firstChild; + + if ( footer ) { + block.removeChild( footer ); + } + + while ( block.firstChild ) { + block.parentNode.insertBefore( block.firstChild, block ); + } + + block.parentNode.removeChild( block ); + + window.wp.blocks.selectBlock( firstChild ); } }, { diff --git a/tinymce-single/tinymce/block.js b/tinymce-single/tinymce/block.js index 102d859d3aa0a..b5a6de01f98a8 100644 --- a/tinymce-single/tinymce/block.js +++ b/tinymce-single/tinymce/block.js @@ -289,14 +289,7 @@ block.parentNode.replaceChild( content, block ); } - var brs = content.getElementsByTagName( 'BR' ); - - // Has placeholder for text. - if ( brs.length ) { - editor.selection.setCursorLocation( brs[0].parentNode, 0 ); - } else { - editor.selection.select( content ); - } + window.wp.blocks.selectBlock( content ); setTimeout( showBlockUI ) }