From f22beb987c6ee0c57ccabc02b127b7e721277da0 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Sat, 10 May 2014 23:36:18 +0000 Subject: [PATCH] First pass at `wpview` logic for the `[embed]` shortcode. URLs on a their own line are parsed as well. The toolbar will appear with the "remove" button when the view is clicked. Edit has not been implemented yet. Props avryl, wonderboymusic. See #28195. Built from https://develop.svn.wordpress.org/trunk@28358 git-svn-id: http://core.svn.wordpress.org/trunk@28186 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/admin-ajax.php | 2 +- wp-admin/includes/ajax-actions.php | 21 ++++ wp-includes/js/mce-view.js | 97 ++++++++++++++---- wp-includes/js/mce-view.min.js | 2 +- wp-includes/js/media-audiovideo.js | 4 + wp-includes/js/media-audiovideo.min.js | 2 +- .../js/tinymce/plugins/wpview/plugin.js | 6 ++ .../js/tinymce/plugins/wpview/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 122989 -> 123036 bytes wp-includes/media-template.php | 8 ++ 10 files changed, 119 insertions(+), 25 deletions(-) diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index f7aae0ff52..94e0e6ace8 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -58,7 +58,7 @@ $core_actions_post = array( 'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment', 'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor', 'send-attachment-to-editor', 'save-attachment-order', 'heartbeat', 'get-revision-diffs', - 'save-user-color-scheme', 'update-widget', 'query-themes', + 'save-user-color-scheme', 'update-widget', 'query-themes', 'filter-content' ); // Register core Ajax calls. diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php index 334056af56..15654fbb5b 100644 --- a/wp-admin/includes/ajax-actions.php +++ b/wp-admin/includes/ajax-actions.php @@ -2506,3 +2506,24 @@ function wp_ajax_query_themes() { wp_send_json_success( $api ); } + +/** + * Apply `the_content` filters to a string based on the post ID. + * + * @since 4.0.0 + */ +function wp_ajax_filter_content() { + global $post; + + if ( ! $post = get_post( (int) $_REQUEST['post_ID'] ) ) { + wp_send_json_error(); + } + + if ( ! current_user_can( 'read_post', $post->ID ) ) { + wp_send_json_error(); + } + + setup_postdata( $post ); + + wp_send_json_success( apply_filters( 'the_content', wp_unslash( $_POST['content'] ) ) ); +} diff --git a/wp-includes/js/mce-view.js b/wp-includes/js/mce-view.js index ec167ca47c..d619e732c4 100644 --- a/wp-includes/js/mce-view.js +++ b/wp-includes/js/mce-view.js @@ -354,27 +354,7 @@ window.wp = window.wp || {}; */ wp.mce.media = { loaded: false, - /** - * @global wp.shortcode - * - * @param {string} content - * @returns {Object} - */ - toView: function( content ) { - var match = wp.shortcode.next( this.shortcode, content ); - - if ( ! match ) { - return; - } - - return { - index: match.index, - content: match.content, - options: { - shortcode: match.shortcode - } - }; - }, + toView: wp.mce.gallery.toView, /** * Called when a TinyMCE view is clicked for editing. @@ -690,4 +670,79 @@ window.wp = window.wp || {}; View: wp.mce.media.PlaylistView } ); wp.mce.views.register( 'playlist', wp.mce.playlist ); + + wp.mce.embed = { + shortcode: 'embed', + toView: wp.mce.gallery.toView, + View: wp.mce.View.extend( { + className: 'editor-embed', + template: media.template( 'editor-embed' ), + initialize: function( options ) { + this.players = []; + this.content = options.content; + this.parsed = false; + this.shortcode = options.shortcode; + _.bindAll( this, 'setHtml', 'setNode', 'fetch' ); + $( this ).on( 'ready', this.setNode ); + }, + unbind: function() { + var self = this; + this.pauseAllPlayers(); + _.each( this.players, function ( player ) { + self.removePlayer( player ); + } ); + this.players = []; + }, + setNode: function ( e, node ) { + this.node = node; + if ( this.parsed ) { + this.parseMediaShortcodes(); + } else { + this.fetch(); + } + }, + fetch: function () { + wp.ajax.send( 'filter-content', { + data: { + post_ID: $( '#post_ID' ).val(), + content: this.shortcode.string() + } + } ).done( this.setHtml ); + }, + setHtml: function ( content ) { + var scripts = $( content ).find( 'script' ); + + this.parsed = content; + + $( this.node ).html( this.getHtml() ); + if ( scripts ) { + _.each( scripts, function (script) { + var element = document.createElement( 'script' ); + element.type = 'text/javascript'; + element.src = script.src; + tinymce.activeEditor.contentDocument.getElementsByTagName( 'head' )[0].appendChild( element ); + } ); + } + this.parseMediaShortcodes(); + }, + parseMediaShortcodes: function () { + var self = this; + $( '.wp-audio-shortcode, .wp-video-shortcode', this.node ).each( function ( i, element ) { + self.players.push( new MediaElementPlayer( element, self.mejsSettings ) ); + } ); + }, + getHtml: function() { + if ( ! this.parsed ) { + return ''; + } + return this.template({ content: this.parsed }); + } + } ), + edit: function() {} + }; + + _.extend( wp.mce.embed.View.prototype, wp.media.mixin ); + + wp.mce.views.register( 'embed', wp.mce.embed ); + }(jQuery)); diff --git a/wp-includes/js/mce-view.min.js b/wp-includes/js/mce-view.min.js index 147f2a3d0d..11cdf599ed 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).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(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=this.shortcode.attrs.named;return a.content=this.shortcode.content,this.template({model:_.defaults(a,wp.media[this.shortcode.tag].defaults)})},unbind:function(){this.unsetPlayers()}}),_.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(a){this.players=[],this.data={},this.attachments=[],this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.playlist.attachments(this.shortcode),this.dfd=this.attachments.more().done(_.bind(this.render,this))},render:function(){var b=this.getHtml(),c=this;_.each(tinymce.editors,function(d){var e;d.plugins.wpview&&(e=d.getDoc(),a(e).find('[data-wpview-text="'+this.encodedText+'"]').each(function(d,e){var f=a(e);f.html(b).append(''),c.data.tracks&&c.players.push(new WPPlaylistView({el:a(e).find(".wp-playlist").get(0),metadata:c.data}).player)}))},this)},getHtml:function(){var a,b,c=this.shortcode.attrs.named,e=wp.media.playlist,f=[];if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return _.each(e.defaults,function(a,b){c[b]=e.coerce(c,b)}),a={type:c.type,style:c.style,tracklist:c.tracklist,tracknumbers:c.tracknumbers,images:c.images,artists:c.artists},this.attachments.length?(b=this.attachments.toJSON(),_.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)):this.template(a)},unbind:function(){this.unsetPlayers()}}),_.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:wp.mce.gallery.toView,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(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=this.shortcode.attrs.named;return a.content=this.shortcode.content,this.template({model:_.defaults(a,wp.media[this.shortcode.tag].defaults)})},unbind:function(){this.unsetPlayers()}}),_.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(a){this.players=[],this.data={},this.attachments=[],this.shortcode=a.shortcode,this.fetch()},fetch:function(){this.attachments=wp.media.playlist.attachments(this.shortcode),this.dfd=this.attachments.more().done(_.bind(this.render,this))},render:function(){var b=this.getHtml(),c=this;_.each(tinymce.editors,function(d){var e;d.plugins.wpview&&(e=d.getDoc(),a(e).find('[data-wpview-text="'+this.encodedText+'"]').each(function(d,e){var f=a(e);f.html(b).append(''),c.data.tracks&&c.players.push(new WPPlaylistView({el:a(e).find(".wp-playlist").get(0),metadata:c.data}).player)}))},this)},getHtml:function(){var a,b,c=this.shortcode.attrs.named,e=wp.media.playlist,f=[];if(!this.dfd||"pending"!==this.dfd.state()||this.attachments.length)return _.each(e.defaults,function(a,b){c[b]=e.coerce(c,b)}),a={type:c.type,style:c.style,tracklist:c.tracklist,tracknumbers:c.tracknumbers,images:c.images,artists:c.artists},this.attachments.length?(b=this.attachments.toJSON(),_.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)):this.template(a)},unbind:function(){this.unsetPlayers()}}),_.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),wp.mce.embed={shortcode:"embed",toView:wp.mce.gallery.toView,View:wp.mce.View.extend({className:"editor-embed",template:d.template("editor-embed"),initialize:function(b){this.players=[],this.content=b.content,this.parsed=!1,this.shortcode=b.shortcode,_.bindAll(this,"setHtml","setNode","fetch"),a(this).on("ready",this.setNode)},unbind:function(){var a=this;this.pauseAllPlayers(),_.each(this.players,function(b){a.removePlayer(b)}),this.players=[]},setNode:function(a,b){this.node=b,this.parsed?this.parseMediaShortcodes():this.fetch()},fetch:function(){wp.ajax.send("filter-content",{data:{post_ID:a("#post_ID").val(),content:this.shortcode.string()}}).done(this.setHtml)},setHtml:function(b){var c=a(b).find("script");this.parsed=b,a(this.node).html(this.getHtml()),c&&_.each(c,function(a){var b=document.createElement("script");b.type="text/javascript",b.src=a.src,tinymce.activeEditor.contentDocument.getElementsByTagName("head")[0].appendChild(b)}),this.parseMediaShortcodes()},parseMediaShortcodes:function(){var b=this;a(".wp-audio-shortcode, .wp-video-shortcode",this.node).each(function(a,c){b.players.push(new MediaElementPlayer(c,b.mejsSettings))})},getHtml:function(){return this.parsed?this.template({content:this.parsed}):""}}),edit:function(){}},_.extend(wp.mce.embed.View.prototype,wp.media.mixin),wp.mce.views.register("embed",wp.mce.embed)}(jQuery); \ No newline at end of file diff --git a/wp-includes/js/media-audiovideo.js b/wp-includes/js/media-audiovideo.js index 47f6d36813..c5b580c513 100644 --- a/wp-includes/js/media-audiovideo.js +++ b/wp-includes/js/media-audiovideo.js @@ -131,6 +131,10 @@ removePlayer: function(t) { var featureIndex, feature; + if ( ! t.options ) { + return; + } + // invoke features cleanup for ( featureIndex in t.options.features ) { feature = t.options.features[featureIndex]; diff --git a/wp-includes/js/media-audiovideo.min.js b/wp-includes/js/media-audiovideo.min.js index 09930fdb9a..564850a1cf 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(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},unsetPlayers:function(){this.players&&this.players.length&&(wp.media.mixin.pauseAllPlayers(),b.each(this.players,function(a){wp.media.mixin.removePlayer(a)}),this.players=[])}},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.players=[],this.listenTo(this.controller,"close",e.mixin.unsetPlayers),this.on("ready",this.setPlayer),this.on("media:setting:remove",e.mixin.unsetPlayers,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.players.length&&this.media&&this.players.push(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;if(a.options){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}},unsetPlayers:function(){this.players&&this.players.length&&(wp.media.mixin.pauseAllPlayers(),b.each(this.players,function(a){wp.media.mixin.removePlayer(a)}),this.players=[])}},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.players=[],this.listenTo(this.controller,"close",e.mixin.unsetPlayers),this.on("ready",this.setPlayer),this.on("media:setting:remove",e.mixin.unsetPlayers,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.players.length&&this.media&&this.players.push(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 4e224b0683..4eede11e1f 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js @@ -168,6 +168,12 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { event.content = wp.mce.views.toViews( event.content ); }); + editor.on( 'PastePreProcess', function( event ) { + if ( event.content.match( /^\s*(https?:\/\/[^\s"]+)\s*$/im ) ) { + event.content = '[embed]' + event.content + '[/embed]'; + } + } ); + // When the editor's content has been updated and the DOM has been // processed, render the views in the document. editor.on( 'SetContent', function( event ) { diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js index f11bf25fd3..06b988554b 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!==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=" "})}),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(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 +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("PastePreProcess",function(a){a.content.match(/^\s*(https?:\/\/[^\s"]+)\s*$/im)&&(a.content="[embed]"+a.content+"[/embed]")}),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=" "})}),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(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 ce1cde491d9cea83dadea724d95d67b090944141..32f3239c988940f6d1858d5096fa76d57df3b3c6 100644 GIT binary patch delta 17566 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 M0BVQ$fl!|X0NF^5ZvX%Q diff --git a/wp-includes/media-template.php b/wp-includes/media-template.php index a63d68bb3e..f89e32d81c 100644 --- a/wp-includes/media-template.php +++ b/wp-includes/media-template.php @@ -1045,6 +1045,14 @@ function wp_print_media_templates() {
+ +