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