Browse Source

Fix #1480: Correct preview content setting after validation error

Kartik Visweswaran 5 years ago
parent
commit
333da5eaad
3 changed files with 9 additions and 3 deletions
  1. 1 0
      CHANGE.md
  2. 8 3
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 1 - 0
CHANGE.md

@@ -27,6 +27,7 @@ Change Log: `bootstrap-fileinput`
 - (bug #1499, #1502): Correct duplicate file check error rendering.
 - (enh #1497): Better validation of progress display when `showPreview` is `false`.
 - (bug #1482): Validate `initialPreviewShowDelete` setting correctly.
+- (bug #1480): Correct preview content setting after validation error.
  
 ## version 5.0.7
 

+ 8 - 3
js/fileinput.js

@@ -1775,7 +1775,7 @@
                     if (!$h.isArray(content)) {
                         content = content.split(self.initialPreviewDelimiter);
                     }
-                    if (append) {
+                    if (append && data.content && data.content.length) {
                         index = data.content.push(content[0]) - 1;
                         data.config[index] = config;
                         data.tags[index] = tags;
@@ -2057,7 +2057,12 @@
             var self = this, label = self.minFileCount > 1 ? self.filePlural : self.fileSingle,
                 msg = self.msgFilesTooLess.replace('{n}', self.minFileCount).replace('{files}', label),
                 $error = self.$errorContainer;
-            self._addError(msg);
+            msg = '<li>' + msg + '</li>';
+            if ($error.find('ul').length === 0) {
+                self._addError('<ul>' + msg + '</ul>');
+            } else {
+                $error.find('ul').append(msg);
+            }
             self.isError = true;
             self._updateFileDetails(0);
             $error.fadeIn(self.fadeDelay);
@@ -4868,7 +4873,7 @@
                     }
                     if (self.isAjaxUpload) {
                         self._raise('filebatchselected', [fm.stack]);
-                        if (fm.count() === 0) {
+                        if (fm.count() === 0 && !self.isError) {
                             self.reset();
                         }
                     } else {

File diff suppressed because it is too large
+ 0 - 0
js/fileinput.min.js


Some files were not shown because too many files changed in this diff