Selaa lähdekoodia

Fix #217: Ensure `filebatchselected` event is triggered after FileReader completes reading files selected

Kartik Visweswaran 10 vuotta sitten
vanhempi
commit
9a8b1ee91c
3 muutettua tiedostoa jossa 8 lisäystä ja 13 poistoa
  1. 1 0
      CHANGE.md
  2. 7 13
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 1 - 0
CHANGE.md

@@ -48,6 +48,7 @@ version 4.1.8
 25. (enh #213): Code cleanup, eliminate change event on clear and properly reset preview cache after ajax deletes.
 26. (enh #215): Set default delete method REST compliant.
 27. (enh #216): Add Hungarian Translations.
+28. (enh #217): Ensure `filebatchselected` event is triggered after FileReader completes reading files selected.
 
 version 4.1.7
 =============

+ 7 - 13
js/fileinput.js

@@ -1021,9 +1021,6 @@
         },
         clear: function () {
             var self = this, cap;
-            if (!self.isIE9 && self.reader instanceof FileReader) {
-                self.reader.abort();
-            }
             self.$btnUpload.removeAttr('disabled');
             self.resetUpload();
             self.filestack = [];
@@ -1080,9 +1077,6 @@
                 self.$container.removeClass('file-input-new');
             }
             self.setFileDropZoneTitle();
-            if (self.isUploadable) {
-                self.resetUpload();
-            }
             self.filestack = [];
             self.formdata = {};
         },
@@ -1639,7 +1633,12 @@
                 if (isEmpty($el.attr('multiple'))) {
                     numFiles = 1;
                 }
-                if (i >= numFiles) {
+                if (i >= numFiles) {                    
+                    if (self.isUploadable && self.filestack.length > 0) {
+                        self.raise('filebatchselected', [self.getFileStack()]);
+                    } else {
+                        self.raise('filebatchselected', [tfiles]);
+                    }
                     $container.removeClass('loading');
                     $status.html('');
                     return;
@@ -1781,6 +1780,7 @@
                         p2 = {id: previewId, index: index, file: file, files: files};
                     return self.isUploadable ? self.showUploadError(mesg, p1) : self.showError(mesg, p2);
                 };
+            self.reader = null;
             self.resetUpload();
             self.hideFileIcon();
             if (self.isUploadable) {
@@ -1845,12 +1845,6 @@
                 self.updateFileDetails(1);
             }
             self.showFolderError(folders);
-            if (isAjaxUpload) {
-                self.raise('filebatchselected', [self.getFileStack()]);
-            } else {
-                self.raise('filebatchselected', [tfiles]);
-            }
-            self.reader = null;
         },
         autoSizeImage: function (previewId) {
             var self = this, $preview = self.$preview,

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 0 - 0
js/fileinput.min.js


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä