From 0186bbcb95308c8135294b0868a07342175b9475 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Sat, 4 Apr 2015 23:00:26 +0000 Subject: [PATCH] TinyMCE wpView: - Fix editor undo levels. - Remove views and markers in the DOM before serialization. - Unbind views before removing them on hide. - Empty the content in the timeout, so it doesn't render iframes twice. Props iseulde. Fixes #31669. Built from https://develop.svn.wordpress.org/trunk@32022 git-svn-id: http://core.svn.wordpress.org/trunk@32001 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/js/mce-view.js | 92 ++++++++++-------- wp-includes/js/mce-view.min.js | 2 +- .../js/tinymce/plugins/wpview/plugin.js | 55 +++++++---- .../js/tinymce/plugins/wpview/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 138389 -> 138451 bytes wp-includes/version.php | 4 +- 6 files changed, 93 insertions(+), 62 deletions(-) diff --git a/wp-includes/js/mce-view.js b/wp-includes/js/mce-view.js index b54470dba1..7552b221ba 100644 --- a/wp-includes/js/mce-view.js +++ b/wp-includes/js/mce-view.js @@ -87,6 +87,8 @@ window.wp = window.wp || {}; * and creates a new instance for every match. * * @param {String} content The string to scan. + * + * @return {String} The string with markers. */ setMarkers: function( content ) { var pieces = [ { content: content } ], @@ -298,11 +300,18 @@ window.wp = window.wp || {}; /** * Renders all view nodes tied to this view instance that are not yet rendered. * + * @param {String} content The content to render. Optional. * @param {Boolean} force Rerender all view nodes tied to this view instance. */ - render: function( force ) { + render: function( content, force ) { + if ( content != null ) { + this.content = content; + } + + content = this.getContent(); + // If there's nothing to render an no loader needs to be shown, stop. - if ( ! this.loader && ! this.getContent() ) { + if ( ! this.loader && ! content ) { return; } @@ -312,21 +321,33 @@ window.wp = window.wp || {}; // Replace any left over markers. this.replaceMarkers(); - if ( this.getContent() ) { - this.setContent( this.getContent(), function( editor, node ) { - $( node ).data( 'rendered', true ).trigger( 'wp-mce-view-bind' ); + if ( content ) { + this.setContent( content, function( editor, node ) { + $( node ).data( 'rendered', true ); + this.bindNode.call( this, editor, node ); }, force ? null : false ); } else { this.setLoader(); } }, + /** + * Binds a given node after its content is added to the DOM. + */ + bindNode: function() {}, + + /** + * Unbinds a given node before its content is removed from the DOM. + */ + unbindNode: function() {}, + /** * Unbinds all view nodes tied to this view instance. * Runs before their content is removed from the DOM. */ unbind: function() { this.getNodes( function( editor, node ) { + this.unbindNode.call( this, editor, node ); $( node ).trigger( 'wp-mce-view-unbind' ); }, true ); }, @@ -447,7 +468,7 @@ window.wp = window.wp || {}; contentNode.innerHTML = ''; contentNode.appendChild( _.isString( content ) ? editor.dom.createFragment( content ) : content ); - callback && callback.apply( this, arguments ); + callback && callback.call( this, editor, node, contentNode ); }, rendered ); } }, @@ -461,30 +482,27 @@ window.wp = window.wp || {}; * @param {Boolean} rendered Only set for (un)rendered nodes. Optional. */ setIframes: function( head, body, callback, rendered ) { - var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; + var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver, + self = this; this.getNodes( function( editor, node, content ) { - // Seems Firefox needs a bit of time to insert/set the view nodes, + var dom = editor.dom, + styles = '', + bodyClasses = editor.getBody().className || '', + editorHead = editor.getDoc().getElementsByTagName( 'head' )[0], + iframe, iframeDoc, observer, i; + + tinymce.each( dom.$( 'link[rel="stylesheet"]', editorHead ), function( link ) { + if ( link.href && link.href.indexOf( 'skins/lightgray/content.min.css' ) === -1 && + link.href.indexOf( 'skins/wordpress/wp-content.css' ) === -1 ) { + + styles += dom.getOuterHTML( link ); + } + } ); + + // Seems the browsers need a bit of time to insert/set the view nodes, // or the iframe will fail especially when switching Text => Visual. setTimeout( function() { - var dom = editor.dom, - styles = '', - bodyClasses = editor.getBody().className || '', - iframe, iframeDoc, observer, i; - - tinymce.each( dom.$( - 'link[rel="stylesheet"]', - editor.getDoc().getElementsByTagName( 'head' )[0] - ), function( link ) { - if ( - link.href && - link.href.indexOf( 'skins/lightgray/content.min.css' ) === -1 && - link.href.indexOf( 'skins/wordpress/wp-content.css' ) === -1 - ) { - styles += dom.getOuterHTML( link ); - } - } ); - content.innerHTML = ''; iframe = dom.add( content, 'iframe', { @@ -582,7 +600,7 @@ window.wp = window.wp || {}; editor.off( 'wp-body-class-change', classChange ); } ); - callback && callback.apply( this, arguments ); + callback && callback.call( self, editor, node ); }, 50 ); }, rendered ); }, @@ -664,6 +682,7 @@ window.wp = window.wp || {}; * @param {HTMLElement} node The view node to remove. */ remove: function( editor, node ) { + this.unbindNode.call( this, editor, node, $( node ).find( '.wpview-content' ).get( 0 ) ); $( node ).trigger( 'wp-mce-view-unbind' ); editor.dom.remove( node ); editor.focus(); @@ -728,12 +747,10 @@ window.wp = window.wp || {}; } } ); - self.content = self.template( { + self.render( self.template( { attachments: attachments, columns: attrs.columns ? parseInt( attrs.columns, 10 ) : wp.media.galleryDefaults.columns - } ); - - self.render(); + } ) ); } ) .fail( function( jqXHR, textStatus ) { self.setError( textStatus ); @@ -754,16 +771,13 @@ window.wp = window.wp || {}; } ); } - wp.ajax.send( this.action, { - data: { - post_ID: postID, - type: this.shortcode.tag, - shortcode: this.shortcode.string() - } + wp.ajax.post( this.action, { + post_ID: postID, + type: this.shortcode.tag, + shortcode: this.shortcode.string() } ) .done( function( response ) { - self.content = response; - self.render(); + self.render( response ); } ) .fail( function( response ) { if ( self.url ) { diff --git a/wp-includes/js/mce-view.min.js b/wp-includes/js/mce-view.min.js index b8bb8aca9c..7d30c672cb 100644 --- a/wp-includes/js/mce-view.min.js +++ b/wp-includes/js/mce-view.min.js @@ -1 +1 @@ -window.wp=window.wp||{},function(a,b,c){"use strict";var d={},e={};b.mce=b.mce||{},b.mce.views={register:function(a,c){d[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete d[a]},get:function(a){return d[a]},unbind:function(){_.each(e,function(a){a.unbind()})},setMarkers:function(a){var b,c,e=[{content:a}],f=this;return _.each(d,function(a,d){c=e.slice(),e=[],_.each(c,function(c){var g,h=c.content;if(c.processed)return void e.push(c);for(;h&&(g=a.prototype.match(h));)g.index&&e.push({content:h.substring(0,g.index)}),b=f.createInstance(d,g.content,g.options),e.push({content:'

'+b.text+"

",processed:!0}),h=h.slice(g.index+g.content.length);h&&e.push({content:h})})}),_.pluck(e,"content").join("")},createInstance:function(a,b,c){var d,f,g=this.get(a);return b=tinymce.DOM.decode(b),d=encodeURIComponent(b),(f=this.getInstance(d))?f:(c=_.extend(c||{},{text:b,encodedText:d}),e[d]=new g(c))},getInstance:function(a){return"string"==typeof a?e[encodeURIComponent(a)]:e[c(a).attr("data-wpview-text")]},getText:function(a){return decodeURIComponent(c(a).attr("data-wpview-text")||"")},render:function(a){_.each(e,function(b){b.render(a)})},update:function(a,b,c){var d=this.getInstance(c);d&&d.update(a,b,c)},edit:function(a,b){var c=this.getInstance(b);c&&c.edit&&c.edit(c.text,function(d){c.update(d,a,b)})},remove:function(a,b){var c=this.getInstance(b);c&&c.remove(a,b)}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a){(this.loader||this.getContent())&&(a&&this.unbind(),this.replaceMarkers(),this.getContent()?this.setContent(this.getContent(),function(a,b){c(b).data("rendered",!0).trigger("wp-mce-view-bind")},a?null:!1):this.setLoader())},unbind:function(){this.getNodes(function(a,b){c(b).trigger("wp-mce-view-unbind")},!0)},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(d){var e=this;c(d.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b?!0:(a=c(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,d,this,c(this).find(".wpview-content").get(0))})})},getMarkers:function(a){this.getEditors(function(b){var d=this;c(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(d,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){return c(b).text()!==this.text?void a.dom.setAttrib(b,"data-wpview-marker",null):void a.dom.replace(a.dom.createFragment('

 

 

'),b)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&-1!==a.body.indexOf("'),e.innerHTML="",e.appendChild(_.isString(a)?c.dom.createFragment(a):a),b&&b.apply(this,arguments)},c)},setIframes:function(b,d,e,f){var g=a.MutationObserver||a.WebKitMutationObserver||a.MozMutationObserver;this.getNodes(function(a,f,h){setTimeout(function(){function i(){var b,d;k.contentWindow&&(b=c(k),d=c(l.body).height(),b.height()!==d&&(b.height(d),a.nodeChanged()))}function j(){l.body.className=a.getBody().className}var k,l,m,n,o=a.dom,p="",q=a.getBody().className||"";if(tinymce.each(o.$('link[rel="stylesheet"]',a.getDoc().getElementsByTagName("head")[0]),function(a){a.href&&-1===a.href.indexOf("skins/lightgray/content.min.css")&&-1===a.href.indexOf("skins/wordpress/wp-content.css")&&(p+=o.getOuterHTML(a))}),h.innerHTML="",k=o.add(h,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"}}),o.add(h,"div",{"class":"wpview-overlay"}),l=k.contentWindow.document,l.open(),l.write(''+b+p+''+d+""),l.close(),g)m=new g(_.debounce(i,100)),m.observe(l.body,{attributes:!0,childList:!0,subtree:!0}),c(f).one("wp-mce-view-unbind",function(){m.disconnect()});else for(n=1;6>n;n++)setTimeout(i,700*n);a.on("wp-body-class-change",j),c(f).one("wp-mce-view-unbind",function(){a.off("wp-body-class-change",j)}),e&&e.apply(this,arguments)},50)},f)},setLoader:function(){this.setContent('
')},setError:function(a,b){this.setContent('

'+a+"

")},match:function(a){var c=b.shortcode.next(this.type,a);return c?{index:c.index,content:c.content,options:{shortcode:c.shortcode}}:void 0},update:function(a,e,f){_.find(d,function(d,g){var h=d.prototype.match(a);return h?(c(f).data("rendered",!1),e.dom.setAttrib(f,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(g,a,h.options).render(),e.focus(),!0):void 0})},remove:function(a,b){c(b).trigger("wp-mce-view-unbind"),a.dom.remove(b),a.focus()}})}(window,window.wp,window.jQuery),function(a,b,c){var d,e,f,g,h=c("#post_ID").val()||0;d={state:[],edit:function(a,b){var c=wp.media[this.type],d=c.edit(a);this.pausePlayers&&this.pausePlayers(),_.each(this.state,function(a){d.state(a).on("update",function(a){b(c.shortcode(a).string())})}),d.on("close",function(){d.detach()}),d.open()}},e=_.extend({},d,{state:["gallery-edit"],template:wp.media.template("editor-gallery"),initialize:function(){var a=wp.media.gallery.attachments(this.shortcode,h),b=this.shortcode.attrs.named,c=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),c.content=c.template({attachments:a,columns:b.columns?parseInt(b.columns,10):wp.media.galleryDefaults.columns}),c.render()}).fail(function(a,b){c.setError(b)})}}),f=_.extend({},d,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=wp.media.embed.shortcode({url:this.text})),wp.ajax.send(this.action,{data:{post_ID:h,type:this.shortcode.tag,shortcode:this.shortcode.string()}}).done(function(b){a.content=b,a.render()}).fail(function(b){a.url?a.removeMarkers():a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.pausePlayers()})})},pausePlayers:function(){this.getNodes(function(a,b,d){var e=c("iframe.wpview-sandbox",d).get(0);e&&(e=e.contentWindow)&&e.mejs&&_.each(e.mejs.players,function(a){try{a.pause()}catch(b){}})})}}),g=_.extend({},f,{action:"parse-embed",edit:function(a,b){var c=wp.media.embed,d=c.edit(a,this.url),e=this,f="change:url change:width change:height";this.pausePlayers(),d.state("embed").props.on(f,function(a,b){b&&a.get("url")&&(d.state("embed").metadata=a.toJSON())}),d.state("embed").on("select",function(){var a=d.state("embed").metadata;b(e.url&&!a.width?a.url:c.shortcode(a).string())}),d.on("close",function(){d.detach()}),d.open()}}),b.register("gallery",_.extend({},e)),b.register("audio",_.extend({},f,{state:["audio-details"]})),b.register("video",_.extend({},f,{state:["video-details"]})),b.register("playlist",_.extend({},f,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},g)),b.register("embedURL",_.extend({},g,{match:function(a){var b=/(^|

)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(a);return c?{index:c.index+c[1].length,content:c[2],options:{url:!0}}:void 0}}))}(window,window.wp.mce.views,window.jQuery); \ No newline at end of file +window.wp=window.wp||{},function(a,b,c){"use strict";var d={},e={};b.mce=b.mce||{},b.mce.views={register:function(a,c){d[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete d[a]},get:function(a){return d[a]},unbind:function(){_.each(e,function(a){a.unbind()})},setMarkers:function(a){var b,c,e=[{content:a}],f=this;return _.each(d,function(a,d){c=e.slice(),e=[],_.each(c,function(c){var g,h=c.content;if(c.processed)return void e.push(c);for(;h&&(g=a.prototype.match(h));)g.index&&e.push({content:h.substring(0,g.index)}),b=f.createInstance(d,g.content,g.options),e.push({content:'

'+b.text+"

",processed:!0}),h=h.slice(g.index+g.content.length);h&&e.push({content:h})})}),_.pluck(e,"content").join("")},createInstance:function(a,b,c){var d,f,g=this.get(a);return b=tinymce.DOM.decode(b),d=encodeURIComponent(b),(f=this.getInstance(d))?f:(c=_.extend(c||{},{text:b,encodedText:d}),e[d]=new g(c))},getInstance:function(a){return"string"==typeof a?e[encodeURIComponent(a)]:e[c(a).attr("data-wpview-text")]},getText:function(a){return decodeURIComponent(c(a).attr("data-wpview-text")||"")},render:function(a){_.each(e,function(b){b.render(a)})},update:function(a,b,c){var d=this.getInstance(c);d&&d.update(a,b,c)},edit:function(a,b){var c=this.getInstance(b);c&&c.edit&&c.edit(c.text,function(d){c.update(d,a,b)})},remove:function(a,b){var c=this.getInstance(b);c&&c.remove(a,b)}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a,b){null!=a&&(this.content=a),a=this.getContent(),(this.loader||a)&&(b&&this.unbind(),this.replaceMarkers(),a?this.setContent(a,function(a,b){c(b).data("rendered",!0),this.bindNode.call(this,a,b)},b?null:!1):this.setLoader())},bindNode:function(){},unbindNode:function(){},unbind:function(){this.getNodes(function(a,b){this.unbindNode.call(this,a,b),c(b).trigger("wp-mce-view-unbind")},!0)},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(d){var e=this;c(d.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b?!0:(a=c(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,d,this,c(this).find(".wpview-content").get(0))})})},getMarkers:function(a){this.getEditors(function(b){var d=this;c(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(d,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){return c(b).text()!==this.text?void a.dom.setAttrib(b,"data-wpview-marker",null):void a.dom.replace(a.dom.createFragment('

 

 

'),b)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&-1!==a.body.indexOf("'),e.innerHTML="",e.appendChild(_.isString(a)?c.dom.createFragment(a):a),b&&b.call(this,c,d,e)},c)},setIframes:function(b,d,e,f){var g=a.MutationObserver||a.WebKitMutationObserver||a.MozMutationObserver,h=this;this.getNodes(function(a,f,i){var j,k,l,m,n=a.dom,o="",p=a.getBody().className||"",q=a.getDoc().getElementsByTagName("head")[0];tinymce.each(n.$('link[rel="stylesheet"]',q),function(a){a.href&&-1===a.href.indexOf("skins/lightgray/content.min.css")&&-1===a.href.indexOf("skins/wordpress/wp-content.css")&&(o+=n.getOuterHTML(a))}),setTimeout(function(){function q(){var b,d;j.contentWindow&&(b=c(j),d=c(k.body).height(),b.height()!==d&&(b.height(d),a.nodeChanged()))}function r(){k.body.className=a.getBody().className}if(i.innerHTML="",j=n.add(i,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"}}),n.add(i,"div",{"class":"wpview-overlay"}),k=j.contentWindow.document,k.open(),k.write(''+b+o+''+d+""),k.close(),g)l=new g(_.debounce(q,100)),l.observe(k.body,{attributes:!0,childList:!0,subtree:!0}),c(f).one("wp-mce-view-unbind",function(){l.disconnect()});else for(m=1;6>m;m++)setTimeout(q,700*m);a.on("wp-body-class-change",r),c(f).one("wp-mce-view-unbind",function(){a.off("wp-body-class-change",r)}),e&&e.call(h,a,f)},50)},f)},setLoader:function(){this.setContent('
')},setError:function(a,b){this.setContent('

'+a+"

")},match:function(a){var c=b.shortcode.next(this.type,a);return c?{index:c.index,content:c.content,options:{shortcode:c.shortcode}}:void 0},update:function(a,e,f){_.find(d,function(d,g){var h=d.prototype.match(a);return h?(c(f).data("rendered",!1),e.dom.setAttrib(f,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(g,a,h.options).render(),e.focus(),!0):void 0})},remove:function(a,b){this.unbindNode.call(this,a,b,c(b).find(".wpview-content").get(0)),c(b).trigger("wp-mce-view-unbind"),a.dom.remove(b),a.focus()}})}(window,window.wp,window.jQuery),function(a,b,c){var d,e,f,g,h=c("#post_ID").val()||0;d={state:[],edit:function(a,b){var c=wp.media[this.type],d=c.edit(a);this.pausePlayers&&this.pausePlayers(),_.each(this.state,function(a){d.state(a).on("update",function(a){b(c.shortcode(a).string())})}),d.on("close",function(){d.detach()}),d.open()}},e=_.extend({},d,{state:["gallery-edit"],template:wp.media.template("editor-gallery"),initialize:function(){var a=wp.media.gallery.attachments(this.shortcode,h),b=this.shortcode.attrs.named,c=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),c.render(c.template({attachments:a,columns:b.columns?parseInt(b.columns,10):wp.media.galleryDefaults.columns}))}).fail(function(a,b){c.setError(b)})}}),f=_.extend({},d,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=wp.media.embed.shortcode({url:this.text})),wp.ajax.post(this.action,{post_ID:h,type:this.shortcode.tag,shortcode:this.shortcode.string()}).done(function(b){a.render(b)}).fail(function(b){a.url?a.removeMarkers():a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.pausePlayers()})})},pausePlayers:function(){this.getNodes(function(a,b,d){var e=c("iframe.wpview-sandbox",d).get(0);e&&(e=e.contentWindow)&&e.mejs&&_.each(e.mejs.players,function(a){try{a.pause()}catch(b){}})})}}),g=_.extend({},f,{action:"parse-embed",edit:function(a,b){var c=wp.media.embed,d=c.edit(a,this.url),e=this,f="change:url change:width change:height";this.pausePlayers(),d.state("embed").props.on(f,function(a,b){b&&a.get("url")&&(d.state("embed").metadata=a.toJSON())}),d.state("embed").on("select",function(){var a=d.state("embed").metadata;b(e.url&&!a.width?a.url:c.shortcode(a).string())}),d.on("close",function(){d.detach()}),d.open()}}),b.register("gallery",_.extend({},e)),b.register("audio",_.extend({},f,{state:["audio-details"]})),b.register("video",_.extend({},f,{state:["video-details"]})),b.register("playlist",_.extend({},f,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},g)),b.register("embedURL",_.extend({},g,{match:function(a){var b=/(^|

)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(a);return c?{index:c.index+c[1].length,content:c[2],options:{url:!0}}:void 0}}))}(window,window.wp.mce.views,window.jQuery); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.js b/wp-includes/js/tinymce/plugins/wpview/plugin.js index 9a8b650e1c..db9db466fc 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js @@ -4,7 +4,8 @@ * WordPress View plugin. */ tinymce.PluginManager.add( 'wpview', function( editor ) { - var selected, + var $ = editor.$, + selected, Env = tinymce.Env, VK = tinymce.util.VK, TreeWalker = tinymce.dom.TreeWalker, @@ -153,13 +154,17 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { // Remove the content of view wrappers from HTML string function emptyViews( content ) { - return content.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g, '$1' ); + content = content.replace( /]+data-wpview-text="([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>[^<>]*<\/p>\s*<\/div>/g, function( all, match ) { + return '

' + window.decodeURIComponent( match ) + '

'; + }); + + return content.replace( / data-wpview-marker="[^"]+"/g, '' ); } // Prevent adding undo levels on changes inside a view wrapper editor.on( 'BeforeAddUndo', function( event ) { - if ( event.lastLevel && emptyViews( event.level.content ) === emptyViews( event.lastLevel.content ) ) { - event.preventDefault(); + if ( event.level.content ) { + event.level.content = emptyViews( event.level.content ); } }); @@ -169,6 +174,10 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { editor.on( 'BeforeSetContent', function( event ) { var node; + if ( ! event.selection ) { + wp.mce.views.unbind(); + } + if ( ! event.content ) { return; } @@ -339,22 +348,30 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { } }); - editor.on( 'PreProcess', function( event ) { - // Empty the wpview wrap nodes - tinymce.each( editor.dom.select( 'div[data-wpview-text]', event.node ), function( node ) { - node.textContent = node.innerText = '\u00a0'; - }); - }); + function resetViews( rootNode ) { + // Replace view nodes + $( 'div[data-wpview-text]', rootNode ).each( function( i, node ) { + var $node = $( node ), + text = window.decodeURIComponent( $node.attr( 'data-wpview-text' ) || '' ); - editor.on( 'PostProcess', function( event ) { - if ( event.content ) { - event.content = event.content.replace( /
]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g, function( match, shortcode ) { - if ( shortcode ) { - return '

' + window.decodeURIComponent( shortcode ) + '

'; - } - return ''; // If error, remove the view wrapper - }); - } + if ( text && node.parentNode ) { + $node.replaceWith( $( editor.dom.create('p') ).text( text ) ); + } + }); + + // Remove marker attributes + $( 'p[data-wpview-marker]', rootNode ).attr( 'data-wpview-marker', null ); + } + + editor.on( 'PreProcess', function( event ) { + // Replace the view nodes with their text in the DOM clone. + resetViews( event.node ); + }, true ); + + editor.on( 'hide', function() { + // Replace the view nodes with their text directly in the editor body. + wp.mce.views.unbind(); + resetViews( editor.getBody() ); }); // Excludes arrow keys, delete, backspace, enter, space bar. diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js index 91938b01d2..01287fb2d5 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(a){a.stopPropagation()}function e(b,c){var d=b?"before":"after",e=b?0:1;i(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function f(b,c,d){var f=a.dom,g=f.create("p");t.ie&&t.ie<11||(g.innerHTML='
'),c?b.parentNode.insertBefore(g,b):f.insertAfter(g,b),i(),c&&d===u.ENTER?e(c,b):a.selection.setCursorLocation(g,0),a.nodeChanged()}function g(b){a.undoManager.transact(function(){f(b),wp.mce.views.remove(a,b)})}function h(b){var c,e=a.dom;b&&(b!==l&&(a.getBody().focus(),i(),l=b,e.setAttrib(b,"data-mce-selected",1),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},wp.mce.views.getText(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",d),e.bind(l,"beforedeactivate focusin focusout",d),z?a.selection.select(c):a.selection.select(c,!0)),a.nodeChanged(),a.fire("wpview-selected",b))}function i(){var b,c=a.dom;l&&(b=a.dom.select(".wpview-clipboard",l)[0],c.unbind(b),c.remove(b),c.unbind(l,"beforedeactivate focusin focusout click mouseup",d),c.setAttrib(l,"data-mce-selected",null)),l=null}function j(a){return a.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g,"$1")}function k(a){return 47>=a&&a!==u.SPACEBAR&&a!==u.ENTER&&a!==u.DELETE&&a!==u.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var l,m,n,o,p,q,r,s,t=tinymce.Env,u=tinymce.util.VK,v=tinymce.dom.TreeWalker,w=!1,x=!0,y=function(){return!1},z=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&j(a.level.content)===j(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c;if(b.content){if(l&&g(l),!b.load&&(c=a.selection.getNode(),c&&c!==a.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(b.content))){if(c=a.dom.getParent(c,"p"),!c||!/^[\s\uFEFF\u00A0]*$/.test(c.textContent||c.innerText))return;c.innerHTML=""}b.content=wp.mce.views.setMarkers(b.content)}}),a.on("pastePreProcess",function(a){var b=a.content;b&&(b=tinymce.trim(b.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(b)&&(a.content=b))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,f,g,h=c.clientX,i=c.clientY,j=a.getBody(),k=j.getBoundingClientRect(),l=j.firstChild,m=j.lastChild;l&&m&&(d=l.getBoundingClientRect(),f=m.getBoundingClientRect(),if.bottom&&(g=b(m))?(e(!1,g),c.preventDefault()):(hk.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return i=b.top&&i<=b.bottom?(hk.right&&(e(!1,a),c.preventDefault()),!1):void 0}))}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new v(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(a){var d=b(a.target);return x=!1,d?(a.stopImmediatePropagation(),a.preventDefault(),"touchend"===a.type&&c?c=!1:h(d),!1):(("touchend"===a.type||"mousedown"===a.type)&&i(),void("touchend"===a.type&&c&&(c=!1)))},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/
]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"

"+window.decodeURIComponent(b)+"

":""}))}),a.on("keydown",function(c){var d,j,m,o,p,q,r,s=c.keyCode,t=a.dom,v=a.selection;if(l){if((c.metaKey||c.ctrlKey)&&s!==u.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(w=l));if(j=b(v.getNode()),j!==l)return void i();s===u.LEFT?(e(!0,j),c.preventDefault()):s===u.UP?(j.previousSibling?b(j.previousSibling)?e(!0,j.previousSibling):(i(),v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):s===u.RIGHT?(e(!1,j),c.preventDefault()):s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!1,j.nextSibling):(i(),v.setCursorLocation(j.nextSibling,0)):e(!1,j),c.preventDefault()):k(s)||(g(l),(s===u.ENTER||s===u.DELETE||s===u.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=v.getNode(),n=d,j=b(d),v.isCollapsed()||(p=v.getRng(),(j=b(p.endContainer))?(q=p.cloneRange(),v.select(j.previousSibling,!0),v.collapse(),r=v.getRng(),q.setEnd(r.endContainer,r.endOffset),v.setRng(q)):(j=b(p.startContainer))&&(q=p.cloneRange(),q.setStart(j.nextSibling,0),v.setRng(q))),!j)return void(c.keyCode===u.BACKSPACE&&(a.dom.isEmpty(d)?(j=b(d.previousSibling))&&(e(!1,j),a.dom.remove(d),c.preventDefault()):(p=v.getRng())&&0===p.startOffset&&0===p.endOffset&&(j=b(d.previousSibling))&&(e(!1,j),c.preventDefault())));if(!(m=t.hasClass(j,"wpview-selection-before"))&&!(o=t.hasClass(j,"wpview-selection-after")))return;if(k(s))return;o&&s===u.UP||m&&s===u.BACKSPACE?(j.previousSibling?b(j.previousSibling)?e(!1,j.previousSibling):t.isEmpty(j.previousSibling)&&s===u.BACKSPACE?t.remove(j.previousSibling):(v.select(j.previousSibling,!0),v.collapse()):e(!0,j),c.preventDefault()):!o||s!==u.DOWN&&s!==u.RIGHT?!m||s!==u.UP&&s!==u.LEFT?m&&s===u.DOWN?(j.nextSibling?b(j.nextSibling)?e(!0,j.nextSibling):v.setCursorLocation(j.nextSibling,0):e(!1,j),c.preventDefault()):o&&s===u.LEFT||m&&s===u.RIGHT?(h(j),c.preventDefault()):o&&s===u.BACKSPACE?(g(j),c.preventDefault()):o?f(j):m&&f(j,!0,s):(j.previousSibling&&(b(j.previousSibling)?e(s===u.UP,j.previousSibling):(v.select(j.previousSibling,!0),v.collapse())),c.preventDefault()):(j.nextSibling&&(b(j.nextSibling)?e(s===u.RIGHT,j.nextSibling):v.setCursorLocation(j.nextSibling,0)),c.preventDefault()),s===u.ENTER&&c.preventDefault()}}),a.on("keyup",function(){w&&(g(w),w=!1)}),a.on("focus",function(){var c;p=!0,a.dom.addClass(a.getBody(),"has-focus"),x&&(c=b(a.getBody().firstChild))&&e(!0,c),x=!1}),a.on("blur",function(){p=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var f=a.dom,g=a.dom.select(".wpview-wrap"),h=d.element.className,j=b(d.element),k=n;if(n=!1,clearInterval(m),tinymce.each(g,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),p&&j)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||o||(i(),o++,e(!0,j));else{if(o=0,i(),k===j.previousSibling)return void e(!0,j);if(k===j.nextSibling)return void e(!1,j);f.addClass(j,h),m=setInterval(function(){f.hasClass(j,"wpview-cursor-hide")?f.removeClass(j,"wpview-cursor-hide"):f.addClass(j,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((r="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(f(c,r),q=c)}),a.on("ExecCommand",function(){var b,c;l&&(b=l,i(),h(b)),q&&(c=q[r?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),e(r,q)),q=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),a.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){l&&wp.mce.views.edit(a,l)}}),a.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){l&&g(l)}}),a.once("preinit",function(){s=a.wp._createToolbar(["wp_view_edit","wp_view_remove"])}),a.on("wptoolbar",function(a){l&&(a.element=l,a.toolbar=s)}),a.wp=a.wp||{},a.wp.getView=b,{getView:b}):{getView:y}}); \ No newline at end of file +tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(a){a.stopPropagation()}function e(b,c){var d=b?"before":"after",e=b?0:1;i(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function f(b,c,d){var f=a.dom,g=f.create("p");v.ie&&v.ie<11||(g.innerHTML='
'),c?b.parentNode.insertBefore(g,b):f.insertAfter(g,b),i(),c&&d===w.ENTER?e(c,b):a.selection.setCursorLocation(g,0),a.nodeChanged()}function g(b){a.undoManager.transact(function(){f(b),wp.mce.views.remove(a,b)})}function h(b){var c,e=a.dom;b&&(b!==m&&(a.getBody().focus(),i(),m=b,e.setAttrib(b,"data-mce-selected",1),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},wp.mce.views.getText(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",d),e.bind(m,"beforedeactivate focusin focusout",d),B?a.selection.select(c):a.selection.select(c,!0)),a.nodeChanged(),a.fire("wpview-selected",b))}function i(){var b,c=a.dom;m&&(b=a.dom.select(".wpview-clipboard",m)[0],c.unbind(b),c.remove(b),c.unbind(m,"beforedeactivate focusin focusout click mouseup",d),c.setAttrib(m,"data-mce-selected",null)),m=null}function j(a){return a=a.replace(/]+data-wpview-text="([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>[^<>]*<\/p>\s*<\/div>/g,function(a,b){return"

"+window.decodeURIComponent(b)+"

"}),a.replace(/ data-wpview-marker="[^"]+"/g,"")}function k(b){u("div[data-wpview-text]",b).each(function(b,c){var d=u(c),e=window.decodeURIComponent(d.attr("data-wpview-text")||"");e&&c.parentNode&&d.replaceWith(u(a.dom.create("p")).text(e))}),u("p[data-wpview-marker]",b).attr("data-wpview-marker",null)}function l(a){return 47>=a&&a!==w.SPACEBAR&&a!==w.ENTER&&a!==w.DELETE&&a!==w.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var m,n,o,p,q,r,s,t,u=a.$,v=tinymce.Env,w=tinymce.util.VK,x=tinymce.dom.TreeWalker,y=!1,z=!0,A=function(){return!1},B=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.level.content&&(a.level.content=j(a.level.content))}),a.on("BeforeSetContent",function(b){var c;if(b.selection||wp.mce.views.unbind(),b.content){if(m&&g(m),!b.load&&(c=a.selection.getNode(),c&&c!==a.getBody()&&/^\s*https?:\/\/\S+\s*$/i.test(b.content))){if(c=a.dom.getParent(c,"p"),!c||!/^[\s\uFEFF\u00A0]*$/.test(c.textContent||c.innerText))return;c.innerHTML=""}b.content=wp.mce.views.setMarkers(b.content)}}),a.on("pastePreProcess",function(a){var b=a.content;b&&(b=tinymce.trim(b.replace(/<[^>]+>/g,"")),/^https?:\/\/\S+$/i.test(b)&&(a.content=b))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,f,g,h=c.clientX,i=c.clientY,j=a.getBody(),k=j.getBoundingClientRect(),l=j.firstChild,m=j.lastChild;l&&m&&(d=l.getBoundingClientRect(),f=m.getBoundingClientRect(),if.bottom&&(g=b(m))?(e(!1,g),c.preventDefault()):(hk.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return i=b.top&&i<=b.bottom?(hk.right&&(e(!1,a),c.preventDefault()),!1):void 0}))}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new x(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(a){var d=b(a.target);return z=!1,d?(a.stopImmediatePropagation(),a.preventDefault(),"touchend"===a.type&&c?c=!1:h(d),!1):(("touchend"===a.type||"mousedown"===a.type)&&i(),void("touchend"===a.type&&c&&(c=!1)))},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(a){k(a.node)},!0),a.on("hide",function(){wp.mce.views.unbind(),k(a.getBody())}),a.on("keydown",function(c){var d,j,k,n,p,q,r,s=c.keyCode,t=a.dom,u=a.selection;if(m){if((c.metaKey||c.ctrlKey)&&s!==w.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(y=m));if(j=b(u.getNode()),j!==m)return void i();s===w.LEFT?(e(!0,j),c.preventDefault()):s===w.UP?(j.previousSibling?b(j.previousSibling)?e(!0,j.previousSibling):(i(),u.select(j.previousSibling,!0),u.collapse()):e(!0,j),c.preventDefault()):s===w.RIGHT?(e(!1,j),c.preventDefault()):s===w.DOWN?(j.nextSibling?b(j.nextSibling)?e(!1,j.nextSibling):(i(),u.setCursorLocation(j.nextSibling,0)):e(!1,j),c.preventDefault()):l(s)||(g(m),(s===w.ENTER||s===w.DELETE||s===w.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=u.getNode(),o=d,j=b(d),u.isCollapsed()||(p=u.getRng(),(j=b(p.endContainer))?(q=p.cloneRange(),u.select(j.previousSibling,!0),u.collapse(),r=u.getRng(),q.setEnd(r.endContainer,r.endOffset),u.setRng(q)):(j=b(p.startContainer))&&(q=p.cloneRange(),q.setStart(j.nextSibling,0),u.setRng(q))),!j)return void(c.keyCode===w.BACKSPACE&&(a.dom.isEmpty(d)?(j=b(d.previousSibling))&&(e(!1,j),a.dom.remove(d),c.preventDefault()):(p=u.getRng())&&0===p.startOffset&&0===p.endOffset&&(j=b(d.previousSibling))&&(e(!1,j),c.preventDefault())));if(!(k=t.hasClass(j,"wpview-selection-before"))&&!(n=t.hasClass(j,"wpview-selection-after")))return;if(l(s))return;n&&s===w.UP||k&&s===w.BACKSPACE?(j.previousSibling?b(j.previousSibling)?e(!1,j.previousSibling):t.isEmpty(j.previousSibling)&&s===w.BACKSPACE?t.remove(j.previousSibling):(u.select(j.previousSibling,!0),u.collapse()):e(!0,j),c.preventDefault()):!n||s!==w.DOWN&&s!==w.RIGHT?!k||s!==w.UP&&s!==w.LEFT?k&&s===w.DOWN?(j.nextSibling?b(j.nextSibling)?e(!0,j.nextSibling):u.setCursorLocation(j.nextSibling,0):e(!1,j),c.preventDefault()):n&&s===w.LEFT||k&&s===w.RIGHT?(h(j),c.preventDefault()):n&&s===w.BACKSPACE?(g(j),c.preventDefault()):n?f(j):k&&f(j,!0,s):(j.previousSibling&&(b(j.previousSibling)?e(s===w.UP,j.previousSibling):(u.select(j.previousSibling,!0),u.collapse())),c.preventDefault()):(j.nextSibling&&(b(j.nextSibling)?e(s===w.RIGHT,j.nextSibling):u.setCursorLocation(j.nextSibling,0)),c.preventDefault()),s===w.ENTER&&c.preventDefault()}}),a.on("keyup",function(){y&&(g(y),y=!1)}),a.on("focus",function(){var c;q=!0,a.dom.addClass(a.getBody(),"has-focus"),z&&(c=b(a.getBody().firstChild))&&e(!0,c),z=!1}),a.on("blur",function(){q=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var f=a.dom,g=a.dom.select(".wpview-wrap"),h=d.element.className,j=b(d.element),k=o;if(o=!1,clearInterval(n),tinymce.each(g,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),q&&j)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||p||(i(),p++,e(!0,j));else{if(p=0,i(),k===j.previousSibling)return void e(!0,j);if(k===j.nextSibling)return void e(!1,j);f.addClass(j,h),n=setInterval(function(){f.hasClass(j,"wpview-cursor-hide")?f.removeClass(j,"wpview-cursor-hide"):f.addClass(j,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((s="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(f(c,s),r=c)}),a.on("ExecCommand",function(){var b,c;m&&(b=m,i(),h(b)),r&&(c=r[s?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),e(s,r)),r=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),a.addButton("wp_view_edit",{tooltip:"Edit ",icon:"dashicon dashicons-edit",onclick:function(){m&&wp.mce.views.edit(a,m)}}),a.addButton("wp_view_remove",{tooltip:"Remove",icon:"dashicon dashicons-no",onclick:function(){m&&g(m)}}),a.once("preinit",function(){t=a.wp._createToolbar(["wp_view_edit","wp_view_remove"])}),a.on("wptoolbar",function(a){m&&(a.element=m,a.toolbar=t)}),a.wp=a.wp||{},a.wp.getView=b,{getView:b}):{getView:A}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index c5aa37256b1c60e7425ade007093d7cdc9b3d624..10997a579a111e9df097c68f822e859453da1ad6 100644 GIT binary patch delta 6707 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 diff --git a/wp-includes/version.php b/wp-includes/version.php index 488a46151e..066df5d73e 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.2-beta4-32021'; +$wp_version = '4.2-beta4-32022'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. @@ -18,7 +18,7 @@ $wp_db_version = 31532; * * @global string $tinymce_version */ -$tinymce_version = '4109-20150310'; +$tinymce_version = '4109-20150404'; /** * Holds the required PHP version