Add upstream
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
/* globals plupload, pluploadL10n, error */
|
||||
window.wp = window.wp || {};
|
||||
|
||||
( function( wp ) {
|
||||
var VideoPress = {
|
||||
originalOptions: {},
|
||||
|
||||
/**
|
||||
* This is the standard uploader response handler.
|
||||
*/
|
||||
handleStandardResponse: function( response, file ) {
|
||||
if ( ! _.isObject( response ) || _.isUndefined( response.success ) ) {
|
||||
return error( pluploadL10n.default_error, null, file );
|
||||
} else if ( ! response.success ) {
|
||||
return error( response.data && response.data.message, response.data, file );
|
||||
}
|
||||
|
||||
return response;
|
||||
},
|
||||
|
||||
/**
|
||||
* Handle response from the WPCOM Rest API.
|
||||
*/
|
||||
handleRestApiResponse: function( response, file ) {
|
||||
if ( response.media.length !== 1 ) {
|
||||
return error( pluploadL10n.default_error, null, file );
|
||||
}
|
||||
|
||||
var media = response.media[ 0 ],
|
||||
mimeParts = media.mime_type.split( '/' ),
|
||||
data = {
|
||||
alt: '',
|
||||
author: media.author_ID || 0,
|
||||
authorName: '',
|
||||
caption: '',
|
||||
compat: { item: '', meta: '' },
|
||||
date: media.date || '',
|
||||
dateFormatted: media.date || '',
|
||||
description: media.description || '',
|
||||
editLink: '',
|
||||
filename: media.file || '',
|
||||
filesizeHumanReadable: '',
|
||||
filesizeInBytes: '',
|
||||
height: media.height,
|
||||
icon: media.icon || '',
|
||||
id: media.ID || '',
|
||||
link: media.URL || '',
|
||||
menuOrder: 0,
|
||||
meta: false,
|
||||
mime: media.mime_type || '',
|
||||
modified: 0,
|
||||
name: '',
|
||||
nonces: { update: '', delete: '', edit: '' },
|
||||
orientation: '',
|
||||
sizes: undefined,
|
||||
status: '',
|
||||
subtype: mimeParts[ 1 ] || '',
|
||||
title: media.title || '',
|
||||
type: mimeParts[ 0 ] || '',
|
||||
uploadedTo: 1,
|
||||
uploadedToLink: '',
|
||||
uploadedToTitle: '',
|
||||
url: media.URL || '',
|
||||
width: media.width,
|
||||
success: '',
|
||||
videopress: {
|
||||
guid: media.videopress_guid || null,
|
||||
processing_done: media.videopress_processing_done || false,
|
||||
},
|
||||
};
|
||||
|
||||
response.data = data;
|
||||
|
||||
return response;
|
||||
},
|
||||
|
||||
/**
|
||||
* Make sure that all of the original variables have been reset, so the uploader
|
||||
* doesn't try to go to VideoPress again next time.
|
||||
*
|
||||
* @param up
|
||||
*/
|
||||
resetToOriginalOptions: function( up ) {
|
||||
if ( typeof VideoPress.originalOptions.url !== 'undefined' ) {
|
||||
up.setOption( 'url', VideoPress.originalOptions.url );
|
||||
delete VideoPress.originalOptions.url;
|
||||
}
|
||||
|
||||
if ( typeof VideoPress.originalOptions.multipart_params !== 'undefined' ) {
|
||||
up.setOption( 'multipart_params', VideoPress.originalOptions.multipart_params );
|
||||
delete VideoPress.originalOptions.multipart_params;
|
||||
}
|
||||
|
||||
if ( typeof VideoPress.originalOptions.file_data_name !== 'undefined' ) {
|
||||
up.setOption( 'file_data_name', VideoPress.originalOptions.file_data_name );
|
||||
delete VideoPress.originalOptions.file_data_name;
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
if ( typeof wp.Uploader !== 'undefined' ) {
|
||||
var media = wp.media;
|
||||
|
||||
/**
|
||||
* A plupload code specifically for videopress failures.
|
||||
*
|
||||
* @type {string}
|
||||
*/
|
||||
plupload.VIDEOPRESS_TOKEN_FAILURE = 'VP_TOKEN_FAILURE';
|
||||
|
||||
/**
|
||||
* Adds a filter that checks all files to see if they are videopress files and if they are
|
||||
* it will download extra metadata for them.
|
||||
*/
|
||||
plupload.addFileFilter( 'videopress_check_uploads', function( maxSize, file, cb ) {
|
||||
var mimeParts = file.type.split( '/' );
|
||||
var self = this;
|
||||
|
||||
if ( mimeParts[ 0 ] === 'video' ) {
|
||||
media
|
||||
.ajax( 'videopress-get-upload-token', { async: false, data: { filename: file.name } } )
|
||||
.done( function( response ) {
|
||||
file.videopress = response;
|
||||
cb( true );
|
||||
} )
|
||||
.fail( function( response ) {
|
||||
self.trigger( 'Error', {
|
||||
code: plupload.VIDEOPRESS_TOKEN_FAILURE,
|
||||
message: plupload.translate(
|
||||
'Could not get the VideoPress token needed for uploading'
|
||||
),
|
||||
file: file,
|
||||
response: response,
|
||||
} );
|
||||
cb( false );
|
||||
} );
|
||||
} else {
|
||||
// Handles the normal max_file_size functionality.
|
||||
var undef;
|
||||
|
||||
// Invalid file size
|
||||
if ( file.size !== undef && maxSize && file.size > maxSize ) {
|
||||
this.trigger( 'Error', {
|
||||
code: plupload.FILE_SIZE_ERROR,
|
||||
message: plupload.translate( 'File size error.' ),
|
||||
file: file,
|
||||
} );
|
||||
cb( false );
|
||||
} else {
|
||||
cb( true );
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
wp.VideoPress = VideoPress;
|
||||
} )( window.wp );
|
||||
Reference in New Issue
Block a user