ソースを参照

Fix #245: Allow initial caption to be set without initial preview

Kartik Visweswaran 10 年 前
コミット
b84ed2e00a
3 ファイル変更23 行追加7 行削除
  1. 1 0
      CHANGE.md
  2. 22 7
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 1 - 0
CHANGE.md

@@ -8,6 +8,7 @@ version 4.1.9
 4. (enh #241): Enhancements to initial preview delete to perform validations before delete.
 5. (bug #243): Correct sending of `deleteExtraData`.
 6. (enh #244): Add Serbian translations.
+7. (enh #245): Allow initial caption to be set without initial preview.
 
 version 4.1.8
 =============

+ 22 - 7
js/fileinput.js

@@ -885,10 +885,14 @@
                 .repl('{other}', otherButtons);
         },
         initPreview: function (isInit) {
-            var self = this, cap, out;
+            var self = this, cap = self.initialCaption || '', out;
             if (!previewCache.count(self.id)) {
                 self.$preview.html('');
-                self.setCaption('');
+                if (isInit) {
+                    self.setCaption(cap);
+                } else {
+                    self.initCaption();
+                }
                 return;
             }
             out = previewCache.out(self.id);
@@ -904,6 +908,7 @@
                 resetProgress = function () {
                     if (self.$preview.find('.kv-file-remove').length === 0) {
                         self.reset();
+                        self.initialCaption = '';
                     }
                 };
             self.$preview.find('.kv-file-remove').each(function () {
@@ -1056,16 +1061,16 @@
                 });
                 self.$preview.html('');
                 cap = (!self.overwriteInitial && self.initialCaption.length > 0) ? self.initialCaption : '';
-                self.$caption.html(cap);
+                self.setCaption(cap);
                 self.setEllipsis();
                 self.$caption.attr('title', '');
                 addCss(self.$container, 'file-input-new');
             }
             if (self.$container.find('.file-preview-frame').length === 0) {
-                self.initialCaption = '';
-                self.$caption.html('');
+                if (!self.initCaption()) {
+                    self.$captionContainer.find('.kv-caption-icon').hide();
+                }
                 self.setEllipsis();
-                self.$captionContainer.find('.kv-caption-icon').hide();
             }
             self.hideFileIcon();
             self.raise('filecleared');
@@ -1080,7 +1085,7 @@
                 self.setCaption(out.caption);
             } else {
                 self.$preview.html('');
-                self.$caption.html('');
+                self.initCaption();
             }
         },
         reset: function () {
@@ -1888,6 +1893,16 @@
                 self.raise('fileimageloaded', previewId);
             });
         },
+        initCaption: function () {
+            var self = this, cap;
+            if (self.overwriteInitial) {
+                self.$caption.html('');
+                return false;
+            }
+            cap = self.initialCaption || '';
+            self.setCaption(cap);
+            return true;
+        },
         setCaption: function (content, isError) {
             var self = this, err = isError || false, title, out;
             if (isEmpty(content) || self.$caption.length === 0) {

ファイルの差分が大きいため隠しています
+ 0 - 0
js/fileinput.min.js


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません