blob: d7d9845c36aa2afd561bb62721c3637a6486fd7f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
window.wp = window.wp || {};
( function( wp ) {
if ( wp.mediaWidgets ) {
// Over-ride core media_video#mapMediaToModelProps to set the url based upon videopress_guid if it exists.
wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps = ( function(
originalMapMediaToModelProps
) {
return function( mediaFrameProps ) {
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.
wp.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo = ( function(
originalIsHostedVideo
) {
return function( url ) {
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 );
|