Browse Source

Fix #1276: More correct validation of `previewContentTemplates`

Kartik Visweswaran 6 years ago
parent
commit
5c2f7f11cb
3 changed files with 32 additions and 25 deletions
  1. 5 2
      CHANGE.md
  2. 27 23
      js/fileinput.js
  3. 0 0
      js/fileinput.min.js

+ 5 - 2
CHANGE.md

@@ -1,10 +1,13 @@
 Change Log: `bootstrap-fileinput`
 Change Log: `bootstrap-fileinput`
 =================================
 =================================
 
 
-## version 4.4.9 (_under development_)
+## version 4.4.9
 
 
-**Date:** _work in process_
+**Date:** 25-Jul-2018
 
 
+- (bug #1276): More correct validation of `previewContentTemplates`.
+- (enh #1275): Update Farsi Translations.
+- (enh #1272, #1273): Add Hebrew Translations.
 - (enh #1269, #1270): Enhance auto orientation of images using piexif.js.
 - (enh #1269, #1270): Enhance auto orientation of images using piexif.js.
 - Enhance progress bar text styling.
 - Enhance progress bar text styling.
 - (enh #1254): Enhance PDF Preview on iOS devices via external PDF renderer (PDFJS).
 - (enh #1254): Enhance PDF Preview on iOS devices via external PDF renderer (PDFJS).

+ 27 - 23
js/fileinput.js

@@ -436,7 +436,7 @@
                 '  <span aria-hidden="true">&times;</span>\n' +
                 '  <span aria-hidden="true">&times;</span>\n' +
                 '</button>';
                 '</button>';
         },
         },
-        getRotation: function(value) {
+        getRotation: function (value) {
             switch (value) {
             switch (value) {
                 case 2:
                 case 2:
                     return 'rotateY(180deg)';
                     return 'rotateY(180deg)';
@@ -456,7 +456,7 @@
                     return '';
                     return '';
             }
             }
         },
         },
-        setTransform: function(el, val) {
+        setTransform: function (el, val) {
             if (!el) {
             if (!el) {
                 return;
                 return;
             }
             }
@@ -471,7 +471,7 @@
                 return;
                 return;
             }
             }
             var ev = 'load.fileinputimageorient';
             var ev = 'load.fileinputimageorient';
-            $img.off(ev).on(ev, function() {
+            $img.off(ev).on(ev, function () {
                 var img = $img.get(0), zoomImg = $zoomImg && $zoomImg.length ? $zoomImg.get(0) : null,
                 var img = $img.get(0), zoomImg = $zoomImg && $zoomImg.length ? $zoomImg.get(0) : null,
                     h = img.offsetHeight, w = img.offsetWidth, r = $h.getRotation(value);
                     h = img.offsetHeight, w = img.offsetWidth, r = $h.getRotation(value);
                 $img.data('orientation', value);
                 $img.data('orientation', value);
@@ -483,8 +483,7 @@
                     $h.setTransform(zoomImg, r);
                     $h.setTransform(zoomImg, r);
                     return;
                     return;
                 }
                 }
-                var offsetAngle = Math.atan(w / h), t = img.style.webkitTransform || img.style.transform || '',
-                    origFactor = Math.sqrt(Math.pow(h, 2) + Math.pow(w, 2)),
+                var offsetAngle = Math.atan(w / h), origFactor = Math.sqrt(Math.pow(h, 2) + Math.pow(w, 2)),
                     scale = !origFactor ? 1 : (h / Math.cos(Math.PI / 2 + offsetAngle)) / origFactor,
                     scale = !origFactor ? 1 : (h / Math.cos(Math.PI / 2 + offsetAngle)) / origFactor,
                     s = ' scale(' + Math.abs(scale) + ')';
                     s = ' scale(' + Math.abs(scale) + ')';
                 $h.setTransform(img, r + s);
                 $h.setTransform(img, r + s);
@@ -935,14 +934,14 @@
             self._initPreviewTemplates();
             self._initPreviewTemplates();
         },
         },
         _initPreviewTemplates: function () {
         _initPreviewTemplates: function () {
-            var self = this, cfg = self.defaults, tags = self.previewMarkupTags, tagBef, tagAft = tags.tagAfter;
-            $.each(cfg.previewContentTemplates, function (key, value) {
+            var self = this, tags = self.previewMarkupTags, tagBef, tagAft = tags.tagAfter;
+            $.each(self.previewContentTemplates, function (key, value) {
                 if ($h.isEmpty(self.previewTemplates[key])) {
                 if ($h.isEmpty(self.previewTemplates[key])) {
                     tagBef = tags.tagBefore2;
                     tagBef = tags.tagBefore2;
                     if (key === 'generic' || key === 'image' || key === 'html' || key === 'text') {
                     if (key === 'generic' || key === 'image' || key === 'html' || key === 'text') {
                         tagBef = tags.tagBefore1;
                         tagBef = tags.tagBefore1;
                     }
                     }
-                    if (self._isPdfRendered()) {
+                    if (self._isPdfRendered() && key === 'pdf') {
                         tagBef = tagBef.replace('kv-file-content', 'kv-file-content kv-pdf-rendered');
                         tagBef = tagBef.replace('kv-file-content', 'kv-file-content kv-pdf-rendered');
                     }
                     }
                     self.previewTemplates[key] = tagBef + value + tagAft;
                     self.previewTemplates[key] = tagBef + value + tagAft;
@@ -1132,8 +1131,8 @@
             };
             };
             self.previewCache.init();
             self.previewCache.init();
         },
         },
-        _isPdfRendered: function() {
-            var self = this, useLib = self.usePdfRenderer, 
+        _isPdfRendered: function () {
+            var self = this, useLib = self.usePdfRenderer,
                 flag = typeof useLib === "function" ? useLib() : !!useLib;
                 flag = typeof useLib === "function" ? useLib() : !!useLib;
             return flag && self.pdfRendererUrl;
             return flag && self.pdfRendererUrl;
         },
         },
@@ -1149,7 +1148,7 @@
             if (id) {
             if (id) {
                 msg = '"' + id + '": ' + msg;
                 msg = '"' + id + '": ' + msg;
             }
             }
-            msg = 'bootstrap-fileinput: ' +  msg;
+            msg = 'bootstrap-fileinput: ' + msg;
             if (typeof window.console.log !== "undefined") {
             if (typeof window.console.log !== "undefined") {
                 window.console.log(msg);
                 window.console.log(msg);
             } else {
             } else {
@@ -1401,7 +1400,7 @@
         },
         },
         _listen: function () {
         _listen: function () {
             var self = this, $el = self.$element, $form = self.$form, $cont = self.$container, fullScreenEvents;
             var self = this, $el = self.$element, $form = self.$form, $cont = self.$container, fullScreenEvents;
-            self._handler($el, 'click', function(e) {
+            self._handler($el, 'click', function (e) {
                 if ($el.hasClass('file-no-browse')) {
                 if ($el.hasClass('file-no-browse')) {
                     if ($el.data('zoneClicked')) {
                     if ($el.data('zoneClicked')) {
                         $el.data('zoneClicked', false);
                         $el.data('zoneClicked', false);
@@ -1819,7 +1818,6 @@
                 });
                 });
             }
             }
             $modal.data('previewId', pid);
             $modal.data('previewId', pid);
-            var $img = $body.find('img');
             self._handler($prev, 'click', function () {
             self._handler($prev, 'click', function () {
                 self._zoomSlideShow('prev', pid);
                 self._zoomSlideShow('prev', pid);
             });
             });
@@ -1911,10 +1909,10 @@
                 });
                 });
             });
             });
         },
         },
-        _inputFileCount: function() {
+        _inputFileCount: function () {
             return this.$element.get(0).files.length;
             return this.$element.get(0).files.length;
         },
         },
-        _refreshPreview: function() {
+        _refreshPreview: function () {
             var self = this, files;
             var self = this, files;
             if (!self._inputFileCount() || !self.showPreview || !self.isPreviewable) {
             if (!self._inputFileCount() || !self.showPreview || !self.isPreviewable) {
                 return;
                 return;
@@ -2962,6 +2960,7 @@
             }
             }
         },
         },
         _slugDefault: function (text) {
         _slugDefault: function (text) {
+            // noinspection RegExpRedundantEscape
             return $h.isEmpty(text) ? '' : String(text).replace(/[\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g, '_');
             return $h.isEmpty(text) ? '' : String(text).replace(/[\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g, '_');
         },
         },
         _updateFileDetails: function (numFiles) {
         _updateFileDetails: function (numFiles) {
@@ -3078,6 +3077,7 @@
                 return null;
                 return null;
             }
             }
             /** @namespace file.webkitRelativePath */
             /** @namespace file.webkitRelativePath */
+            /** @namespace file.fileName */
             relativePath = String(file.webkitRelativePath || file.fileName || file.name || null);
             relativePath = String(file.webkitRelativePath || file.fileName || file.name || null);
             if (!relativePath) {
             if (!relativePath) {
                 return null;
                 return null;
@@ -3143,7 +3143,7 @@
             self._showUploadError(msg, params);
             self._showUploadError(msg, params);
             self._setPreviewError($thumb, i, null);
             self._setPreviewError($thumb, i, null);
         },
         },
-        _getExifObj: function(iData) {
+        _getExifObj: function (iData) {
             var self = this, exifObj = null;
             var self = this, exifObj = null;
             try {
             try {
                 exifObj = window.piexif ? window.piexif.load(iData) : null;
                 exifObj = window.piexif ? window.piexif.load(iData) : null;
@@ -3155,10 +3155,10 @@
             }
             }
             return exifObj;
             return exifObj;
         },
         },
-        _validateImageOrientation: function($img, file, previewId, caption, ftype, fsize, iData) {
-            var self = this, css, exifObj = self._getExifObj(iData), value = null;
+        _validateImageOrientation: function ($img, file, previewId, caption, ftype, fsize, iData) {
+            var self = this, exifObj = self._getExifObj(iData), value = null;
             if ($img.length && self.autoOrientImage && exifObj) {
             if ($img.length && self.autoOrientImage && exifObj) {
-                value = exifObj["0th"][piexif.ImageIFD.Orientation];
+                value = exifObj["0th"][piexif.ImageIFD.Orientation]; // jshint ignore:line
             }
             }
             if (!value) {
             if (!value) {
                 self._validateImage(previewId, caption, ftype, fsize, iData, exifObj);
                 self._validateImage(previewId, caption, ftype, fsize, iData, exifObj);
@@ -3318,7 +3318,7 @@
             $h.addCss($zone, 'clickable');
             $h.addCss($zone, 'clickable');
             $zone.attr('tabindex', -1);
             $zone.attr('tabindex', -1);
             self._handler($zone, 'click', function (e) {
             self._handler($zone, 'click', function (e) {
-                var $tar = $(e.target), $el = self.$element;
+                var $tar = $(e.target);
                 if (!$(self.elErrorContainer + ':visible').length &&
                 if (!$(self.elErrorContainer + ':visible').length &&
                     (!$tar.parents('.file-preview-thumbnails').length || $tar.parents('.file-default-preview').length)) {
                     (!$tar.parents('.file-preview-thumbnails').length || $tar.parents('.file-default-preview').length)) {
                     self.$element.data('zoneClicked', true).trigger('click');
                     self.$element.data('zoneClicked', true).trigger('click');
@@ -3785,7 +3785,8 @@
                 var node = ctr + i, previewId = previewInitId + "-" + node, file = files[i], fSizeKB, j, msg,
                 var node = ctr + i, previewId = previewInitId + "-" + node, file = files[i], fSizeKB, j, msg,
                     fnText = settings.text, fnImage = settings.image, fnHtml = settings.html, typ, chk, typ1, typ2,
                     fnText = settings.text, fnImage = settings.image, fnHtml = settings.html, typ, chk, typ1, typ2,
                     caption = file && file.name ? self.slug(file.name) : '', fileSize = (file && file.size || 0) / 1000,
                     caption = file && file.name ? self.slug(file.name) : '', fileSize = (file && file.size || 0) / 1000,
-                    fileExtExpr = '', previewData = file ? $h.objUrl.createObjectURL(file) : null, fileCount = 0, strTypes = '',
+                    fileExtExpr = '', previewData = file ? $h.objUrl.createObjectURL(file) : null, fileCount = 0,
+                    strTypes = '',
                     func, knownTypes = 0, isText, isHtml, isImage, txtFlag, processFileLoaded = function () {
                     func, knownTypes = 0, isText, isHtml, isImage, txtFlag, processFileLoaded = function () {
                         var msg = msgProgress.setTokens({
                         var msg = msgProgress.setTokens({
                             'index': i + 1,
                             'index': i + 1,
@@ -4183,7 +4184,7 @@
                 options = $.extend(true, {}, self.options, options);
                 options = $.extend(true, {}, self.options, options);
             }
             }
             self._init(options, true);
             self._init(options, true);
-            self._listen();        
+            self._listen();
             return $el;
             return $el;
         },
         },
         zoom: function (frameId) {
         zoom: function (frameId) {
@@ -4310,6 +4311,8 @@
             borderless: 'btn btn-sm btn-kv btn-default btn-outline-secondary',
             borderless: 'btn btn-sm btn-kv btn-default btn-outline-secondary',
             close: 'btn btn-sm btn-kv btn-default btn-outline-secondary'
             close: 'btn btn-sm btn-kv btn-default btn-outline-secondary'
         },
         },
+        previewTemplates: {},
+        previewContentTemplates: {},
         preferIconicPreview: false,
         preferIconicPreview: false,
         preferIconicZoomPreview: false,
         preferIconicZoomPreview: false,
         allowedPreviewTypes: undefined,
         allowedPreviewTypes: undefined,
@@ -4383,6 +4386,7 @@
         reversePreviewOrder: false
         reversePreviewOrder: false
     };
     };
 
 
+    // noinspection HtmlUnknownAttribute
     $.fn.fileinputLocales.en = {
     $.fn.fileinputLocales.en = {
         fileSingle: 'file',
         fileSingle: 'file',
         filePlural: 'files',
         filePlural: 'files',
@@ -4456,7 +4460,7 @@
             borderless: 'Toggle borderless mode',
             borderless: 'Toggle borderless mode',
             close: 'Close detailed preview'
             close: 'Close detailed preview'
         },
         },
-        usePdfRenderer: function() {
+        usePdfRenderer: function () {
             return !!navigator.userAgent.match(/(iPod|iPhone|iPad)/);
             return !!navigator.userAgent.match(/(iPod|iPhone|iPad)/);
         },
         },
         pdfRendererUrl: '',
         pdfRendererUrl: '',

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