]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-includes/js/plupload/handlers.js
WordPress 4.7.2-scripts
[autoinstalls/wordpress.git] / wp-includes / js / plupload / handlers.js
index e903f5709e57b9c54b6023a86567b03952c66e3b..7f3a8c246916a2c01d04c2e8d63850394ebce610 100644 (file)
@@ -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('<div id="media-item-' + fileObj.id + '" class="media-item child-of-' + postid + '"><div class="progress"><div class="percent">0%</div><div class="bar"></div></div><div class="filename original"> ' + fileObj.name + '</div></div>');
+       jQuery('<div class="media-item">')
+               .attr( 'id', 'media-item-' + fileObj.id )
+               .addClass('child-of-' + postid)
+               .append('<div class="progress"><div class="percent">0%</div><div class="bar"></div></div>',
+                       jQuery('<div class="filename original">').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', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
+               setTimeout( function() {
+                       if ( file.status < 3 && file.loaded === 0 ) { // not uploading
+                               wpFileError( file, pluploadL10n.big_upload_failed.replace( '%1$s', '<a class="uploader-html" href="#">' ).replace( '%2$s', '</a>' ) );
                                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('<div class="error-div">'
-                               + '<a class="dismiss" href="#">' + pluploadL10n.dismiss + '</a>'
-                               + '<strong>' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + '</strong> '
-                               + message
-                               '</div>').data('last-err', id);
+       item.html('<div class="error-div">' +
+                               '<a class="dismiss" href="#">' + pluploadL10n.dismiss + '</a>' +
+                               '<strong>' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + '</strong> ' +
+                               message +
+                               '</div>').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', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
+                               wpFileError( fileObj, pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>') );
                        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('<div id="media-item-' + file.id + '" class="media-item error"><p>' + message + '</p></div>');
+       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();
+       }
 
 });