فهرست منبع

Fix #259 & Fix #263: Polish translations and enhance parsing file preview thumbs

Kartik Visweswaran 10 سال پیش
والد
کامیت
41d5757ffb
4فایلهای تغییر یافته به همراه40 افزوده شده و 35 حذف شده
  1. 2 0
      CHANGE.md
  2. 35 32
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js
  4. 3 3
      js/fileinput_locale_pl.js

+ 2 - 0
CHANGE.md

@@ -18,6 +18,8 @@ version 4.1.9
 14. (bug #253): Fix initial preview delete cache initialization.
 14. (bug #253): Fix initial preview delete cache initialization.
 15. (bug #257): Fix upload single to replace thumbs correctly.
 15. (bug #257): Fix upload single to replace thumbs correctly.
 16. (enh #258): Enhance messages to include file plural and single.
 16. (enh #258): Enhance messages to include file plural and single.
+17. (enh #259): Add Polish translations.
+18. (enh #263): Enhance parsing of file preview thumbnails and actions.
 
 
 version 4.1.8
 version 4.1.8
 =============
 =============

+ 35 - 32
js/fileinput.js

@@ -41,15 +41,15 @@
                     tags: obj.initialPreviewThumbTags,
                     tags: obj.initialPreviewThumbTags,
                     delimiter: obj.initialPreviewDelimiter,
                     delimiter: obj.initialPreviewDelimiter,
                     template: obj.previewGenericTemplate,
                     template: obj.previewGenericTemplate,
-                    msg: function(n) {
+                    msg: function (n) {
                         return obj.getMsgSelected(n);
                         return obj.getMsgSelected(n);
                     },
                     },
                     initId: obj.previewInitId,
                     initId: obj.previewInitId,
                     footer: obj.getLayoutTemplate('footer'),
                     footer: obj.getLayoutTemplate('footer'),
                     isDelete: obj.initialPreviewShowDelete,
                     isDelete: obj.initialPreviewShowDelete,
                     caption: obj.initialCaption,
                     caption: obj.initialCaption,
-                    actions: function (showUpload, showDelete, disabled, url, key, index) {
-                        return obj.renderFileActions(showUpload, showDelete, disabled, url, key, index);
+                    actions: function (showUpload, showDelete, disabled, url, key) {
+                        return obj.renderFileActions(showUpload, showDelete, disabled, url, key);
                     }
                     }
                 };
                 };
             },
             },
@@ -59,8 +59,8 @@
                 });
                 });
             },
             },
             count: function (id, all) {
             count: function (id, all) {
-                return !!previewCache.data[id] && !!previewCache.data[id].content ? 
-                    (all ? previewCache.data[id].content.length : previewCache.fetch(id).length): 0;
+                return !!previewCache.data[id] && !!previewCache.data[id].content ?
+                    (all ? previewCache.data[id].content.length : previewCache.fetch(id).length) : 0;
             },
             },
             get: function (id, i, isDisabled) {
             get: function (id, i, isDisabled) {
                 var ind = 'init_' + i, data = previewCache.data[id],
                 var ind = 'init_' + i, data = previewCache.data[id],
@@ -156,7 +156,7 @@
                     url = isSet('url', config) ? config.url : false,
                     url = isSet('url', config) ? config.url : false,
                     key = isSet('key', config) ? config.key : null,
                     key = isSet('key', config) ? config.key : null,
                     disabled = (url === false) && isDisabled,
                     disabled = (url === false) && isDisabled,
-                    actions = data.isDelete ? data.actions(false, true, disabled, url, key, i) : '',
+                    actions = data.isDelete ? data.actions(false, true, disabled, url, key) : '',
                     footer = data.footer.repl('{actions}', actions);
                     footer = data.footer.repl('{actions}', actions);
                 return footer
                 return footer
                     .repl('{caption}', caption)
                     .repl('{caption}', caption)
@@ -165,7 +165,6 @@
                     .repl('{indicatorTitle}', '');
                     .repl('{indicatorTitle}', '');
             }
             }
         },
         },
-        PREVIEW_FRAMES = '.file-preview-frame:not(.file-preview-initial)',
         getNum = function (num, def) {
         getNum = function (num, def) {
             def = def || 0;
             def = def || 0;
             if (typeof num === "number") {
             if (typeof num === "number") {
@@ -730,7 +729,7 @@
         },
         },
         resetFileStack: function () {
         resetFileStack: function () {
             var self = this, i = 0, newstack = [];
             var self = this, i = 0, newstack = [];
-            self.$preview.find(PREVIEW_FRAMES).each(function () {
+            self.getThumbs().each(function () {
                 var $thumb = $(this), ind = $thumb.attr('data-fileindex'),
                 var $thumb = $(this), ind = $thumb.attr('data-fileindex'),
                     file = self.filestack[ind];
                     file = self.filestack[ind];
                 if (ind === -1) {
                 if (ind === -1) {
@@ -840,7 +839,7 @@
                 });
                 });
             });
             });
         },
         },
-        getMsgSelected: function(n) {
+        getMsgSelected: function (n) {
             var self = this, strFiles = n === 1 ? self.fileSingle : self.filePlural;
             var self = this, strFiles = n === 1 ? self.fileSingle : self.filePlural;
             return self.msgSelected.repl('{n}', n).repl('{files}', strFiles);
             return self.msgSelected.repl('{n}', n).repl('{files}', strFiles);
         },
         },
@@ -848,7 +847,7 @@
             var self = this, config = self.fileActionSettings, footer, out,
             var self = this, config = self.fileActionSettings, footer, out,
                 template = self.getLayoutTemplate('footer');
                 template = self.getLayoutTemplate('footer');
             if (self.isUploadable) {
             if (self.isUploadable) {
-                footer = template.repl('{actions}', self.renderFileActions(true, true, false, false, false, false));
+                footer = template.repl('{actions}', self.renderFileActions(true, true, false, false, false));
                 out = footer.repl('{caption}', caption)
                 out = footer.repl('{caption}', caption)
                     .repl('{width}', width)
                     .repl('{width}', width)
                     .repl('{indicator}', config.indicatorNew)
                     .repl('{indicator}', config.indicatorNew)
@@ -863,7 +862,7 @@
             out = replaceTags(out, self.previewThumbTags);
             out = replaceTags(out, self.previewThumbTags);
             return out;
             return out;
         },
         },
-        renderFileActions: function (showUpload, showDelete, disabled, url, key, index) {
+        renderFileActions: function (showUpload, showDelete, disabled, url, key) {
             if (!showUpload && !showDelete) {
             if (!showUpload && !showDelete) {
                 return '';
                 return '';
             }
             }
@@ -920,14 +919,14 @@
                         self.initialCaption = '';
                         self.initialCaption = '';
                     }
                     }
                 };
                 };
-                
+
             self.$preview.find('.kv-file-remove').each(function () {
             self.$preview.find('.kv-file-remove').each(function () {
                 var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key');
                 var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key');
                 if (isEmpty(vUrl) || vKey === undefined) {
                 if (isEmpty(vUrl) || vKey === undefined) {
                     return;
                     return;
                 }
                 }
-                var $frame = $el.closest('.file-preview-frame'), cache = previewCache.data[self.id], 
-                    settings, params,index = $frame.data('fileindex'), config, extraData;
+                var $frame = $el.closest('.file-preview-frame'), cache = previewCache.data[self.id],
+                    settings, params, index = $frame.data('fileindex'), config, extraData;
                 index = parseInt(index.replace('init_', ''));
                 index = parseInt(index.replace('init_', ''));
                 config = isEmpty(cache.config) && isEmpty(cache.config[index]) ? null : cache.config[index];
                 config = isEmpty(cache.config) && isEmpty(cache.config[index]) ? null : cache.config[index];
                 extraData = isEmpty(config) || isEmpty(config.extra) ? deleteExtraData : config.extra;
                 extraData = isEmpty(config) || isEmpty(config.extra) ? deleteExtraData : config.extra;
@@ -948,14 +947,14 @@
                         } else {
                         } else {
                             addCss($frame, 'file-uploading');
                             addCss($frame, 'file-uploading');
                             addCss($el, 'disabled');
                             addCss($el, 'disabled');
-                        }                            
+                        }
                     },
                     },
                     success: function (data, textStatus, jqXHR) {
                     success: function (data, textStatus, jqXHR) {
                         var n, cap;
                         var n, cap;
                         if (data === undefined || data.error === undefined) {
                         if (data === undefined || data.error === undefined) {
                             previewCache.unset(self.id, index);
                             previewCache.unset(self.id, index);
-                            n = previewCache.count(self.id),
-                            cap = n > 0? self.getMsgSelected(n) : '';
+                            n = previewCache.count(self.id);
+                            cap = n > 0 ? self.getMsgSelected(n) : '';
                             self.raise('filedeleted', [vKey, jqXHR, extraData]);
                             self.raise('filedeleted', [vKey, jqXHR, extraData]);
                             self.setCaption(cap);
                             self.setCaption(cap);
                         } else {
                         } else {
@@ -1046,7 +1045,7 @@
                     xhr[i].abort();
                     xhr[i].abort();
                 }
                 }
             }
             }
-            self.$preview.find(PREVIEW_FRAMES).each(function () {
+            self.getThumbs().each(function () {
                 var $thumb = $(this), ind = $thumb.attr('data-fileindex');
                 var $thumb = $(this), ind = $thumb.attr('data-fileindex');
                 $thumb.removeClass('file-uploading');
                 $thumb.removeClass('file-uploading');
                 if (self.filestack[ind] !== undefined) {
                 if (self.filestack[ind] !== undefined) {
@@ -1071,7 +1070,7 @@
                 self.initPreviewDeletes();
                 self.initPreviewDeletes();
                 self.$container.removeClass('file-input-new');
                 self.$container.removeClass('file-input-new');
             } else {
             } else {
-                self.$preview.find(PREVIEW_FRAMES).each(function () {
+                self.getThumbs().each(function () {
                     self.clearObjects($(this));
                     self.clearObjects($(this));
                 });
                 });
                 self.$preview.html('');
                 self.$preview.html('');
@@ -1135,6 +1134,10 @@
             self.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").removeAttr("disabled");
             self.$container.find(".btn-file, .fileinput-remove, .kv-fileinput-upload").removeAttr("disabled");
             self.initDragDrop();
             self.initDragDrop();
         },
         },
+        getThumbs: function (css) {
+            css = css || '';
+            return this.$preview.find('.file-preview-frame:not(.file-preview-initial)' + css);
+        },
         getExtraData: function () {
         getExtraData: function () {
             var self = this, data = self.uploadExtraData;
             var self = this, data = self.uploadExtraData;
             if (typeof self.uploadExtraData === "function") {
             if (typeof self.uploadExtraData === "function") {
@@ -1235,12 +1238,12 @@
                 return;
                 return;
             }
             }
             chkComplete = function () {
             chkComplete = function () {
-                var $thumbs = self.$preview.find(PREVIEW_FRAMES + '.file-uploading');
+                var $thumbs = self.getThumbs('.file-uploading');
                 if ($thumbs.length > 0 || self.fileBatchCompleted) {
                 if ($thumbs.length > 0 || self.fileBatchCompleted) {
                     return;
                     return;
                 }
                 }
                 self.fileBatchCompleted = true;
                 self.fileBatchCompleted = true;
-                setTimeout(function() {
+                setTimeout(function () {
                     previewCache.set(self.id, self.uploadCache.content, self.uploadCache.config, self.uploadCache.tags,
                     previewCache.set(self.id, self.uploadCache.content, self.uploadCache.config, self.uploadCache.tags,
                         self.uploadCache.append);
                         self.uploadCache.append);
                     if (self.hasInitData) {
                     if (self.hasInitData) {
@@ -1353,7 +1356,7 @@
                 $btnDelete.removeAttr('disabled');
                 $btnDelete.removeAttr('disabled');
             };
             };
             setAllUploaded = function () {
             setAllUploaded = function () {
-                $.each(files, function (key, data) {
+                $.each(files, function (key) {
                     self.filestack[key] = undefined;
                     self.filestack[key] = undefined;
                 });
                 });
                 self.clearFileInput();
                 self.clearFileInput();
@@ -1362,7 +1365,7 @@
                 self.lock();
                 self.lock();
                 var outData = self.getOutData(jqXHR);
                 var outData = self.getOutData(jqXHR);
                 if (self.showPreview) {
                 if (self.showPreview) {
-                    self.$preview.find(PREVIEW_FRAMES).each(function () {
+                    self.getThumbs().each(function () {
                         var $thumb = $(this), $btnUpload = $thumb.find('.kv-file-upload'), $btnDelete = $thumb.find('.kv-file-remove');
                         var $thumb = $(this), $btnUpload = $thumb.find('.kv-file-upload'), $btnDelete = $thumb.find('.kv-file-remove');
                         addCss($thumb, 'file-uploading');
                         addCss($thumb, 'file-uploading');
                         $btnUpload.attr('disabled', true);
                         $btnUpload.attr('disabled', true);
@@ -1375,15 +1378,15 @@
                 }
                 }
             };
             };
             fnSuccess = function (data, textStatus, jqXHR) {
             fnSuccess = function (data, textStatus, jqXHR) {
-                var outData = self.getOutData(jqXHR, data),
+                var outData = self.getOutData(jqXHR, data), $thumbs = self.getThumbs(),
                     keys = isEmpty(data.errorkeys) ? [] : data.errorkeys;
                     keys = isEmpty(data.errorkeys) ? [] : data.errorkeys;
                 if (data.error === undefined || isEmpty(data.error)) {
                 if (data.error === undefined || isEmpty(data.error)) {
                     self.raise('filebatchuploadsuccess', [outData]);
                     self.raise('filebatchuploadsuccess', [outData]);
                     setAllUploaded();
                     setAllUploaded();
                     if (self.showPreview) {
                     if (self.showPreview) {
-                        self.$preview.find('.kv-file-upload').hide();
-                        self.$preview.find('.kv-file-remove').hide();
-                        self.$preview.find(PREVIEW_FRAMES).each(function () {
+                        $thumbs.find('.kv-file-upload').hide();
+                        $thumbs.find('.kv-file-remove').hide();
+                        $thumbs.each(function () {
                             var $thumb = $(this), key = $thumb.attr('data-fileindex');
                             var $thumb = $(this), key = $thumb.attr('data-fileindex');
                             setIndicator(key, 'indicatorSuccess', 'indicatorSuccessTitle');
                             setIndicator(key, 'indicatorSuccess', 'indicatorSuccessTitle');
                             enableActions(key);
                             enableActions(key);
@@ -1394,7 +1397,7 @@
                     }
                     }
                 } else {
                 } else {
                     if (self.showPreview) {
                     if (self.showPreview) {
-                        self.$preview.find(PREVIEW_FRAMES).each(function () {
+                        $thumbs.each(function () {
                             var $thumb = $(this), key = parseInt($thumb.attr('data-fileindex'), 10);
                             var $thumb = $(this), key = parseInt($thumb.attr('data-fileindex'), 10);
                             enableActions(key);
                             enableActions(key);
                             if (keys.length === 0) {
                             if (keys.length === 0) {
@@ -1428,16 +1431,16 @@
                 if (!self.showPreview) {
                 if (!self.showPreview) {
                     return;
                     return;
                 }
                 }
-                self.$preview.find(PREVIEW_FRAMES).each(function () {
+                self.getThumbs().each(function () {
                     var $thumb = $(this), key = $thumb.attr('data-fileindex');
                     var $thumb = $(this), key = $thumb.attr('data-fileindex');
                     $thumb.removeClass('file-uploading');
                     $thumb.removeClass('file-uploading');
                     if (self.filestack[key] !== undefined) {
                     if (self.filestack[key] !== undefined) {
                         setIndicator(key, 'indicatorError', 'indicatorErrorTitle');
                         setIndicator(key, 'indicatorError', 'indicatorErrorTitle');
                     }
                     }
                 });
                 });
-                self.$preview.find(PREVIEW_FRAMES).removeClass('file-uploading');
-                self.$preview.find(PREVIEW_FRAMES + ' .kv-file-upload').removeAttr('disabled');
-                self.$preview.find(PREVIEW_FRAMES + ' .kv-file-delete').removeAttr('disabled');
+                self.getThumbs().removeClass('file-uploading');
+                self.getThumbs(' .kv-file-upload').removeAttr('disabled');
+                self.getThumbs(' .kv-file-delete').removeAttr('disabled');
             };
             };
             $.each(files, function (key, data) {
             $.each(files, function (key, data) {
                 if (!isEmpty(files[key])) {
                 if (!isEmpty(files[key])) {

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
js/fileinput.min.js


+ 3 - 3
js/fileinput_locale_pl.js

@@ -11,7 +11,7 @@
 (function ($) {
 (function ($) {
     "use strict";
     "use strict";
 
 
-    $.fn.fileinput.locales._LANG_ = {
+    $.fn.fileinput.locales.pl = {
         fileSingle: 'plik',
         fileSingle: 'plik',
         filePlural: 'pliki',
         filePlural: 'pliki',
         browseLabel: 'Przeglądaj …',
         browseLabel: 'Przeglądaj …',
@@ -34,10 +34,10 @@
         msgValidationError: 'Błąd podczas przesyłania pliku.',
         msgValidationError: 'Błąd podczas przesyłania pliku.',
         msgLoading: 'Wczytywanie pliku {index} z {files} …',
         msgLoading: 'Wczytywanie pliku {index} z {files} …',
         msgProgress: 'Wczytywanie pliku {index} z {files} - {name} - {percent}% zakończone.',
         msgProgress: 'Wczytywanie pliku {index} z {files} - {name} - {percent}% zakończone.',
-        msgSelected: '{n} wybranych plików',
+        msgSelected: '{n} {files} zaznaczonych',
         msgFoldersNotAllowed: 'Metodą przeciągnij i upuść, można przenosić tylko pliki. Pominięto {n} katalogów.',
         msgFoldersNotAllowed: 'Metodą przeciągnij i upuść, można przenosić tylko pliki. Pominięto {n} katalogów.',
         dropZoneTitle: 'Przeciągnij i upuść pliki tu …'
         dropZoneTitle: 'Przeciągnij i upuść pliki tu …'
     };
     };
 
 
-    $.extend($.fn.fileinput.defaults, $.fn.fileinput.locales._LANG_);
+    $.extend($.fn.fileinput.defaults, $.fn.fileinput.locales.pl);
 })(window.jQuery);
 })(window.jQuery);

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است