mirror of
https://github.com/WordPress/WordPress.git
synced 2024-10-06 19:48:11 +02:00
b191013198
* In media manifests, ditch IIFEs and global injection, these get dynamically scoped via Browserify * Remove the `debug` option from `browserify:media` * Add `jshint:media` to `jshint:corejs` * Add a trailing newline to all new module files Props iseulde. See #28510. Built from https://develop.svn.wordpress.org/trunk@31385 git-svn-id: http://core.svn.wordpress.org/trunk@31366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
39 lines
991 B
JavaScript
39 lines
991 B
JavaScript
/**
|
|
* Shared model class for audio and video. Updates the model after
|
|
* "Add Audio|Video Source" and "Replace Audio|Video" states return
|
|
*
|
|
* @constructor
|
|
* @augments Backbone.Model
|
|
*/
|
|
var PostMedia = Backbone.Model.extend({
|
|
initialize: function() {
|
|
this.attachment = false;
|
|
},
|
|
|
|
setSource: function( attachment ) {
|
|
this.attachment = attachment;
|
|
this.extension = attachment.get( 'filename' ).split('.').pop();
|
|
|
|
if ( this.get( 'src' ) && this.extension === this.get( 'src' ).split('.').pop() ) {
|
|
this.unset( 'src' );
|
|
}
|
|
|
|
if ( _.contains( wp.media.view.settings.embedExts, this.extension ) ) {
|
|
this.set( this.extension, this.attachment.get( 'url' ) );
|
|
} else {
|
|
this.unset( this.extension );
|
|
}
|
|
},
|
|
|
|
changeAttachment: function( attachment ) {
|
|
this.setSource( attachment );
|
|
|
|
this.unset( 'src' );
|
|
_.each( _.without( wp.media.view.settings.embedExts, this.extension ), function( ext ) {
|
|
this.unset( ext );
|
|
}, this );
|
|
}
|
|
});
|
|
|
|
module.exports = PostMedia;
|