diff -r 346c88efed21 -r 5e2f62d02dcd wp/wp-includes/js/media-audiovideo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/wp/wp-includes/js/media-audiovideo.js Tue Jun 09 03:35:32 2015 +0200 @@ -0,0 +1,934 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o' + ].join(''); + + controller.media.set( 'content', content ); + } + state.trigger( 'add-track', controller.media.toJSON() ); + } ); + } +}); + +module.exports = VideoDetails; + +},{}],9:[function(require,module,exports){ +/*global wp, jQuery, _, MediaElementPlayer */ + +/** + * wp.media.view.MediaDetails + * + * @class + * @augments wp.media.view.Settings.AttachmentDisplay + * @augments wp.media.view.Settings + * @augments wp.media.View + * @augments wp.Backbone.View + * @augments Backbone.View + */ +var AttachmentDisplay = wp.media.view.Settings.AttachmentDisplay, + $ = jQuery, + MediaDetails; + +MediaDetails = AttachmentDisplay.extend({ + initialize: function() { + _.bindAll(this, 'success'); + this.players = []; + this.listenTo( this.controller, 'close', wp.media.mixin.unsetPlayers ); + this.on( 'ready', this.setPlayer ); + this.on( 'media:setting:remove', wp.media.mixin.unsetPlayers, this ); + this.on( 'media:setting:remove', this.render ); + this.on( 'media:setting:remove', this.setPlayer ); + this.events = _.extend( this.events, { + 'click .remove-setting' : 'removeSetting', + 'change .content-track' : 'setTracks', + 'click .remove-track' : 'setTracks', + 'click .add-media-source' : 'addSource' + } ); + + AttachmentDisplay.prototype.initialize.apply( this, arguments ); + }, + + prepare: function() { + return _.defaults({ + model: this.model.toJSON() + }, this.options ); + }, + + /** + * Remove a setting's UI when the model unsets it + * + * @fires wp.media.view.MediaDetails#media:setting:remove + * + * @param {Event} e + */ + removeSetting : function(e) { + var wrap = $( e.currentTarget ).parent(), setting; + setting = wrap.find( 'input' ).data( 'setting' ); + + if ( setting ) { + this.model.unset( setting ); + this.trigger( 'media:setting:remove', this ); + } + + wrap.remove(); + }, + + /** + * + * @fires wp.media.view.MediaDetails#media:setting:remove + */ + setTracks : function() { + var tracks = ''; + + _.each( this.$('.content-track'), function(track) { + tracks += $( track ).val(); + } ); + + this.model.set( 'content', tracks ); + this.trigger( 'media:setting:remove', this ); + }, + + addSource : function( e ) { + this.controller.lastMime = $( e.currentTarget ).data( 'mime' ); + this.controller.setState( 'add-' + this.controller.defaults.id + '-source' ); + }, + + loadPlayer: function () { + this.players.push( new MediaElementPlayer( this.media, this.settings ) ); + this.scriptXhr = false; + }, + + /** + * @global MediaElementPlayer + */ + setPlayer : function() { + var baseSettings; + + if ( this.players.length || ! this.media || this.scriptXhr ) { + return; + } + + if ( this.model.get( 'src' ).indexOf( 'vimeo' ) > -1 && ! ( 'Froogaloop' in window ) ) { + baseSettings = wp.media.mixin.mejsSettings; + this.scriptXhr = $.getScript( baseSettings.pluginPath + 'froogaloop.min.js', _.bind( this.loadPlayer, this ) ); + } else { + this.loadPlayer(); + } + }, + + /** + * @abstract + */ + setMedia : function() { + return this; + }, + + success : function(mejs) { + var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay; + + if ( 'flash' === mejs.pluginType && autoplay ) { + mejs.addEventListener( 'canplay', function() { + mejs.play(); + }, false ); + } + + this.mejs = mejs; + }, + + /** + * @returns {media.view.MediaDetails} Returns itself to allow chaining + */ + render: function() { + AttachmentDisplay.prototype.render.apply( this, arguments ); + + setTimeout( _.bind( function() { + this.resetFocus(); + }, this ), 10 ); + + this.settings = _.defaults( { + success : this.success + }, wp.media.mixin.mejsSettings ); + + return this.setMedia(); + }, + + resetFocus: function() { + this.$( '.embed-media-settings' ).scrollTop( 0 ); + } +}, { + instances : 0, + /** + * When multiple players in the DOM contain the same src, things get weird. + * + * @param {HTMLElement} elem + * @returns {HTMLElement} + */ + prepareSrc : function( elem ) { + var i = MediaDetails.instances++; + _.each( $( elem ).find( 'source' ), function( source ) { + source.src = [ + source.src, + source.src.indexOf('?') > -1 ? '&' : '?', + '_=', + i + ].join(''); + } ); + + return elem; + } +}); + +module.exports = MediaDetails; + +},{}],10:[function(require,module,exports){ +/*globals wp */ + +/** + * wp.media.view.VideoDetails + * + * @class + * @augments wp.media.view.MediaDetails + * @augments wp.media.view.Settings.AttachmentDisplay + * @augments wp.media.view.Settings + * @augments wp.media.View + * @augments wp.Backbone.View + * @augments Backbone.View + */ +var MediaDetails = wp.media.view.MediaDetails, + VideoDetails; + +VideoDetails = MediaDetails.extend({ + className: 'video-details', + template: wp.template('video-details'), + + setMedia: function() { + var video = this.$('.wp-video-shortcode'); + + if ( video.find( 'source' ).length ) { + if ( video.is(':hidden') ) { + video.show(); + } + + if ( ! video.hasClass( 'youtube-video' ) && ! video.hasClass( 'vimeo-video' ) ) { + this.media = MediaDetails.prepareSrc( video.get(0) ); + } else { + this.media = video.get(0); + } + } else { + video.hide(); + this.media = false; + } + + return this; + } +}); + +module.exports = VideoDetails; + +},{}]},{},[1]);