Skip to content

Commit 5c2f7f1

Browse files
committed
Fix #1276: More correct validation of previewContentTemplates
1 parent eccf511 commit 5c2f7f1

File tree

3 files changed

+35
-28
lines changed

3 files changed

+35
-28
lines changed

CHANGE.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
Change Log: `bootstrap-fileinput`
22
=================================
33

4-
## version 4.4.9 (_under development_)
4+
## version 4.4.9
55

6-
**Date:** _work in process_
6+
**Date:** 25-Jul-2018
77

8+
- (bug #1276): More correct validation of `previewContentTemplates`.
9+
- (enh #1275): Update Farsi Translations.
10+
- (enh #1272, #1273): Add Hebrew Translations.
811
- (enh #1269, #1270): Enhance auto orientation of images using piexif.js.
912
- Enhance progress bar text styling.
1013
- (enh #1254): Enhance PDF Preview on iOS devices via external PDF renderer (PDFJS).

js/fileinput.js

+27-23
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,7 @@
436436
' <span aria-hidden="true">&times;</span>\n' +
437437
'</button>';
438438
},
439-
getRotation: function(value) {
439+
getRotation: function (value) {
440440
switch (value) {
441441
case 2:
442442
return 'rotateY(180deg)';
@@ -456,7 +456,7 @@
456456
return '';
457457
}
458458
},
459-
setTransform: function(el, val) {
459+
setTransform: function (el, val) {
460460
if (!el) {
461461
return;
462462
}
@@ -471,7 +471,7 @@
471471
return;
472472
}
473473
var ev = 'load.fileinputimageorient';
474-
$img.off(ev).on(ev, function() {
474+
$img.off(ev).on(ev, function () {
475475
var img = $img.get(0), zoomImg = $zoomImg && $zoomImg.length ? $zoomImg.get(0) : null,
476476
h = img.offsetHeight, w = img.offsetWidth, r = $h.getRotation(value);
477477
$img.data('orientation', value);
@@ -483,8 +483,7 @@
483483
$h.setTransform(zoomImg, r);
484484
return;
485485
}
486-
var offsetAngle = Math.atan(w / h), t = img.style.webkitTransform || img.style.transform || '',
487-
origFactor = Math.sqrt(Math.pow(h, 2) + Math.pow(w, 2)),
486+
var offsetAngle = Math.atan(w / h), origFactor = Math.sqrt(Math.pow(h, 2) + Math.pow(w, 2)),
488487
scale = !origFactor ? 1 : (h / Math.cos(Math.PI / 2 + offsetAngle)) / origFactor,
489488
s = ' scale(' + Math.abs(scale) + ')';
490489
$h.setTransform(img, r + s);
@@ -935,14 +934,14 @@
935934
self._initPreviewTemplates();
936935
},
937936
_initPreviewTemplates: function () {
938-
var self = this, cfg = self.defaults, tags = self.previewMarkupTags, tagBef, tagAft = tags.tagAfter;
939-
$.each(cfg.previewContentTemplates, function (key, value) {
937+
var self = this, tags = self.previewMarkupTags, tagBef, tagAft = tags.tagAfter;
938+
$.each(self.previewContentTemplates, function (key, value) {
940939
if ($h.isEmpty(self.previewTemplates[key])) {
941940
tagBef = tags.tagBefore2;
942941
if (key === 'generic' || key === 'image' || key === 'html' || key === 'text') {
943942
tagBef = tags.tagBefore1;
944943
}
945-
if (self._isPdfRendered()) {
944+
if (self._isPdfRendered() && key === 'pdf') {
946945
tagBef = tagBef.replace('kv-file-content', 'kv-file-content kv-pdf-rendered');
947946
}
948947
self.previewTemplates[key] = tagBef + value + tagAft;
@@ -1132,8 +1131,8 @@
11321131
};
11331132
self.previewCache.init();
11341133
},
1135-
_isPdfRendered: function() {
1136-
var self = this, useLib = self.usePdfRenderer,
1134+
_isPdfRendered: function () {
1135+
var self = this, useLib = self.usePdfRenderer,
11371136
flag = typeof useLib === "function" ? useLib() : !!useLib;
11381137
return flag && self.pdfRendererUrl;
11391138
},
@@ -1149,7 +1148,7 @@
11491148
if (id) {
11501149
msg = '"' + id + '": ' + msg;
11511150
}
1152-
msg = 'bootstrap-fileinput: ' + msg;
1151+
msg = 'bootstrap-fileinput: ' + msg;
11531152
if (typeof window.console.log !== "undefined") {
11541153
window.console.log(msg);
11551154
} else {
@@ -1401,7 +1400,7 @@
14011400
},
14021401
_listen: function () {
14031402
var self = this, $el = self.$element, $form = self.$form, $cont = self.$container, fullScreenEvents;
1404-
self._handler($el, 'click', function(e) {
1403+
self._handler($el, 'click', function (e) {
14051404
if ($el.hasClass('file-no-browse')) {
14061405
if ($el.data('zoneClicked')) {
14071406
$el.data('zoneClicked', false);
@@ -1819,7 +1818,6 @@
18191818
});
18201819
}
18211820
$modal.data('previewId', pid);
1822-
var $img = $body.find('img');
18231821
self._handler($prev, 'click', function () {
18241822
self._zoomSlideShow('prev', pid);
18251823
});
@@ -1911,10 +1909,10 @@
19111909
});
19121910
});
19131911
},
1914-
_inputFileCount: function() {
1912+
_inputFileCount: function () {
19151913
return this.$element.get(0).files.length;
19161914
},
1917-
_refreshPreview: function() {
1915+
_refreshPreview: function () {
19181916
var self = this, files;
19191917
if (!self._inputFileCount() || !self.showPreview || !self.isPreviewable) {
19201918
return;
@@ -2962,6 +2960,7 @@
29622960
}
29632961
},
29642962
_slugDefault: function (text) {
2963+
// noinspection RegExpRedundantEscape
29652964
return $h.isEmpty(text) ? '' : String(text).replace(/[\[\]\/\{}:;#%=\(\)\*\+\?\\\^\$\|<>&"']/g, '_');
29662965
},
29672966
_updateFileDetails: function (numFiles) {
@@ -3078,6 +3077,7 @@
30783077
return null;
30793078
}
30803079
/** @namespace file.webkitRelativePath */
3080+
/** @namespace file.fileName */
30813081
relativePath = String(file.webkitRelativePath || file.fileName || file.name || null);
30823082
if (!relativePath) {
30833083
return null;
@@ -3143,7 +3143,7 @@
31433143
self._showUploadError(msg, params);
31443144
self._setPreviewError($thumb, i, null);
31453145
},
3146-
_getExifObj: function(iData) {
3146+
_getExifObj: function (iData) {
31473147
var self = this, exifObj = null;
31483148
try {
31493149
exifObj = window.piexif ? window.piexif.load(iData) : null;
@@ -3155,10 +3155,10 @@
31553155
}
31563156
return exifObj;
31573157
},
3158-
_validateImageOrientation: function($img, file, previewId, caption, ftype, fsize, iData) {
3159-
var self = this, css, exifObj = self._getExifObj(iData), value = null;
3158+
_validateImageOrientation: function ($img, file, previewId, caption, ftype, fsize, iData) {
3159+
var self = this, exifObj = self._getExifObj(iData), value = null;
31603160
if ($img.length && self.autoOrientImage && exifObj) {
3161-
value = exifObj["0th"][piexif.ImageIFD.Orientation];
3161+
value = exifObj["0th"][piexif.ImageIFD.Orientation]; // jshint ignore:line
31623162
}
31633163
if (!value) {
31643164
self._validateImage(previewId, caption, ftype, fsize, iData, exifObj);
@@ -3318,7 +3318,7 @@
33183318
$h.addCss($zone, 'clickable');
33193319
$zone.attr('tabindex', -1);
33203320
self._handler($zone, 'click', function (e) {
3321-
var $tar = $(e.target), $el = self.$element;
3321+
var $tar = $(e.target);
33223322
if (!$(self.elErrorContainer + ':visible').length &&
33233323
(!$tar.parents('.file-preview-thumbnails').length || $tar.parents('.file-default-preview').length)) {
33243324
self.$element.data('zoneClicked', true).trigger('click');
@@ -3785,7 +3785,8 @@
37853785
var node = ctr + i, previewId = previewInitId + "-" + node, file = files[i], fSizeKB, j, msg,
37863786
fnText = settings.text, fnImage = settings.image, fnHtml = settings.html, typ, chk, typ1, typ2,
37873787
caption = file && file.name ? self.slug(file.name) : '', fileSize = (file && file.size || 0) / 1000,
3788-
fileExtExpr = '', previewData = file ? $h.objUrl.createObjectURL(file) : null, fileCount = 0, strTypes = '',
3788+
fileExtExpr = '', previewData = file ? $h.objUrl.createObjectURL(file) : null, fileCount = 0,
3789+
strTypes = '',
37893790
func, knownTypes = 0, isText, isHtml, isImage, txtFlag, processFileLoaded = function () {
37903791
var msg = msgProgress.setTokens({
37913792
'index': i + 1,
@@ -4183,7 +4184,7 @@
41834184
options = $.extend(true, {}, self.options, options);
41844185
}
41854186
self._init(options, true);
4186-
self._listen();
4187+
self._listen();
41874188
return $el;
41884189
},
41894190
zoom: function (frameId) {
@@ -4310,6 +4311,8 @@
43104311
borderless: 'btn btn-sm btn-kv btn-default btn-outline-secondary',
43114312
close: 'btn btn-sm btn-kv btn-default btn-outline-secondary'
43124313
},
4314+
previewTemplates: {},
4315+
previewContentTemplates: {},
43134316
preferIconicPreview: false,
43144317
preferIconicZoomPreview: false,
43154318
allowedPreviewTypes: undefined,
@@ -4383,6 +4386,7 @@
43834386
reversePreviewOrder: false
43844387
};
43854388

4389+
// noinspection HtmlUnknownAttribute
43864390
$.fn.fileinputLocales.en = {
43874391
fileSingle: 'file',
43884392
filePlural: 'files',
@@ -4456,7 +4460,7 @@
44564460
borderless: 'Toggle borderless mode',
44574461
close: 'Close detailed preview'
44584462
},
4459-
usePdfRenderer: function() {
4463+
usePdfRenderer: function () {
44604464
return !!navigator.userAgent.match(/(iPod|iPhone|iPad)/);
44614465
},
44624466
pdfRendererUrl: '',

0 commit comments

Comments
 (0)