X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/6c8f14c09105d0afa4c1574215c59b5021040e76..607b7e02d77e7326161e8ec15639052d2040f745:/wp-includes/js/plupload/handlers.js diff --git a/wp-includes/js/plupload/handlers.js b/wp-includes/js/plupload/handlers.js index e903f570..7f3a8c24 100644 --- a/wp-includes/js/plupload/handlers.js +++ b/wp-includes/js/plupload/handlers.js @@ -1,9 +1,6 @@ +/* global plupload, pluploadL10n, ajaxurl, post_id, wpUploaderInit, deleteUserSetting, setUserSetting, getUserSetting, shortform */ var topWin = window.dialogArguments || opener || parent || top, uploader, uploader_init; -function fileDialogStart() { - jQuery("#media-upload-error").empty(); -} - // progress and success handlers for media multi uploads function fileQueued(fileObj) { // Get rid of unused form @@ -16,7 +13,12 @@ function fileQueued(fileObj) { items.removeClass('open').find('.slidetoggle').slideUp(200); } // Create a progress bar containing the filename - jQuery('#media-items').append('
0%
' + fileObj.name + '
'); + jQuery('
') + .attr( 'id', 'media-item-' + fileObj.id ) + .addClass('child-of-' + postid) + .append('
0%
', + jQuery('
').text( ' ' + fileObj.name )) + .appendTo( jQuery('#media-items' ) ); // Disable submit jQuery('#insert-gallery').prop('disabled', true); @@ -39,20 +41,19 @@ function uploadProgress(up, file) { } // check to see if a large file failed to upload -function fileUploading(up, file) { - var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10); +function fileUploading( up, file ) { + var hundredmb = 100 * 1024 * 1024, + max = parseInt( up.settings.max_file_size, 10 ); if ( max > hundredmb && file.size > hundredmb ) { - setTimeout(function(){ - var done; - - if ( file.status < 3 && file.loaded == 0 ) { // not uploading - wpFileError(file, pluploadL10n.big_upload_failed.replace('%1$s', '').replace('%2$s', '')); + setTimeout( function() { + if ( file.status < 3 && file.loaded === 0 ) { // not uploading + wpFileError( file, pluploadL10n.big_upload_failed.replace( '%1$s', '' ).replace( '%2$s', '' ) ); up.stop(); // stops the whole queue - up.removeFile(file); + up.removeFile( file ); up.start(); // restart the queue } - }, 10000); // wait for 10 sec. for the file to start uploading + }, 10000 ); // wait for 10 sec. for the file to start uploading } } @@ -65,7 +66,7 @@ function updateMediaForm() { jQuery('.insert-gallery').hide(); } else if ( items.length > 1 ) { items.removeClass('open'); - // Only show Gallery button when there are at least two files. + // Only show Gallery/Playlist buttons when there are at least two files. jQuery('.insert-gallery').show(); } @@ -98,15 +99,20 @@ function uploadSuccess(fileObj, serverData) { jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1); } -function setResize(arg) { +function setResize( arg ) { if ( arg ) { - if ( uploader.features.jpgresize ) - uploader.settings['resize'] = { width: resize_width, height: resize_height, quality: 100 }; - else + if ( window.resize_width && window.resize_height ) { + uploader.settings.resize = { + enabled: true, + width: window.resize_width, + height: window.resize_height, + quality: 100 + }; + } else { uploader.settings.multipart_params.image_resize = true; + } } else { - delete(uploader.settings.resize); - delete(uploader.settings.multipart_params.image_resize); + delete( uploader.settings.multipart_params.image_resize ); } } @@ -124,7 +130,7 @@ function prepareMediaItem(fileObj, serverData) { item.append(serverData); prepareMediaItemInit(fileObj); } else { // New style: server data is just the attachment ID, fetch the thumbnail and form html from the server - item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm()}); + item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm();}); } } @@ -166,8 +172,9 @@ function prepareMediaItemInit(fileObj) { action: 'untrash-post', _ajax_nonce: this.href.replace(/^.*wpnonce=/,'') }, - success: function(data, textStatus){ - var item = jQuery('#media-item-' + fileObj.id); + success: function( ){ + var type, + item = jQuery('#media-item-' + fileObj.id); if ( type = jQuery('#type-of-' + fileObj.id).val() ) jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-0+1); @@ -205,21 +212,23 @@ function itemAjaxError(id, message) { if ( last_err == id ) // prevent firing an error for the same file twice return; - item.html('
' - + '' + pluploadL10n.dismiss + '' - + '' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + ' ' - + message - + '
').data('last-err', id); + item.html('
' + + '' + pluploadL10n.dismiss + '' + + '' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + ' ' + + message + + '
').data('last-err', id); } -function deleteSuccess(data, textStatus) { +function deleteSuccess(data) { + var type, id, item; if ( data == '-1' ) return itemAjaxError(this.id, 'You do not have permission. Has your session expired?'); if ( data == '0' ) return itemAjaxError(this.id, 'Could not be deleted. Has it been deleted already?'); - var id = this.id, item = jQuery('#media-item-' + id); + id = this.id; + item = jQuery('#media-item-' + id); // Decrement the counters. if ( type = jQuery('#type-of-' + id).val() ) @@ -247,7 +256,7 @@ function deleteSuccess(data, textStatus) { return; } -function deleteError(X, textStatus, errorThrown) { +function deleteError() { // TODO } @@ -268,16 +277,6 @@ function switchUploader(s) { } } -function dndHelper(s) { - var d = document.getElementById('dnd-helper'); - - if ( s ) { - d.style.display = 'block'; - } else { - d.style.display = 'none'; - } -} - function uploadError(fileObj, errorCode, message, uploader) { var hundredmb = 100 * 1024 * 1024, max; @@ -286,7 +285,7 @@ function uploadError(fileObj, errorCode, message, uploader) { wpFileError(fileObj, pluploadL10n.upload_failed); break; case plupload.FILE_EXTENSION_ERROR: - wpFileError(fileObj, pluploadL10n.invalid_filetype); + wpFileExtensionError( uploader, fileObj, pluploadL10n.invalid_filetype ); break; case plupload.FILE_SIZE_ERROR: uploadSizeError(uploader, fileObj); @@ -304,10 +303,10 @@ function uploadError(fileObj, errorCode, message, uploader) { wpQueueError(pluploadL10n.upload_failed); break; case plupload.IO_ERROR: - max = parseInt(uploader.settings.max_file_size, 10); + max = parseInt( uploader.settings.filters.max_file_size, 10 ); if ( max > hundredmb && fileObj.size > hundredmb ) - wpFileError(fileObj, pluploadL10n.big_upload_failed.replace('%1$s', '').replace('%2$s', '')); + wpFileError( fileObj, pluploadL10n.big_upload_failed.replace('%1$s', '').replace('%2$s', '') ); else wpQueueError(pluploadL10n.io_error); break; @@ -341,6 +340,11 @@ function uploadSizeError( up, file, over100mb ) { up.removeFile(file); } +function wpFileExtensionError( up, file, message ) { + jQuery('#media-items').append('

' + message + '

'); + up.removeFile(file); +} + jQuery(document).ready(function($){ $('.media-upload-form').bind('click.uploader', function(e) { var target = $(e.target), tr, c; @@ -401,6 +405,16 @@ jQuery(document).ready(function($){ // init and set the uploader uploader_init = function() { + var isIE = navigator.userAgent.indexOf('Trident/') != -1 || navigator.userAgent.indexOf('MSIE ') != -1; + + // Make sure flash sends cookies (seems in IE it does whitout switching to urlstream mode) + if ( ! isIE && 'flash' === plupload.predictRuntime( wpUploaderInit ) && + ( ! wpUploaderInit.required_features || ! wpUploaderInit.required_features.hasOwnProperty( 'send_binary_string' ) ) ) { + + wpUploaderInit.required_features = wpUploaderInit.required_features || {}; + wpUploaderInit.required_features.send_binary_string = true; + } + uploader = new plupload.Uploader(wpUploaderInit); $('#image_resize').bind('change', function() { @@ -421,43 +435,39 @@ jQuery(document).ready(function($){ if ( up.features.dragdrop && ! $(document.body).hasClass('mobile') ) { uploaddiv.addClass('drag-drop'); - $('#drag-drop-area').bind('dragover.wp-uploader', function(){ // dragenter doesn't fire right :( + $('#drag-drop-area').on('dragover.wp-uploader', function(){ // dragenter doesn't fire right :( uploaddiv.addClass('drag-over'); - }).bind('dragleave.wp-uploader, drop.wp-uploader', function(){ + }).on('dragleave.wp-uploader, drop.wp-uploader', function(){ uploaddiv.removeClass('drag-over'); }); } else { uploaddiv.removeClass('drag-drop'); - $('#drag-drop-area').unbind('.wp-uploader'); + $('#drag-drop-area').off('.wp-uploader'); } - if ( up.runtime == 'html4' ) + if ( up.runtime === 'html4' ) { $('.upload-flash-bypass').hide(); + } }); - uploader.init(); + uploader.bind( 'postinit', function( up ) { + up.refresh(); + }); - uploader.bind('FilesAdded', function(up, files) { - var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10); + uploader.init(); - $('#media-upload-error').html(''); + uploader.bind('FilesAdded', function( up, files ) { + $('#media-upload-error').empty(); uploadStart(); - plupload.each(files, function(file){ - if ( max > hundredmb && file.size > hundredmb && up.runtime != 'html5' ) - uploadSizeError( up, file, true ); - else - fileQueued(file); + plupload.each( files, function( file ) { + fileQueued( file ); }); up.refresh(); up.start(); }); - uploader.bind('BeforeUpload', function(up, file) { - // something - }); - uploader.bind('UploadFile', function(up, file) { fileUploading(up, file); }); @@ -475,12 +485,13 @@ jQuery(document).ready(function($){ uploadSuccess(file, response.response); }); - uploader.bind('UploadComplete', function(up, files) { + uploader.bind('UploadComplete', function() { uploadComplete(); }); - } + }; - if ( typeof(wpUploaderInit) == 'object' ) + if ( typeof(wpUploaderInit) == 'object' ) { uploader_init(); + } });