From 836af4e1c000a338e89478b56f58411fff6bb257 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Tue, 11 Mar 2008 23:15:17 +0000 Subject: [PATCH] media handling fixes from andy. see #5911 git-svn-id: https://develop.svn.wordpress.org/trunk@7256 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-includes/js/swfupload/handlers.js | 54 +++++++++++++++++++++------- wp-includes/script-loader.php | 3 +- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/wp-includes/js/swfupload/handlers.js b/wp-includes/js/swfupload/handlers.js index fcfc466e00..c53edf1d04 100644 --- a/wp-includes/js/swfupload/handlers.js +++ b/wp-includes/js/swfupload/handlers.js @@ -55,20 +55,11 @@ function prepareMediaItem(fileObj, serverData) { // Bind AJAX to the new Delete button jQuery('#media-item-' + fileObj.id + ' a.delete').bind('click',function(){ // Tell the server to delete it. TODO: handle exceptions - jQuery.ajax({url:'admin-ajax.php',type:'post',data:{ + jQuery.ajax({url:'admin-ajax.php',type:'post',success:deleteSuccess,error:deleteError,id:fileObj.id,data:{ id : this.id.replace(/[^0-9]/g,''), action : 'delete-post', _ajax_nonce : this.href.replace(/^.*wpnonce=/,'')} }); - - // Decrement the counters. - if ( type = jQuery('#type-of-' + this.id.replace(/[^0-9]/g,'')).val() ) - jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-1); - if ( jQuery(this).parents('.media-item').eq(0).hasClass('child-of-'+post_id) ) - jQuery('#attachments-count').text(jQuery('#attachments-count').text()-1); - - // Vanish it. - jQuery(this).parents(".media-item").eq(0).slideToggle(300,function(){jQuery(this).remove();if(jQuery('.media-item').length==0)jQuery('.insert-gallery').hide();updateMediaForm();}); return false; }); @@ -79,6 +70,45 @@ function prepareMediaItem(fileObj, serverData) { .parent().eq(0).children('.toggle').toggle(); } +function itemAjaxError(id, html) { + var error = jQuery('#media-item-error' + id); + + error.html('
'+html+'
'); + jQuery('#dismiss-'+id).click(function(){jQuery(this).parents('.file-error').slideUp(200, function(){jQuery(this).empty();})}); +} + +function deleteSuccess(data, textStatus) { + 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 item = jQuery('#media-item-' + this.id); + + // Decrement the counters. + if ( type = jQuery('#type-of-' + this.id).val() ) + jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-1); + if ( item.hasClass('child-of-'+post_id) ) + jQuery('#attachments-count').text(jQuery('#attachments-count').text()-1); + + if ( jQuery('.type-form #media-items>*').length == 1 && jQuery('#media-items .hidden').length > 0 ) { + jQuery('.toggle').toggle(); + jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden'); + } + + jQuery('#media-item-' + this.id + ' .filename:empty').remove(); + jQuery('#media-item-' + this.id + ' .filename').append(' '+swfuploadL10n.deleted+'').siblings('a.toggle').remove(); + jQuery('#media-item-' + this.id + ' .describe').slideUp(500, function(){jQuery(this).parents('.media-item').slideUp(1500,function(){jQuery(this).remove();updateMediaForm();})}).end.remove(); + + return; + // Vanish it. + item.slideToggle(300,function(){jQuery(this).remove();if(jQuery('.media-item').length==0)jQuery('.insert-gallery').hide();updateMediaForm();}); +} + +function deleteError(X, textStatus, errorThrown) { + // TODO +} + function updateMediaForm() { // Just one file, no need for collapsible part if ( jQuery('.type-form #media-items>*').length == 1 ) { @@ -130,8 +160,8 @@ function wpQueueError(message) { // file-specific message function wpFileError(fileObj, message) { - jQuery('#media-item-' + fileObj.id + ' .filename').after('
'+message+'
').siblings('.progress').remove(); - jQuery('.dismiss').click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})}); + jQuery('#media-item-' + fileObj.id + ' .filename').after('
'+message+'
').siblings('.toggle').remove(); + jQuery('#dismiss-' + fileObj.id).click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})}); } function fileQueueError(fileObj, error_code, message) { diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 338b5b9fd7..f615a38bfc 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -84,7 +84,7 @@ class WP_Scripts { $this->add( 'swfupload', '/wp-includes/js/swfupload/swfupload.js', false, '2.0.2'); $this->add( 'swfupload-degrade', '/wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js', array('swfupload'), '2.0.2'); $this->add( 'swfupload-queue', '/wp-includes/js/swfupload/plugins/swfupload.queue.js', array('swfupload'), '2.0.2'); - $this->add( 'swfupload-handlers', '/wp-includes/js/swfupload/handlers.js', array('swfupload'), '2.0.2-20080228'); + $this->add( 'swfupload-handlers', '/wp-includes/js/swfupload/handlers.js', array('swfupload'), '2.0.2-20080301'); // these error messages came from the sample swfupload js, they might need changing. $this->localize( 'swfupload-handlers', 'swfuploadL10n', array( 'queue_limit_exceeded' => __('You have attempted to queue too many files.'), @@ -102,6 +102,7 @@ class WP_Scripts { 'upload_stopped' => __('Upload stopped.'), 'dismiss' => __('Dismiss'), 'crunching' => __('Crunching…'), + 'deleted' => __('Deleted'), ) ); $this->add( 'jquery-ui-tabs', '/wp-includes/js/jquery/ui.tabs.js', array('jquery'), '3' );