diff -rupN filefield/filefield.js filefield_new/filefield.js --- filefield/filefield.js 2009-07-04 07:22:57.000000000 +1000 +++ filefield.js 2010-02-10 20:13:55.000000000 +1100 @@ -130,3 +130,37 @@ Drupal.filefield = { return false; } }; + +/** + * This disables the submit, preview & add-more buttons while a file upload is in progress. + */ + +// Disable buttons +Drupal.behaviors.waitSave = function (context) { + $('.filefield-element .form-file', context).each(function () { + $(this).change(function() { + if($(this).val() != '') { + $('#edit-field-file-field-file-add-more').attr('disabled','disabled').fadeTo(200,.20); + $('#edit-submit').attr('disabled','disabled').fadeTo(200,.20); + $('#edit-preview').attr('disabled','disabled').fadeTo(200,.20); + $('#edit-delete').attr('disabled','disabled').fadeTo(200,.20); + } + }); + }); +} + +// Enable buttons +Drupal.behaviors.readySave = function (context) { + var queued = 0; + $('.filefield-element .form-file').each(function() { + if (jQuery(this).val() != '') { + queued++; + } + }); + if (queued === 0) { + $('#edit-field-file-field-file-add-more').removeAttr('disabled').fadeTo(200,1); + $('#edit-submit').removeAttr('disabled').fadeTo(200,1); + $('#edit-preview').removeAttr('disabled').fadeTo(200,1); + $('#edit-delete').removeAttr('disabled').fadeTo(200,1); + } +}