kollapsminoriteten/wp-content/plugins/jetpack/modules/videopress/js/media-video-widget-extensio...

53 lines
1.8 KiB
JavaScript
Raw Normal View History

2019-11-15 23:26:29 +01:00
window.wp = window.wp || {};
2020-09-15 14:30:05 +02:00
( function ( wp ) {
2019-11-15 23:26:29 +01:00
if ( wp.mediaWidgets ) {
// Over-ride core media_video#mapMediaToModelProps to set the url based upon videopress_guid if it exists.
2020-09-15 14:30:05 +02:00
wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps = ( function (
2019-11-15 23:26:29 +01:00
originalMapMediaToModelProps
) {
2020-09-15 14:30:05 +02:00
return function ( mediaFrameProps ) {
2019-11-15 23:26:29 +01:00
var newProps, originalProps, videoPressGuid;
originalProps = originalMapMediaToModelProps.call( this, mediaFrameProps );
newProps = _.extend( {}, originalProps );
// API response on new media will have the guid at videopress.guid.
if ( mediaFrameProps.videopress && mediaFrameProps.videopress.guid ) {
videoPressGuid = mediaFrameProps.videopress.guid;
}
// Selecting an existing VideoPress file will have the guid at .videopress_guid[ 0 ].
if (
! videoPressGuid &&
mediaFrameProps.videopress_guid &&
mediaFrameProps.videopress_guid.length
) {
videoPressGuid = mediaFrameProps.videopress_guid[ 0 ];
}
if ( videoPressGuid ) {
newProps = _.extend( {}, originalProps, {
url: 'https://videopress.com/v/' + videoPressGuid,
attachment_id: 0,
} );
}
return newProps;
};
} )( wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps );
// Over-ride core media_video#isHostedVideo() to add support for videopress oembed urls.
2020-09-15 14:30:05 +02:00
wp.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo = ( function (
2019-11-15 23:26:29 +01:00
originalIsHostedVideo
) {
2020-09-15 14:30:05 +02:00
return function ( url ) {
2019-11-15 23:26:29 +01:00
var parsedUrl = document.createElement( 'a' );
parsedUrl.href = url;
if ( 'videopress.com' === parsedUrl.hostname ) {
return true;
}
return originalIsHostedVideo.call( this, url );
};
} )( wp.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo );
}
} )( window.wp );