Make WordPress Core

Ticket #25077: 25077.diff

File 25077.diff, 6.4 KB (added by wonderboymusic, 11 years ago)
  • src/wp-includes/js/media-views.js

     
    63706370        });
    63716371
    63726372        /**
    6373          * wp.media.view.AudioDetails
     6373         * wp.media.view.MediaDetails
    63746374         *
    63756375         * @contructor
    63766376         * @augments wp.media.view.Settings.AttachmentDisplay
     
    63796379         * @augments wp.Backbone.View
    63806380         * @augments Backbone.View
    63816381         */
    6382         media.view.AudioDetails = media.view.Settings.AttachmentDisplay.extend({
    6383                 className: 'audio-details',
    6384                 template:  media.template('audio-details'),
    6385 
     6382        media.view.MediaDetails = media.view.Settings.AttachmentDisplay.extend({
    63866383                initialize: function() {
    6387                         _.bindAll(this, 'player', 'close');
     6384                        _.bindAll(this, 'success', 'close');
    63886385
    63896386                        this.listenTo( this.controller, 'close', this.close );
    63906387
     
    64036400                        }, this.options );
    64046401                },
    64056402
     6403                prepareSrc : function (media) {
     6404                        media.src = [
     6405                                media.src,
     6406                                media.src.indexOf('?') > -1 ? '&' : '?',
     6407                                (new Date()).getTime()
     6408                        ].join('');
     6409
     6410                        return media;
     6411                },
     6412
     6413                setPlayer : function () {
     6414                        this.player = false;
     6415                },
     6416
     6417                /**
     6418                 * Override the MediaElement method for removing a player.
     6419                 *      MediaElement tries to pull the audio/video tag out of
     6420                 *      its container and re-add it to the DOM.
     6421                 *
     6422                 */
     6423                remove: function() {
     6424                        var t = this.player, featureIndex, feature;
     6425
     6426                        // invoke features cleanup
     6427                        for ( featureIndex in t.options.features ) {
     6428                                feature = t.options.features[featureIndex];
     6429                                if ( t['clean' + feature] ) {
     6430                                        try {
     6431                                                t['clean' + feature](t);
     6432                                        } catch (e) {}
     6433                                }
     6434                        }
     6435
     6436                        if ( ! t.isDynamic ) {
     6437                                t.$node.remove();
     6438                        }
     6439
     6440                        if ( 'native' !== t.media.pluginType ) {
     6441                                t.media.remove();
     6442                        }
     6443
     6444                        delete mejs.players[t.id];
     6445
     6446                        t.container.remove();
     6447                        t.globalUnbind();
     6448                        delete t.node.player;
     6449                },
     6450
    64066451                close : function() {
    6407                         this.mejs.pause();
     6452                        if ( this.player ) {
     6453                                this.mejs.pause();
     6454                                this.remove();
     6455                        }
    64086456                },
    64096457
    6410                 player : function (mejs) {
     6458                success : function (mejs) {
     6459                        var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
     6460
     6461                        if ( 'flash' === mejs.pluginType && autoplay ) {
     6462                                mejs.addEventListener( 'canplay', function () {
     6463                                        mejs.play();
     6464                                }, false );
     6465                        }
     6466
    64116467                        this.mejs = mejs;
    64126468                },
    64136469
    64146470                render: function() {
    64156471                        var self = this, settings = {
    6416                                 success : this.player
     6472                                success : this.success
    64176473                        };
    64186474
    64196475                        if ( ! _.isUndefined( window._wpmejsSettings ) ) {
     
    64236479                        media.view.Settings.AttachmentDisplay.prototype.render.apply( this, arguments );
    64246480                        setTimeout( function() { self.resetFocus(); }, 10 );
    64256481
    6426                         new MediaElementPlayer( this.$('.wp-audio-shortcode').get(0), settings );
     6482                        this.setPlayer( settings );
    64276483
    64286484                        return this;
    64296485                },
     
    64346490        });
    64356491
    64366492        /**
    6437          * wp.media.view.VideoDetails
     6493         * wp.media.view.AudioDetails
    64386494         *
    64396495         * @contructor
     6496         * @augments wp.media.view.MediaDetails
    64406497         * @augments wp.media.view.Settings.AttachmentDisplay
    64416498         * @augments wp.media.view.Settings
    64426499         * @augments wp.media.View
    64436500         * @augments wp.Backbone.View
    64446501         * @augments Backbone.View
    64456502         */
    6446         media.view.VideoDetails = media.view.Settings.AttachmentDisplay.extend({
    6447                 className: 'video-details',
    6448                 template:  media.template('video-details'),
     6503        media.view.AudioDetails = media.view.MediaDetails.extend({
     6504                className: 'audio-details',
     6505                template:  media.template('audio-details'),
    64496506
    6450                 initialize: function() {
    6451                         _.bindAll(this, 'success');
     6507                setPlayer: function( settings ) {
     6508                        var audio = this.$('.wp-audio-shortcode').get(0);
    64526509
    6453                         this.listenTo( this.controller, 'close', this.close );
     6510                        audio = this.prepareSrc( audio );
    64546511
    6455                         media.view.Settings.AttachmentDisplay.prototype.initialize.apply( this, arguments );
    6456                 },
     6512                        this.player = new MediaElementPlayer( audio, settings );
     6513                        return this;
     6514                }
     6515        });
    64576516
    6458                 prepare: function() {
    6459                         var attachment = false;
     6517        /**
     6518         * wp.media.view.VideoDetails
     6519         *
     6520         * @contructor
     6521         * @augments wp.media.view.MediaDetails
     6522         * @augments wp.media.view.Settings.AttachmentDisplay
     6523         * @augments wp.media.view.Settings
     6524         * @augments wp.media.View
     6525         * @augments wp.Backbone.View
     6526         * @augments Backbone.View
     6527         */
     6528        media.view.VideoDetails = media.view.MediaDetails.extend({
     6529                className: 'video-details',
     6530                template:  media.template('video-details'),
    64606531
    6461                         if ( this.model.attachment ) {
    6462                                 attachment = this.model.attachment.toJSON();
    6463                         }
    6464                         return _.defaults({
    6465                                 model: this.model.toJSON(),
    6466                                 attachment: attachment
    6467                         }, this.options );
    6468                 },
     6532                setPlayer: function( settings ) {
     6533                        var video = this.$('.wp-video-shortcode').get(0);
    64696534
    6470                 close : function() {
    6471                         this.mejs.pause();
    6472                         this.player.remove();
    6473                 },
     6535                        video = this.prepareSrc( video );
    64746536
    6475                 success : function (mejs) {
    6476                         this.mejs = mejs;
    6477                 },
    6478 
    6479                 render: function() {
    6480                         var video, self = this, settings = {
    6481                                 success : this.success
    6482                         };
    6483 
    6484                         if ( ! _.isUndefined( window._wpmejsSettings ) ) {
    6485                                 settings.pluginPath = _wpmejsSettings.pluginPath;
    6486                         }
    6487 
    6488                         media.view.Settings.AttachmentDisplay.prototype.render.apply( this, arguments );
    6489                         setTimeout( function() { self.resetFocus(); }, 10 );
    6490 
    6491                         video = this.$('.wp-video-shortcode').get(0);
    6492                         video.src = [
    6493                                 video.src,
    6494                                 video.src.indexOf('?') > -1 ? '&' : '?',
    6495                                 (new Date()).getTime()
    6496                         ].join('');
    6497 
    64986537                        this.player = new MediaElementPlayer( video, settings );
    64996538                        return this;
    6500                 },
    6501 
    6502                 resetFocus: function() {
    6503                         this.$( '.embed-media-settings' ).scrollTop( 0 );
    65046539                }
    65056540        });
    65066541
  • src/wp-includes/js/mediaelement/wp-mediaelement.js

     
    77        $(function () {
    88                var settings = {};
    99
    10                 if ( typeof _wpmejsSettings !== 'undefined' )
     10                if ( typeof _wpmejsSettings !== 'undefined' ) {
    1111                        settings.pluginPath = _wpmejsSettings.pluginPath;
     12                }
    1213
     14                settings.success = function (mejs) {
     15                        var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
     16                        if ( 'flash' === mejs.pluginType && autoplay ) {
     17                                mejs.addEventListener( 'canplay', function () {
     18                                        mejs.play();
     19                                }, false );
     20                        }
     21                };
     22
    1323                $('.wp-audio-shortcode, .wp-video-shortcode').mediaelementplayer( settings );
    1424        });
    1525