| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /* 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 );
|