From 191dd168c18c481a0fb02fadaba81284e90b964e Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Sat, 12 Apr 2014 00:46:14 +0000 Subject: [PATCH] TinyMCE wpViews: - Prevent undo steps from being added when the body of a wpview changes. - Add unbind() to handle cleanup on DOM rebuilding in TinyMCE. - Ensure that MediaElement's cleanup routine is run on every player in all instances of the editor. - Initialize the players after some delay to ensure CSS is loaded. Props gcorne and wonderboymusic, fixes #27389 Built from https://develop.svn.wordpress.org/trunk@28084 git-svn-id: http://core.svn.wordpress.org/trunk@27915 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/js/mce-view.js | 34 +++++++++++++++-- wp-includes/js/mce-view.min.js | 2 +- wp-includes/js/media-audiovideo.js | 8 ++-- wp-includes/js/media-audiovideo.min.js | 2 +- .../js/tinymce/plugins/wpview/plugin.js | 36 +++++++++++------- .../js/tinymce/plugins/wpview/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 122512 -> 122575 bytes 7 files changed, 60 insertions(+), 24 deletions(-) diff --git a/wp-includes/js/mce-view.js b/wp-includes/js/mce-view.js index d3af61ee53..d632d829e7 100644 --- a/wp-includes/js/mce-view.js +++ b/wp-includes/js/mce-view.js @@ -41,12 +41,15 @@ window.wp = window.wp || {}; doc = editor.getDoc(); $( doc ).find( '[data-wpview-text="' + this.encodedText + '"]' ).each(function (i, elem) { var node = $( elem ); - node.html( html ); + // The is used to mark the end of the wrapper div. Needed when comparing + // the content as string for preventing extra undo levels. + node.html( html ).append( '' ); $( self ).trigger( 'ready', elem ); }); } }, this ); - } + }, + unbind: function() {} } ); // take advantage of the Backbone extend method @@ -92,6 +95,17 @@ window.wp = window.wp || {}; delete views[ type ]; }, + /** + * wp.mce.views.unbind( editor ) + * + * The editor DOM is being rebuilt, run cleanup. + */ + unbind: function() { + _.each( instances, function( instance ) { + instance.unbind(); + } ); + }, + /** * toViews( content ) * Scans a `content` string for each view's pattern, replacing any @@ -339,6 +353,7 @@ window.wp = window.wp || {}; * @mixin */ wp.mce.media = { + loaded: false, /** * @global wp.shortcode * @@ -410,6 +425,7 @@ window.wp = window.wp || {}; */ wp.mce.media.View = wp.mce.View.extend({ initialize: function( options ) { + this.players = []; this.shortcode = options.shortcode; _.bindAll( this, 'setPlayer' ); $(this).on( 'ready', this.setPlayer ); @@ -460,8 +476,9 @@ window.wp = window.wp || {}; media = wp.media.view.MediaDetails.prepareSrc( media.get(0) ); setTimeout( function() { - self.player = new MediaElementPlayer( media, this.mejsSettings ); - }, 75 ); + wp.mce.media.loaded = true; + self.players.push( new MediaElementPlayer( media, self.mejsSettings ) ); + }, wp.mce.media.loaded ? 10 : 500 ); }, /** @@ -475,6 +492,15 @@ window.wp = window.wp || {}; wp.media[ this.shortcode.tag ].defaults ); return this.template({ model: attrs }); + }, + + unbind: function() { + var self = this; + this.pauseAllPlayers(); + _.each( this.players, function (player) { + self.removePlayer( player ); + } ); + this.players = []; } }); _.extend( wp.mce.media.View.prototype, wp.media.mixin ); diff --git a/wp-includes/js/mce-view.min.js b/wp-includes/js/mce-view.min.js index 13e00256f3..925b30b0e1 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){var b={},c={},d=wp.media,e=["encodedText"];wp.mce=wp.mce||{},wp.mce.View=function(a){a||(a={}),_.extend(this,_.pick(a,e)),this.initialize.apply(this,arguments)},_.extend(wp.mce.View.prototype,{initialize:function(){},getHtml:function(){},render:function(){var b=this.getHtml();_.each(tinymce.editors,function(c){var d,e=this;c.plugins.wpview&&(d=c.getDoc(),a(d).find('[data-wpview-text="'+this.encodedText+'"]').each(function(c,d){var f=a(d);f.html(b),a(e).trigger("ready",d)}))},this)}}),wp.mce.View.extend=Backbone.View.extend,wp.mce.views={register:function(a,c){b[a]=c},get:function(a){return b[a]},unregister:function(a){delete b[a]},toViews:function(a){var c,d=[{content:a}];return _.each(b,function(a,b){c=d.slice(),d=[],_.each(c,function(c){var e,f=c.content;if(c.processed)return void d.push(c);for(;f&&(e=a.toView(f));)e.index&&d.push({content:f.substring(0,e.index)}),d.push({content:wp.mce.views.toView(b,e.content,e.options),processed:!0}),f=f.slice(e.index+e.content.length);f&&d.push({content:f})})}),_.pluck(d,"content").join("")},toView:function(a,b,d){var e,f,g=wp.mce.views.get(a),h=window.encodeURIComponent(b);return g?(wp.mce.views.getInstance(h)||(f=d,f.encodedText=h,e=new g.View(f),c[h]=e),wp.html.string({tag:"div",attrs:{"class":"wpview-wrap wpview-type-"+a,"data-wpview-text":h,"data-wpview-type":a,contenteditable:"false"},content:" "})):b},refreshView:function(a,b){var d,e,f,g=window.encodeURIComponent(b);f=wp.mce.views.getInstance(g),f||(e=a.toView(b),d=e.options,d.encodedText=g,f=new a.View(d),c[g]=f),wp.mce.views.render()},getInstance:function(a){return c[a]},render:function(){_.each(c,function(a){a.render()})},edit:function(b){var c=a(b).data("wpview-type"),d=wp.mce.views.get(c);d&&d.edit(b)}},wp.mce.gallery={shortcode:"gallery",toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},View:wp.mce.View.extend({className:"editor-gallery",template:d.template("editor-gallery"),postID:a("#post_ID").val(),initialize:function(a){this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.gallery.attachments(this.shortcode,this.postID),this.dfd=this.attachments.more().done(_.bind(this.render,this))},getHtml:function(){var a,b=this.shortcode.attrs.named,c=!1;if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return this.attachments.length&&(c=this.attachments.toJSON(),_.each(c,function(a){a.sizes&&(a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))})),a={attachments:c,columns:b.columns?parseInt(b.columns,10):3},this.template(a)}}),edit:function(b){var c,d,e=wp.media.gallery,f=this;d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=e.edit(d),c.state("gallery-edit").on("update",function(d){var g=e.shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(g)),wp.mce.views.refreshView(f,g),c.detach()})}},wp.mce.views.register("gallery",wp.mce.gallery),wp.mce.media={toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},edit:function(b){var c,d,e,f=wp.media[this.shortcode],g=this;wp.media.mixin.pauseAllPlayers(),d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=f.edit(d),c.on("close",function(){c.detach()}),e=function(d){var e=wp.media[g.shortcode].shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(e)),wp.mce.views.refreshView(g,e),c.detach()},_.isArray(g.state)?_.each(g.state,function(a){c.state(a).on("update",e)}):c.state(g.state).on("update",e),c.open()}},wp.mce.media.View=wp.mce.View.extend({initialize:function(b){this.shortcode=b.shortcode,_.bindAll(this,"setPlayer"),a(this).on("ready",this.setPlayer)},setPlayer:function(b,c){if(c){var d,e=this,f=this.ua.is("ff"),g=".wp-"+this.shortcode.tag+"-shortcode";if(this.player&&this.unsetPlayer(),d=a(c).find(g),!this.isCompatible(d))return d.closest(".wpview-wrap").addClass("wont-play"),d.parent().hasClass("wpview-wrap")||d.parent().replaceWith(d),void d.replaceWith("

"+d.find("source").eq(0).prop("src")+"

");d.closest(".wpview-wrap").removeClass("wont-play"),f?d.prop("preload","metadata"):d.prop("preload","none"),d=wp.media.view.MediaDetails.prepareSrc(d.get(0)),setTimeout(function(){e.player=new MediaElementPlayer(d,this.mejsSettings)},75)}},getHtml:function(){var a=_.defaults(this.shortcode.attrs.named,wp.media[this.shortcode.tag].defaults);return this.template({model:a})}}),_.extend(wp.mce.media.View.prototype,wp.media.mixin),wp.mce.video=_.extend({},wp.mce.media,{shortcode:"video",state:"video-details",View:wp.mce.media.View.extend({className:"editor-video",template:d.template("editor-video")})}),wp.mce.views.register("video",wp.mce.video),wp.mce.audio=_.extend({},wp.mce.media,{shortcode:"audio",state:"audio-details",View:wp.mce.media.View.extend({className:"editor-audio",template:d.template("editor-audio")})}),wp.mce.views.register("audio",wp.mce.audio),wp.mce.media.PlaylistView=wp.mce.View.extend({className:"editor-playlist",template:d.template("editor-playlist"),initialize:function(b){this.data={},this.attachments=[],this.shortcode=b.shortcode,_.bindAll(this,"setPlayer"),a(this).on("ready",this.setNode)},setNode:function(a,b){this.node=b,this.fetch()},fetch:function(){this.attachments=wp.media.playlist.attachments(this.shortcode),this.attachments.more().done(this.setPlayer)},setPlayer:function(){var b,c=this.getHtml(),d=this.encodedText,e=this;this.unsetPlayer(),_.each(tinymce.editors,function(b){var f;b.plugins.wpview&&(f=b.getDoc(),a(f).find('[data-wpview-text="'+d+'"]').each(function(b,d){var f=a(d);f.html(c),e.node=d}))},this),b=new WPPlaylistView({el:a(e.node).find(".wp-playlist").get(0),metadata:this.data}),this.player=b._player},getHtml:function(){var a,b,c=this.shortcode.attrs.named,e=wp.media.playlist,f=[];if(this.attachments.length)return _.each(e.defaults,function(a,b){c[b]=e.coerce(c,b)}),b=this.attachments.toJSON(),a={type:c.type,style:c.style,tracklist:c.tracklist,tracknumbers:c.tracknumbers,images:c.images,artists:c.artists},_.each(b,function(b){var e={},g={},h={src:b.url,type:b.mime,title:b.title,caption:b.caption,description:b.description,meta:b.meta};"video"===c.type?(e.width=b.width,e.height=b.height,d.view.settings.contentWidth?(g.width=d.view.settings.contentWidth-22,g.height=Math.ceil(e.height*g.width/e.width),a.width||(a.width=g.width,a.height=g.height)):a.width||(a.width=b.width,a.height=b.height),h.dimensions={original:e,resized:_.isEmpty(g)?e:g}):a.width=400,h.image=b.image,h.thumb=b.thumb,f.push(h)}),a.tracks=f,this.data=a,this.template(a)}}),_.extend(wp.mce.media.PlaylistView.prototype,wp.media.mixin),wp.mce.playlist=_.extend({},wp.mce.media,{shortcode:"playlist",state:["playlist-edit","video-playlist-edit"],View:wp.mce.media.PlaylistView}),wp.mce.views.register("playlist",wp.mce.playlist)}(jQuery); \ No newline at end of file +window.wp=window.wp||{},function(a){var b={},c={},d=wp.media,e=["encodedText"];wp.mce=wp.mce||{},wp.mce.View=function(a){a||(a={}),_.extend(this,_.pick(a,e)),this.initialize.apply(this,arguments)},_.extend(wp.mce.View.prototype,{initialize:function(){},getHtml:function(){},render:function(){var b=this.getHtml();_.each(tinymce.editors,function(c){var d,e=this;c.plugins.wpview&&(d=c.getDoc(),a(d).find('[data-wpview-text="'+this.encodedText+'"]').each(function(c,d){var f=a(d);f.html(b).append(''),a(e).trigger("ready",d)}))},this)},unbind:function(){}}),wp.mce.View.extend=Backbone.View.extend,wp.mce.views={register:function(a,c){b[a]=c},get:function(a){return b[a]},unregister:function(a){delete b[a]},unbind:function(){_.each(c,function(a){a.unbind()})},toViews:function(a){var c,d=[{content:a}];return _.each(b,function(a,b){c=d.slice(),d=[],_.each(c,function(c){var e,f=c.content;if(c.processed)return void d.push(c);for(;f&&(e=a.toView(f));)e.index&&d.push({content:f.substring(0,e.index)}),d.push({content:wp.mce.views.toView(b,e.content,e.options),processed:!0}),f=f.slice(e.index+e.content.length);f&&d.push({content:f})})}),_.pluck(d,"content").join("")},toView:function(a,b,d){var e,f,g=wp.mce.views.get(a),h=window.encodeURIComponent(b);return g?(wp.mce.views.getInstance(h)||(f=d,f.encodedText=h,e=new g.View(f),c[h]=e),wp.html.string({tag:"div",attrs:{"class":"wpview-wrap wpview-type-"+a,"data-wpview-text":h,"data-wpview-type":a,contenteditable:"false"},content:" "})):b},refreshView:function(a,b){var d,e,f,g=window.encodeURIComponent(b);f=wp.mce.views.getInstance(g),f||(e=a.toView(b),d=e.options,d.encodedText=g,f=new a.View(d),c[g]=f),wp.mce.views.render()},getInstance:function(a){return c[a]},render:function(){_.each(c,function(a){a.render()})},edit:function(b){var c=a(b).data("wpview-type"),d=wp.mce.views.get(c);d&&d.edit(b)}},wp.mce.gallery={shortcode:"gallery",toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},View:wp.mce.View.extend({className:"editor-gallery",template:d.template("editor-gallery"),postID:a("#post_ID").val(),initialize:function(a){this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.gallery.attachments(this.shortcode,this.postID),this.dfd=this.attachments.more().done(_.bind(this.render,this))},getHtml:function(){var a,b=this.shortcode.attrs.named,c=!1;if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return this.attachments.length&&(c=this.attachments.toJSON(),_.each(c,function(a){a.sizes&&(a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))})),a={attachments:c,columns:b.columns?parseInt(b.columns,10):3},this.template(a)}}),edit:function(b){var c,d,e=wp.media.gallery,f=this;d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=e.edit(d),c.state("gallery-edit").on("update",function(d){var g=e.shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(g)),wp.mce.views.refreshView(f,g),c.detach()})}},wp.mce.views.register("gallery",wp.mce.gallery),wp.mce.media={loaded:!1,toView:function(a){var b=wp.shortcode.next(this.shortcode,a);if(b)return{index:b.index,content:b.content,options:{shortcode:b.shortcode}}},edit:function(b){var c,d,e,f=wp.media[this.shortcode],g=this;wp.media.mixin.pauseAllPlayers(),d=window.decodeURIComponent(a(b).attr("data-wpview-text")),c=f.edit(d),c.on("close",function(){c.detach()}),e=function(d){var e=wp.media[g.shortcode].shortcode(d).string();a(b).attr("data-wpview-text",window.encodeURIComponent(e)),wp.mce.views.refreshView(g,e),c.detach()},_.isArray(g.state)?_.each(g.state,function(a){c.state(a).on("update",e)}):c.state(g.state).on("update",e),c.open()}},wp.mce.media.View=wp.mce.View.extend({initialize:function(b){this.players=[],this.shortcode=b.shortcode,_.bindAll(this,"setPlayer"),a(this).on("ready",this.setPlayer)},setPlayer:function(b,c){if(c){var d,e=this,f=this.ua.is("ff"),g=".wp-"+this.shortcode.tag+"-shortcode";if(this.player&&this.unsetPlayer(),d=a(c).find(g),!this.isCompatible(d))return d.closest(".wpview-wrap").addClass("wont-play"),d.parent().hasClass("wpview-wrap")||d.parent().replaceWith(d),void d.replaceWith("

"+d.find("source").eq(0).prop("src")+"

");d.closest(".wpview-wrap").removeClass("wont-play"),f?d.prop("preload","metadata"):d.prop("preload","none"),d=wp.media.view.MediaDetails.prepareSrc(d.get(0)),setTimeout(function(){wp.mce.media.loaded=!0,e.players.push(new MediaElementPlayer(d,e.mejsSettings))},wp.mce.media.loaded?10:500)}},getHtml:function(){var a=_.defaults(this.shortcode.attrs.named,wp.media[this.shortcode.tag].defaults);return this.template({model:a})},unbind:function(){var a=this;this.pauseAllPlayers(),_.each(this.players,function(b){a.removePlayer(b)}),this.players=[]}}),_.extend(wp.mce.media.View.prototype,wp.media.mixin),wp.mce.video=_.extend({},wp.mce.media,{shortcode:"video",state:"video-details",View:wp.mce.media.View.extend({className:"editor-video",template:d.template("editor-video")})}),wp.mce.views.register("video",wp.mce.video),wp.mce.audio=_.extend({},wp.mce.media,{shortcode:"audio",state:"audio-details",View:wp.mce.media.View.extend({className:"editor-audio",template:d.template("editor-audio")})}),wp.mce.views.register("audio",wp.mce.audio),wp.mce.media.PlaylistView=wp.mce.View.extend({className:"editor-playlist",template:d.template("editor-playlist"),initialize:function(b){this.data={},this.attachments=[],this.shortcode=b.shortcode,_.bindAll(this,"setPlayer"),a(this).on("ready",this.setNode)},setNode:function(a,b){this.node=b,this.fetch()},fetch:function(){this.attachments=wp.media.playlist.attachments(this.shortcode),this.attachments.more().done(this.setPlayer)},setPlayer:function(){var b,c=this.getHtml(),d=this.encodedText,e=this;this.unsetPlayer(),_.each(tinymce.editors,function(b){var f;b.plugins.wpview&&(f=b.getDoc(),a(f).find('[data-wpview-text="'+d+'"]').each(function(b,d){var f=a(d);f.html(c),e.node=d}))},this),b=new WPPlaylistView({el:a(e.node).find(".wp-playlist").get(0),metadata:this.data}),this.player=b._player},getHtml:function(){var a,b,c=this.shortcode.attrs.named,e=wp.media.playlist,f=[];if(this.attachments.length)return _.each(e.defaults,function(a,b){c[b]=e.coerce(c,b)}),b=this.attachments.toJSON(),a={type:c.type,style:c.style,tracklist:c.tracklist,tracknumbers:c.tracknumbers,images:c.images,artists:c.artists},_.each(b,function(b){var e={},g={},h={src:b.url,type:b.mime,title:b.title,caption:b.caption,description:b.description,meta:b.meta};"video"===c.type?(e.width=b.width,e.height=b.height,d.view.settings.contentWidth?(g.width=d.view.settings.contentWidth-22,g.height=Math.ceil(e.height*g.width/e.width),a.width||(a.width=g.width,a.height=g.height)):a.width||(a.width=b.width,a.height=b.height),h.dimensions={original:e,resized:_.isEmpty(g)?e:g}):a.width=400,h.image=b.image,h.thumb=b.thumb,f.push(h)}),a.tracks=f,this.data=a,this.template(a)}}),_.extend(wp.mce.media.PlaylistView.prototype,wp.media.mixin),wp.mce.playlist=_.extend({},wp.mce.media,{shortcode:"playlist",state:["playlist-edit","video-playlist-edit"],View:wp.mce.media.PlaylistView}),wp.mce.views.register("playlist",wp.mce.playlist)}(jQuery); \ No newline at end of file diff --git a/wp-includes/js/media-audiovideo.js b/wp-includes/js/media-audiovideo.js index 3f659da968..da91a9cf63 100644 --- a/wp-includes/js/media-audiovideo.js +++ b/wp-includes/js/media-audiovideo.js @@ -128,8 +128,8 @@ * MediaElement tries to pull the audio/video tag out of * its container and re-add it to the DOM. */ - removePlayer: function() { - var t = this.player, featureIndex, feature; + removePlayer: function(t) { + var featureIndex, feature; // invoke features cleanup for ( featureIndex in t.options.features ) { @@ -165,7 +165,7 @@ unsetPlayer : function() { if ( this.player ) { wp.media.mixin.pauseAllPlayers(); - wp.media.mixin.removePlayer.apply( this ); + wp.media.mixin.removePlayer( this.player ); this.player = false; } } @@ -914,4 +914,4 @@ $( init ); -}(jQuery, _, Backbone)); \ No newline at end of file +}(jQuery, _, Backbone)); diff --git a/wp-includes/js/media-audiovideo.min.js b/wp-includes/js/media-audiovideo.min.js index 698e6d5ea9..5adfec5b36 100644 --- a/wp-includes/js/media-audiovideo.min.js +++ b/wp-includes/js/media-audiovideo.min.js @@ -1 +1 @@ -!function(a,b,c){function d(){a(document.body).on("click",".wp-switch-editor",wp.media.mixin.pauseAllPlayers).on("click",".add-media-source",function(b){e.frame.lastMime=a(b.currentTarget).data("mime"),e.frame.setState("add-"+e.frame.defaults.id+"-source")})}var e=wp.media,f={},g="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n;b.isUndefined(window._wpmejsSettings)||(f.pluginPath=_wpmejsSettings.pluginPath),wp.media.mixin={mejsSettings:f,pauseAllPlayers:function(){var a;if(window.mejs&&window.mejs.players)for(a in window.mejs.players)window.mejs.players[a].pause()},ua:{is:function(a){var b=!1,c=window.navigator.userAgent;switch(a){case"oldie":b=null!==c.match(/MSIE [6-8]/gi);break;case"ie":b=null!==c.match(/MSIE/gi);break;case"ff":b=null!==c.match(/firefox/gi);break;case"opera":b=null!==c.match(/OPR/);break;case"safari":b=null!==c.match(/safari/gi)&&null===c.match(/chrome/gi);break;case"chrome":b=null!==c.match(/safari/gi)&&null!==c.match(/chrome/gi)}return b}},compat:{opera:{audio:["ogg","wav"],video:["ogg","webm"]},chrome:{audio:["ogg","mpeg"],video:["ogg","webm","mp4","m4v","mpeg"]},ff:{audio:["ogg","mpeg"],video:["ogg","webm"]},safari:{audio:["mpeg","wav"],video:["mp4","m4v","mpeg","x-ms-wmv","quicktime"]},ie:{audio:["mpeg"],video:["mp4","m4v","mpeg"]}},isCompatible:function(a){if(!a.find("source").length)return!1;var c,d=this.ua,e=!1,f=!1;return d.is("oldIE")?!1:(c=a.find("source"),b.find(this.compat,function(a,g){return d.is(g)&&(f=!0,b.each(c,function(b){var c=new RegExp("audio/("+a.audio.join("|")+")","gi"),d=new RegExp("video/("+a.video.join("|")+")","gi");(null!==b.type.match(d)||null!==b.type.match(c))&&(e=!0)})),e||f}),e)},removePlayer:function(){var a,b,c=this.player;for(a in c.options.features)if(b=c.options.features[a],c["clean"+b])try{c["clean"+b](c)}catch(d){}c.isDynamic||c.$node.remove(),"native"!==c.media.pluginType&&c.media.remove(),delete window.mejs.players[c.id],c.container.remove(),c.globalUnbind(),delete c.node.player},unsetPlayer:function(){this.player&&(wp.media.mixin.pauseAllPlayers(),wp.media.mixin.removePlayer.apply(this),this.player=!1)}},wp.media.playlist=new wp.media.collection({tag:"playlist",editTitle:g.editPlaylistTitle,defaults:{id:wp.media.view.settings.post.id,style:"light",tracklist:!0,tracknumbers:!0,images:!0,artists:!0,type:"audio"}}),wp.media.audio={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",loop:!1,autoplay:!1,preload:"none",width:400},edit:function(a){var c,d=wp.shortcode.next("audio",a).shortcode;return c=wp.media({frame:"audio",state:"audio-details",metadata:b.defaults(d.attrs.named,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"audio",attrs:a,content:c})}},wp.media.video={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",poster:"",loop:!1,autoplay:!1,preload:"metadata",content:"",width:640,height:360},edit:function(a){var c,d,e=wp.shortcode.next("video",a).shortcode;return d=e.attrs.named,d.content=e.content,c=wp.media({frame:"video",state:"video-details",metadata:b.defaults(d,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"video",attrs:a,content:c})}},e.model.PostMedia=c.Model.extend({initialize:function(){this.attachment=!1},setSource:function(a){this.attachment=a,this.extension=a.get("filename").split(".").pop(),this.get("src")&&this.extension===this.get("src").split(".").pop()&&this.unset("src"),b.contains(wp.media.view.settings.embedExts,this.extension)?this.set(this.extension,this.attachment.get("url")):this.unset(this.extension)},changeAttachment:function(a){var c=this;this.setSource(a),this.unset("src"),b.each(b.without(wp.media.view.settings.embedExts,this.extension),function(a){c.unset(a)})}}),e.controller.AudioDetails=e.controller.State.extend({defaults:{id:"audio-details",toolbar:"audio-details",title:g.audioDetailsTitle,content:"audio-details",menu:"audio-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.controller.VideoDetails=e.controller.State.extend({defaults:{id:"video-details",toolbar:"video-details",title:g.videoDetailsTitle,content:"video-details",menu:"video-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.view.MediaFrame.MediaDetails=e.view.MediaFrame.Select.extend({defaults:{id:"media",url:"",menu:"media-details",content:"media-details",toolbar:"media-details",type:"link",priority:120},initialize:function(a){this.DetailsView=a.DetailsView,this.cancelText=a.cancelText,this.addText=a.addText,this.media=new e.model.PostMedia(a.metadata),this.options.selection=new e.model.Selection(this.media.attachment,{multiple:!1}),e.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){var a=this.defaults.menu;e.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:"+a,this.createMenu,this),this.on("content:render:"+a,this.renderDetailsContent,this),this.on("menu:render:"+a,this.renderMenu,this),this.on("toolbar:render:"+a,this.renderDetailsToolbar,this)},renderDetailsContent:function(){var a=new this.DetailsView({controller:this,model:this.state().media,attachment:this.state().media.attachment}).render();this.content.set(a)},renderMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:this.cancelText,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new e.View({className:"separator",priority:40})})},setPrimaryButton:function(a,b){this.toolbar.set(new e.view.Toolbar({controller:this,items:{button:{style:"primary",text:a,priority:80,click:function(){var a=this.controller;b.call(this,a,a.state()),a.setState(a.options.state),a.reset()}}}}))},renderDetailsToolbar:function(){this.setPrimaryButton(g.update,function(a,b){a.close(),b.trigger("update",a.media.toJSON())})},renderReplaceToolbar:function(){this.setPrimaryButton(g.replace,function(a,b){var c=b.get("selection").single();a.media.changeAttachment(c),b.trigger("replace",a.media.toJSON())})},renderAddSourceToolbar:function(){this.setPrimaryButton(this.addText,function(a,b){var c=b.get("selection").single();a.media.setSource(c),b.trigger("add-source",a.media.toJSON())})}}),e.view.MediaFrame.AudioDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"audio",url:"",menu:"audio-details",content:"audio-details",toolbar:"audio-details",type:"link",title:g.audioDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.AudioDetails,a.cancelText=g.audioDetailsCancel,a.addText=g.audioAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-audio",this.renderReplaceToolbar,this),this.on("toolbar:render:add-audio-source",this.renderAddSourceToolbar,this)},createStates:function(){this.states.add([new e.controller.AudioDetails({media:this.media}),new e.controller.MediaLibrary({type:"audio",id:"replace-audio",title:g.audioReplaceTitle,toolbar:"replace-audio",media:this.media,menu:"audio-details"}),new e.controller.MediaLibrary({type:"audio",id:"add-audio-source",title:g.audioAddSourceTitle,toolbar:"add-audio-source",media:this.media,menu:!1})])}}),e.view.MediaFrame.VideoDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"video",url:"",menu:"video-details",content:"video-details",toolbar:"video-details",type:"link",title:g.videoDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.VideoDetails,a.cancelText=g.videoDetailsCancel,a.addText=g.videoAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-video",this.renderReplaceToolbar,this),this.on("toolbar:render:add-video-source",this.renderAddSourceToolbar,this),this.on("toolbar:render:select-poster-image",this.renderSelectPosterImageToolbar,this),this.on("toolbar:render:add-track",this.renderAddTrackToolbar,this)},createStates:function(){this.states.add([new e.controller.VideoDetails({media:this.media}),new e.controller.MediaLibrary({type:"video",id:"replace-video",title:g.videoReplaceTitle,toolbar:"replace-video",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"video",id:"add-video-source",title:g.videoAddSourceTitle,toolbar:"add-video-source",media:this.media,menu:!1}),new e.controller.MediaLibrary({type:"image",id:"select-poster-image",title:g.videoSelectPosterImageTitle,toolbar:"select-poster-image",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"text",id:"add-track",title:g.videoAddTrackTitle,toolbar:"add-track",media:this.media,menu:"video-details"})])},renderSelectPosterImageToolbar:function(){this.setPrimaryButton(g.videoSelectPosterImageTitle,function(a,b){var c=b.get("selection").single();a.media.set("poster",c.get("url")),b.trigger("set-poster-image",a.media.toJSON())})},renderAddTrackToolbar:function(){this.setPrimaryButton(g.videoAddTrackTitle,function(a,b){var c=b.get("selection").single(),d=a.media.get("content");-1===d.indexOf(c.get("url"))&&(d+=[''].join(""),a.media.set("content",d)),b.trigger("add-track",a.media.toJSON())})}}),e.view.MediaDetails=e.view.Settings.AttachmentDisplay.extend({initialize:function(){b.bindAll(this,"success"),this.listenTo(this.controller,"close",e.mixin.unsetPlayer),this.on("ready",this.setPlayer),this.on("media:setting:remove",e.mixin.unsetPlayer,this),this.on("media:setting:remove",this.render),this.on("media:setting:remove",this.setPlayer),this.events=b.extend(this.events,{"click .remove-setting":"removeSetting","change .content-track":"setTracks","click .remove-track":"setTracks"}),e.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},removeSetting:function(b){var c,d=a(b.currentTarget).parent();c=d.find("input").data("setting"),c&&(this.model.unset(c),this.trigger("media:setting:remove",this)),d.remove()},setTracks:function(){var c="";b.each(this.$(".content-track"),function(b){c+=a(b).val()}),this.model.set("content",c),this.trigger("media:setting:remove",this)},setPlayer:function(){!this.player&&this.media&&(this.player=new MediaElementPlayer(this.media,this.settings))},setMedia:function(){return this},success:function(a){var b=a.attributes.autoplay&&"false"!==a.attributes.autoplay;"flash"===a.pluginType&&b&&a.addEventListener("canplay",function(){a.play()},!1),this.mejs=a},render:function(){var a=this;return e.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),setTimeout(function(){a.resetFocus()},10),this.settings=b.defaults({success:this.success},f),this.setMedia()},resetFocus:function(){this.$(".embed-media-settings").scrollTop(0)}},{instances:0,prepareSrc:function(c){var d=e.view.MediaDetails.instances++;return b.each(a(c).find("source"),function(a){a.src=[a.src,a.src.indexOf("?")>-1?"&":"?","_=",d].join("")}),c}}),e.view.AudioDetails=e.view.MediaDetails.extend({className:"audio-details",template:e.template("audio-details"),setMedia:function(){var a=this.$(".wp-audio-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),e.view.VideoDetails=e.view.MediaDetails.extend({className:"video-details",template:e.template("video-details"),setMedia:function(){var a=this.$(".wp-video-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=a.hasClass("youtube-video")?a.get(0):e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),a(d)}(jQuery,_,Backbone); \ No newline at end of file +!function(a,b,c){function d(){a(document.body).on("click",".wp-switch-editor",wp.media.mixin.pauseAllPlayers).on("click",".add-media-source",function(b){e.frame.lastMime=a(b.currentTarget).data("mime"),e.frame.setState("add-"+e.frame.defaults.id+"-source")})}var e=wp.media,f={},g="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n;b.isUndefined(window._wpmejsSettings)||(f.pluginPath=_wpmejsSettings.pluginPath),wp.media.mixin={mejsSettings:f,pauseAllPlayers:function(){var a;if(window.mejs&&window.mejs.players)for(a in window.mejs.players)window.mejs.players[a].pause()},ua:{is:function(a){var b=!1,c=window.navigator.userAgent;switch(a){case"oldie":b=null!==c.match(/MSIE [6-8]/gi);break;case"ie":b=null!==c.match(/MSIE/gi);break;case"ff":b=null!==c.match(/firefox/gi);break;case"opera":b=null!==c.match(/OPR/);break;case"safari":b=null!==c.match(/safari/gi)&&null===c.match(/chrome/gi);break;case"chrome":b=null!==c.match(/safari/gi)&&null!==c.match(/chrome/gi)}return b}},compat:{opera:{audio:["ogg","wav"],video:["ogg","webm"]},chrome:{audio:["ogg","mpeg"],video:["ogg","webm","mp4","m4v","mpeg"]},ff:{audio:["ogg","mpeg"],video:["ogg","webm"]},safari:{audio:["mpeg","wav"],video:["mp4","m4v","mpeg","x-ms-wmv","quicktime"]},ie:{audio:["mpeg"],video:["mp4","m4v","mpeg"]}},isCompatible:function(a){if(!a.find("source").length)return!1;var c,d=this.ua,e=!1,f=!1;return d.is("oldIE")?!1:(c=a.find("source"),b.find(this.compat,function(a,g){return d.is(g)&&(f=!0,b.each(c,function(b){var c=new RegExp("audio/("+a.audio.join("|")+")","gi"),d=new RegExp("video/("+a.video.join("|")+")","gi");(null!==b.type.match(d)||null!==b.type.match(c))&&(e=!0)})),e||f}),e)},removePlayer:function(a){var b,c;for(b in a.options.features)if(c=a.options.features[b],a["clean"+c])try{a["clean"+c](a)}catch(d){}a.isDynamic||a.$node.remove(),"native"!==a.media.pluginType&&a.media.remove(),delete window.mejs.players[a.id],a.container.remove(),a.globalUnbind(),delete a.node.player},unsetPlayer:function(){this.player&&(wp.media.mixin.pauseAllPlayers(),wp.media.mixin.removePlayer(this.player),this.player=!1)}},wp.media.playlist=new wp.media.collection({tag:"playlist",editTitle:g.editPlaylistTitle,defaults:{id:wp.media.view.settings.post.id,style:"light",tracklist:!0,tracknumbers:!0,images:!0,artists:!0,type:"audio"}}),wp.media.audio={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",loop:!1,autoplay:!1,preload:"none",width:400},edit:function(a){var c,d=wp.shortcode.next("audio",a).shortcode;return c=wp.media({frame:"audio",state:"audio-details",metadata:b.defaults(d.attrs.named,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"audio",attrs:a,content:c})}},wp.media.video={coerce:wp.media.coerce,defaults:{id:wp.media.view.settings.post.id,src:"",poster:"",loop:!1,autoplay:!1,preload:"metadata",content:"",width:640,height:360},edit:function(a){var c,d,e=wp.shortcode.next("video",a).shortcode;return d=e.attrs.named,d.content=e.content,c=wp.media({frame:"video",state:"video-details",metadata:b.defaults(d,this.defaults)})},shortcode:function(a){var c,d=this;return b.each(this.defaults,function(b,c){a[c]=d.coerce(a,c),b===a[c]&&delete a[c]}),c=a.content,delete a.content,new wp.shortcode({tag:"video",attrs:a,content:c})}},e.model.PostMedia=c.Model.extend({initialize:function(){this.attachment=!1},setSource:function(a){this.attachment=a,this.extension=a.get("filename").split(".").pop(),this.get("src")&&this.extension===this.get("src").split(".").pop()&&this.unset("src"),b.contains(wp.media.view.settings.embedExts,this.extension)?this.set(this.extension,this.attachment.get("url")):this.unset(this.extension)},changeAttachment:function(a){var c=this;this.setSource(a),this.unset("src"),b.each(b.without(wp.media.view.settings.embedExts,this.extension),function(a){c.unset(a)})}}),e.controller.AudioDetails=e.controller.State.extend({defaults:{id:"audio-details",toolbar:"audio-details",title:g.audioDetailsTitle,content:"audio-details",menu:"audio-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.controller.VideoDetails=e.controller.State.extend({defaults:{id:"video-details",toolbar:"video-details",title:g.videoDetailsTitle,content:"video-details",menu:"video-details",router:!1,priority:60},initialize:function(a){this.media=a.media,e.controller.State.prototype.initialize.apply(this,arguments)}}),e.view.MediaFrame.MediaDetails=e.view.MediaFrame.Select.extend({defaults:{id:"media",url:"",menu:"media-details",content:"media-details",toolbar:"media-details",type:"link",priority:120},initialize:function(a){this.DetailsView=a.DetailsView,this.cancelText=a.cancelText,this.addText=a.addText,this.media=new e.model.PostMedia(a.metadata),this.options.selection=new e.model.Selection(this.media.attachment,{multiple:!1}),e.view.MediaFrame.Select.prototype.initialize.apply(this,arguments)},bindHandlers:function(){var a=this.defaults.menu;e.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:"+a,this.createMenu,this),this.on("content:render:"+a,this.renderDetailsContent,this),this.on("menu:render:"+a,this.renderMenu,this),this.on("toolbar:render:"+a,this.renderDetailsToolbar,this)},renderDetailsContent:function(){var a=new this.DetailsView({controller:this,model:this.state().media,attachment:this.state().media.attachment}).render();this.content.set(a)},renderMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:this.cancelText,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new e.View({className:"separator",priority:40})})},setPrimaryButton:function(a,b){this.toolbar.set(new e.view.Toolbar({controller:this,items:{button:{style:"primary",text:a,priority:80,click:function(){var a=this.controller;b.call(this,a,a.state()),a.setState(a.options.state),a.reset()}}}}))},renderDetailsToolbar:function(){this.setPrimaryButton(g.update,function(a,b){a.close(),b.trigger("update",a.media.toJSON())})},renderReplaceToolbar:function(){this.setPrimaryButton(g.replace,function(a,b){var c=b.get("selection").single();a.media.changeAttachment(c),b.trigger("replace",a.media.toJSON())})},renderAddSourceToolbar:function(){this.setPrimaryButton(this.addText,function(a,b){var c=b.get("selection").single();a.media.setSource(c),b.trigger("add-source",a.media.toJSON())})}}),e.view.MediaFrame.AudioDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"audio",url:"",menu:"audio-details",content:"audio-details",toolbar:"audio-details",type:"link",title:g.audioDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.AudioDetails,a.cancelText=g.audioDetailsCancel,a.addText=g.audioAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-audio",this.renderReplaceToolbar,this),this.on("toolbar:render:add-audio-source",this.renderAddSourceToolbar,this)},createStates:function(){this.states.add([new e.controller.AudioDetails({media:this.media}),new e.controller.MediaLibrary({type:"audio",id:"replace-audio",title:g.audioReplaceTitle,toolbar:"replace-audio",media:this.media,menu:"audio-details"}),new e.controller.MediaLibrary({type:"audio",id:"add-audio-source",title:g.audioAddSourceTitle,toolbar:"add-audio-source",media:this.media,menu:!1})])}}),e.view.MediaFrame.VideoDetails=e.view.MediaFrame.MediaDetails.extend({defaults:{id:"video",url:"",menu:"video-details",content:"video-details",toolbar:"video-details",type:"link",title:g.videoDetailsTitle,priority:120},initialize:function(a){a.DetailsView=e.view.VideoDetails,a.cancelText=g.videoDetailsCancel,a.addText=g.videoAddSourceTitle,e.view.MediaFrame.MediaDetails.prototype.initialize.call(this,a)},bindHandlers:function(){e.view.MediaFrame.MediaDetails.prototype.bindHandlers.apply(this,arguments),this.on("toolbar:render:replace-video",this.renderReplaceToolbar,this),this.on("toolbar:render:add-video-source",this.renderAddSourceToolbar,this),this.on("toolbar:render:select-poster-image",this.renderSelectPosterImageToolbar,this),this.on("toolbar:render:add-track",this.renderAddTrackToolbar,this)},createStates:function(){this.states.add([new e.controller.VideoDetails({media:this.media}),new e.controller.MediaLibrary({type:"video",id:"replace-video",title:g.videoReplaceTitle,toolbar:"replace-video",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"video",id:"add-video-source",title:g.videoAddSourceTitle,toolbar:"add-video-source",media:this.media,menu:!1}),new e.controller.MediaLibrary({type:"image",id:"select-poster-image",title:g.videoSelectPosterImageTitle,toolbar:"select-poster-image",media:this.media,menu:"video-details"}),new e.controller.MediaLibrary({type:"text",id:"add-track",title:g.videoAddTrackTitle,toolbar:"add-track",media:this.media,menu:"video-details"})])},renderSelectPosterImageToolbar:function(){this.setPrimaryButton(g.videoSelectPosterImageTitle,function(a,b){var c=b.get("selection").single();a.media.set("poster",c.get("url")),b.trigger("set-poster-image",a.media.toJSON())})},renderAddTrackToolbar:function(){this.setPrimaryButton(g.videoAddTrackTitle,function(a,b){var c=b.get("selection").single(),d=a.media.get("content");-1===d.indexOf(c.get("url"))&&(d+=[''].join(""),a.media.set("content",d)),b.trigger("add-track",a.media.toJSON())})}}),e.view.MediaDetails=e.view.Settings.AttachmentDisplay.extend({initialize:function(){b.bindAll(this,"success"),this.listenTo(this.controller,"close",e.mixin.unsetPlayer),this.on("ready",this.setPlayer),this.on("media:setting:remove",e.mixin.unsetPlayer,this),this.on("media:setting:remove",this.render),this.on("media:setting:remove",this.setPlayer),this.events=b.extend(this.events,{"click .remove-setting":"removeSetting","change .content-track":"setTracks","click .remove-track":"setTracks"}),e.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments)},prepare:function(){return b.defaults({model:this.model.toJSON()},this.options)},removeSetting:function(b){var c,d=a(b.currentTarget).parent();c=d.find("input").data("setting"),c&&(this.model.unset(c),this.trigger("media:setting:remove",this)),d.remove()},setTracks:function(){var c="";b.each(this.$(".content-track"),function(b){c+=a(b).val()}),this.model.set("content",c),this.trigger("media:setting:remove",this)},setPlayer:function(){!this.player&&this.media&&(this.player=new MediaElementPlayer(this.media,this.settings))},setMedia:function(){return this},success:function(a){var b=a.attributes.autoplay&&"false"!==a.attributes.autoplay;"flash"===a.pluginType&&b&&a.addEventListener("canplay",function(){a.play()},!1),this.mejs=a},render:function(){var a=this;return e.view.Settings.AttachmentDisplay.prototype.render.apply(this,arguments),setTimeout(function(){a.resetFocus()},10),this.settings=b.defaults({success:this.success},f),this.setMedia()},resetFocus:function(){this.$(".embed-media-settings").scrollTop(0)}},{instances:0,prepareSrc:function(c){var d=e.view.MediaDetails.instances++;return b.each(a(c).find("source"),function(a){a.src=[a.src,a.src.indexOf("?")>-1?"&":"?","_=",d].join("")}),c}}),e.view.AudioDetails=e.view.MediaDetails.extend({className:"audio-details",template:e.template("audio-details"),setMedia:function(){var a=this.$(".wp-audio-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),e.view.VideoDetails=e.view.MediaDetails.extend({className:"video-details",template:e.template("video-details"),setMedia:function(){var a=this.$(".wp-video-shortcode");return a.find("source").length?(a.is(":hidden")&&a.show(),this.media=a.hasClass("youtube-video")?a.get(0):e.view.MediaDetails.prepareSrc(a.get(0))):(a.hide(),this.media=!1),this}}),a(d)}(jQuery,_,Backbone); \ 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 812341cf6b..f357fffc80 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js @@ -80,11 +80,12 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { 'contenteditable': 'true' }, getViewText( viewNode ) ); - viewNode.appendChild( clipboard ); + // Prepend inside the wrapper + viewNode.insertBefore( clipboard, viewNode.firstChild ); // Both of the following are necessary to prevent manipulating the selection/focus - editor.dom.bind( clipboard, 'beforedeactivate focusin focusout', _stop ); - editor.dom.bind( selected, 'beforedeactivate focusin focusout', _stop ); + dom.bind( clipboard, 'beforedeactivate focusin focusout', _stop ); + dom.bind( selected, 'beforedeactivate focusin focusout', _stop ); // Make sure that the editor is focused. // It is possible that the editor is not focused when the mouse event fires @@ -140,8 +141,14 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { return; } + // Remove the content of view wrappers from HTML string + function emptyViews( content ) { + return content.replace(/(]+wpview-wrap[^>]+>)[\s\S]+?data-wpview-end[^>]*><\/ins><\/div>/g, '$1' ); + } + + // Prevent adding undo levels on changes inside a view wrapper editor.on( 'BeforeAddUndo', function( event ) { - if ( selected && ! toRemove ) { + if ( event.lastLevel && emptyViews( event.level.content ) === emptyViews( event.lastLevel.content ) ) { event.preventDefault(); } }); @@ -149,12 +156,16 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { // When the editor's content changes, scan the new content for // matching view patterns, and transform the matches into // view wrappers. - editor.on( 'BeforeSetContent', function( e ) { - if ( ! e.content ) { + editor.on( 'BeforeSetContent', function( event ) { + if ( ! event.content ) { return; } - e.content = wp.mce.views.toViews( e.content ); + if ( ! event.initial ) { + wp.mce.views.unbind( editor ); + } + + event.content = wp.mce.views.toViews( event.content ); }); // When the editor's content has been updated and the DOM has been @@ -162,11 +173,7 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { editor.on( 'SetContent', function( event ) { var body, padNode; - // don't (re-)render views if the format of the content is raw - // to avoid adding additional undo levels on undo/redo - if ( event.format !== 'raw' ) { - wp.mce.views.render(); - } + wp.mce.views.render(); // Add padding

if the noneditable node is last if ( event.load || ! event.set ) { @@ -175,7 +182,10 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { if ( isView( body.lastChild ) ) { padNode = createPadNode(); body.appendChild( padNode ); - editor.selection.setCursorLocation( padNode, 0 ); + + if ( ! event.initial ) { + editor.selection.setCursorLocation( padNode, 0 ); + } } } }); diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js index 839528311f..2376f4e018 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){for(;a&&"BODY"!==a.nodeName;){if(c(a))return a;a=a.parentNode}}function c(a){return a&&/\bwpview-wrap\b/.test(a.className)}function d(){return a.dom.create("p",{"data-wpview-pad":1},tinymce.Env.ie&&tinymce.Env.ie<11?"":'
')}function e(c){return c=b("string"==typeof c?a.dom.get(c):c),c?window.decodeURIComponent(a.dom.getAttrib(c,"data-wpview-text")||""):""}function f(c,d){return c=b("string"==typeof c?a.dom.get(c):c),c?(a.dom.setAttrib(c,"data-wpview-text",window.encodeURIComponent(d||"")),!0):!1}function g(a){a.stopPropagation()}function h(b){var c,d=a.dom;b!==k&&(i(),k=b,d.addClass(b,"selected"),c=d.create("div",{"class":"wpview-clipboard",contenteditable:"true"},e(b)),b.appendChild(c),a.dom.bind(c,"beforedeactivate focusin focusout",g),a.dom.bind(k,"beforedeactivate focusin focusout",g),a.getBody().focus(),a.selection.select(c,!0))}function i(){var b,c=a.dom;k&&(b=a.dom.select(".wpview-clipboard",k)[0],c.unbind(b),c.remove(b),c.unbind(k,"beforedeactivate focusin focusout click mouseup",g),c.removeClass(k,"selected")),k=null}function j(b,d){for(var e=a.getBody(),f="previous"===d?"previousSibling":"nextSibling";b&&b.parentNode!==e;){if(b[f])return!1;b=b.parentNode}return c(b[f])?(h(b[f]),!0):!1}var k,l=tinymce.util.VK,m=tinymce.dom.TreeWalker,n=!1;if("undefined"!=typeof wp&&wp.mce)return a.on("BeforeAddUndo",function(a){k&&!n&&a.preventDefault()}),a.on("BeforeSetContent",function(a){a.content&&(a.content=wp.mce.views.toViews(a.content))}),a.on("SetContent",function(b){var e,f;"raw"!==b.format&&wp.mce.views.render(),(b.load||!b.set)&&(e=a.getBody(),c(e.lastChild)&&(f=d(),e.appendChild(f),a.selection.setCursorLocation(f,0)))}),a.on("click",function(b){var e,f,g,h,j,k=a.getBody(),l=a.getDoc(),m=l.documentElement.scrollTop||k.scrollTop||0;"HTML"!==b.target.nodeName||b.metaKey||b.ctrlKey||(g=k.firstChild,h=k.lastChild,e=b.clientX,f=b.clientY,c(g)&&(eh.offsetLeft+h.offsetWidth||m+f-(h.offsetTop+h.offsetHeight)>0)&&(j=d(),k.appendChild(j)),j&&(i(),a.getBody().focus(),a.selection.setCursorLocation(j,0)))}),a.on("init",function(){var d=a.selection;a.on("BeforeSetContent",function(){var e,f,g=b(d.getNode());g&&(!g.nextSibling||c(g.nextSibling)?(f=a.getDoc().createTextNode(""),a.dom.insertAfter(f,g)):(e=new m(g.nextSibling,g.nextSibling),f=e.next()),d.select(f),d.collapse(!0))}),a.on("SetContent",function(a){if(a.context){var b=d.getNode();b.innerHTML&&(b.innerHTML=wp.mce.views.toViews(b.innerHTML))}}),a.dom.bind(a.getBody(),"mousedown mouseup click",function(c){var d,e=b(c.target);return e?(c.stopPropagation(),tinymce.Env.ie<=10&&i(),h(e),"click"!==c.type||c.metaKey||c.ctrlKey||(a.dom.hasClass(c.target,"edit")?wp.mce.views.edit(e):a.dom.hasClass(c.target,"remove")&&a.dom.remove(e)),!1):(d=tinymce.Env.ie&&tinymce.Env.ie<=8?"mouseup":"mousedown",void(c.type===d&&i()))})}),a.on("PreProcess",function(b){var c=a.dom;tinymce.each(c.select("p[data-wpview-pad]",b.node),function(a){c.isEmpty(a)?c.remove(a):c.setAttrib(a,"data-wpview-pad",null)}),tinymce.each(c.select("div[data-wpview-text]",b.node),function(a){"textContent"in a?a.textContent="":a.innerText="",c.replace(c.create("p",null,window.decodeURIComponent(c.getAttrib(a,"data-wpview-text"))),a)})}),a.on("keydown",function(e){var f,g,j=e.keyCode,m=a.getBody();if(k){if(e.metaKey||e.ctrlKey||j>=112&&123>=j)return void((e.metaKey||e.ctrlKey)&&88===j&&(n=k));if(f=b(a.selection.getNode()),f!==k)return void i();j===l.LEFT||j===l.UP?(i(),c(f.previousSibling)?h(f.previousSibling):f.previousSibling?(a.selection.select(f.previousSibling,!0),a.selection.collapse()):(g=d(),m.insertBefore(g,m.firstChild),a.selection.setCursorLocation(m.firstChild,0))):j===l.RIGHT||j===l.DOWN?(i(),c(f.nextSibling)?h(f.nextSibling):f.nextSibling?a.selection.setCursorLocation(f.nextSibling,0):(g=d(),m.appendChild(g),a.selection.setCursorLocation(m.lastChild,0))):(j===l.DELETE||j===l.BACKSPACE)&&a.dom.remove(k),e.preventDefault()}}),a.on("keydown",function(b){var c,d,e=b.keyCode,f=a.dom,g=a.selection.getRng(),h=g.startContainer,i=a.getBody();if(h&&h!==i&&!b.metaKey&&!b.ctrlKey)if(e===l.UP||e===l.LEFT){if(e===l.LEFT&&(!g.collapsed||0!==g.startOffset))return;if(!(c=f.getParent(h,f.isBlock)))return;j(c,"previous")&&b.preventDefault()}else if(e===l.DOWN||e===l.RIGHT){if(!(c=f.getParent(h,f.isBlock)))return;if(e===l.RIGHT){if(d=g.endContainer,!g.collapsed||0===g.startOffset&&d.length||d.nextSibling||3===d.nodeType&&g.startOffset!==d.length)return;for(;d&&d!==c&&d!==i;){if(d.nextSibling)return;d=d.parentNode}}j(c,"next")&&b.preventDefault()}}),a.on("keyup",function(b){var e,f,g=b.keyCode,h=a.getBody();n&&(a.dom.remove(n),n=!1),(g===l.DELETE||g===l.BACKSPACE)&&(c(h.lastChild)&&(e=d(),h.appendChild(e),2===h.childNodes.length&&a.selection.setCursorLocation(e,0)),f=a.selection.getRng(),h.firstChild===f.startContainer&&f.collapsed===!0&&c(f.startContainer.nextSibling)&&0===f.startOffset&&a.dom.remove(f.startContainer))}),{getViewText:e,setViewText:f}}); \ No newline at end of file +tinymce.PluginManager.add("wpview",function(a){function b(a){for(;a&&"BODY"!==a.nodeName;){if(c(a))return a;a=a.parentNode}}function c(a){return a&&/\bwpview-wrap\b/.test(a.className)}function d(){return a.dom.create("p",{"data-wpview-pad":1},tinymce.Env.ie&&tinymce.Env.ie<11?"":'
')}function e(c){return c=b("string"==typeof c?a.dom.get(c):c),c?window.decodeURIComponent(a.dom.getAttrib(c,"data-wpview-text")||""):""}function f(c,d){return c=b("string"==typeof c?a.dom.get(c):c),c?(a.dom.setAttrib(c,"data-wpview-text",window.encodeURIComponent(d||"")),!0):!1}function g(a){a.stopPropagation()}function h(b){var c,d=a.dom;b!==l&&(i(),l=b,d.addClass(b,"selected"),c=d.create("div",{"class":"wpview-clipboard",contenteditable:"true"},e(b)),b.insertBefore(c,b.firstChild),d.bind(c,"beforedeactivate focusin focusout",g),d.bind(l,"beforedeactivate focusin focusout",g),a.getBody().focus(),a.selection.select(c,!0))}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",g),c.removeClass(l,"selected")),l=null}function j(b,d){for(var e=a.getBody(),f="previous"===d?"previousSibling":"nextSibling";b&&b.parentNode!==e;){if(b[f])return!1;b=b.parentNode}return c(b[f])?(h(b[f]),!0):!1}function k(a){return a.replace(/(]+wpview-wrap[^>]+>)[\s\S]+?data-wpview-end[^>]*><\/ins><\/div>/g,"$1")}var l,m=tinymce.util.VK,n=tinymce.dom.TreeWalker,o=!1;if("undefined"!=typeof wp&&wp.mce)return a.on("BeforeAddUndo",function(a){a.lastLevel&&k(a.level.content)===k(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){b.content&&(b.initial||wp.mce.views.unbind(a),b.content=wp.mce.views.toViews(b.content))}),a.on("SetContent",function(b){var e,f;wp.mce.views.render(),(b.load||!b.set)&&(e=a.getBody(),c(e.lastChild)&&(f=d(),e.appendChild(f),b.initial||a.selection.setCursorLocation(f,0)))}),a.on("click",function(b){var e,f,g,h,j,k=a.getBody(),l=a.getDoc(),m=l.documentElement.scrollTop||k.scrollTop||0;"HTML"!==b.target.nodeName||b.metaKey||b.ctrlKey||(g=k.firstChild,h=k.lastChild,e=b.clientX,f=b.clientY,c(g)&&(eh.offsetLeft+h.offsetWidth||m+f-(h.offsetTop+h.offsetHeight)>0)&&(j=d(),k.appendChild(j)),j&&(i(),a.getBody().focus(),a.selection.setCursorLocation(j,0)))}),a.on("init",function(){var d=a.selection;a.on("BeforeSetContent",function(){var e,f,g=b(d.getNode());g&&(!g.nextSibling||c(g.nextSibling)?(f=a.getDoc().createTextNode(""),a.dom.insertAfter(f,g)):(e=new n(g.nextSibling,g.nextSibling),f=e.next()),d.select(f),d.collapse(!0))}),a.on("SetContent",function(a){if(a.context){var b=d.getNode();b.innerHTML&&(b.innerHTML=wp.mce.views.toViews(b.innerHTML))}}),a.dom.bind(a.getBody(),"mousedown mouseup click",function(c){var d,e=b(c.target);return e?(c.stopPropagation(),tinymce.Env.ie<=10&&i(),h(e),"click"!==c.type||c.metaKey||c.ctrlKey||(a.dom.hasClass(c.target,"edit")?wp.mce.views.edit(e):a.dom.hasClass(c.target,"remove")&&a.dom.remove(e)),!1):(d=tinymce.Env.ie&&tinymce.Env.ie<=8?"mouseup":"mousedown",void(c.type===d&&i()))})}),a.on("PreProcess",function(b){var c=a.dom;tinymce.each(c.select("p[data-wpview-pad]",b.node),function(a){c.isEmpty(a)?c.remove(a):c.setAttrib(a,"data-wpview-pad",null)}),tinymce.each(c.select("div[data-wpview-text]",b.node),function(a){"textContent"in a?a.textContent="":a.innerText="",c.replace(c.create("p",null,window.decodeURIComponent(c.getAttrib(a,"data-wpview-text"))),a)})}),a.on("keydown",function(e){var f,g,j=e.keyCode,k=a.getBody();if(l){if(e.metaKey||e.ctrlKey||j>=112&&123>=j)return void((e.metaKey||e.ctrlKey)&&88===j&&(o=l));if(f=b(a.selection.getNode()),f!==l)return void i();j===m.LEFT||j===m.UP?(i(),c(f.previousSibling)?h(f.previousSibling):f.previousSibling?(a.selection.select(f.previousSibling,!0),a.selection.collapse()):(g=d(),k.insertBefore(g,k.firstChild),a.selection.setCursorLocation(k.firstChild,0))):j===m.RIGHT||j===m.DOWN?(i(),c(f.nextSibling)?h(f.nextSibling):f.nextSibling?a.selection.setCursorLocation(f.nextSibling,0):(g=d(),k.appendChild(g),a.selection.setCursorLocation(k.lastChild,0))):(j===m.DELETE||j===m.BACKSPACE)&&a.dom.remove(l),e.preventDefault()}}),a.on("keydown",function(b){var c,d,e=b.keyCode,f=a.dom,g=a.selection.getRng(),h=g.startContainer,i=a.getBody();if(h&&h!==i&&!b.metaKey&&!b.ctrlKey)if(e===m.UP||e===m.LEFT){if(e===m.LEFT&&(!g.collapsed||0!==g.startOffset))return;if(!(c=f.getParent(h,f.isBlock)))return;j(c,"previous")&&b.preventDefault()}else if(e===m.DOWN||e===m.RIGHT){if(!(c=f.getParent(h,f.isBlock)))return;if(e===m.RIGHT){if(d=g.endContainer,!g.collapsed||0===g.startOffset&&d.length||d.nextSibling||3===d.nodeType&&g.startOffset!==d.length)return;for(;d&&d!==c&&d!==i;){if(d.nextSibling)return;d=d.parentNode}}j(c,"next")&&b.preventDefault()}}),a.on("keyup",function(b){var e,f,g=b.keyCode,h=a.getBody();o&&(a.dom.remove(o),o=!1),(g===m.DELETE||g===m.BACKSPACE)&&(c(h.lastChild)&&(e=d(),h.appendChild(e),2===h.childNodes.length&&a.selection.setCursorLocation(e,0)),f=a.selection.getRng(),h.firstChild===f.startContainer&&f.collapsed===!0&&c(f.startContainer.nextSibling)&&0===f.startOffset&&a.dom.remove(f.startContainer))}),{getViewText:e,setViewText:f}}); \ 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 379cd8e437939f339a36ff2b6c7241823bb1f4c2..1cdb780cea534ddc7ba44ca28de20bc5ede6747e 100644 GIT binary patch delta 17343 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 delta 17279 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 e78iXU6^|A7Vum&up8p36h&AnbnFRpuYw&IW