|
@@ -355,7 +355,7 @@
|
|
|
},
|
|
|
dataURI2Blob: function (dataURI) {
|
|
|
var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder ||
|
|
|
- window.MSBlobBuilder, canBlob = $h.hasBlobSupport(), byteStr, arrayBuffer, intArray, i, mimeStr, bb,
|
|
|
+ window.MSBlobBuilder, canBlob = $h.hasBlobSupport(), byteStr, arrayBuffer, intArray, i, mimeStr, bb,
|
|
|
canProceed = (canBlob || BlobBuilder) && window.atob && window.ArrayBuffer && window.Uint8Array;
|
|
|
if (!canProceed) {
|
|
|
return null;
|
|
@@ -1596,7 +1596,7 @@
|
|
|
return;
|
|
|
}
|
|
|
var fd, outData, fnBefore, fnSuccess, fnError, fnComplete, slice = file.slice ? 'slice' :
|
|
|
- (file.mozSlice ? 'mozSlice' : (file.webkitSlice ? 'webkitSlice' : 'slice')),
|
|
|
+ (file.mozSlice ? 'mozSlice' : (file.webkitSlice ? 'webkitSlice' : 'slice')),
|
|
|
blob = file[slice](chunkSize * index, chunkSize * (index + 1));
|
|
|
fd = new FormData();
|
|
|
f = fm.stack[id];
|
|
@@ -2351,8 +2351,8 @@
|
|
|
_showFileError: function (msg, params, event) {
|
|
|
var self = this, $error = self.$errorContainer, ev = event || 'fileuploaderror',
|
|
|
fId = params && params.fileId || '', e = params && params.id ?
|
|
|
- '<li data-thumb-id="' + params.id + '" data-file-id="' + fId + '">' + msg + '</li>' :
|
|
|
- '<li>' + msg + '</li>';
|
|
|
+ '<li data-thumb-id="' + params.id + '" data-file-id="' + fId + '">' + msg + '</li>' :
|
|
|
+ '<li>' + msg + '</li>';
|
|
|
|
|
|
if ($error.find('ul').length === 0) {
|
|
|
self._addError('<ul>' + e + '</ul>');
|
|
@@ -2573,7 +2573,7 @@
|
|
|
_autoFitContent: function () {
|
|
|
var width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
|
|
|
self = this, config = width < 400 ? (self.previewSettingsSmall || self.defaults.previewSettingsSmall) :
|
|
|
- (self.previewSettings || self.defaults.previewSettings), sel;
|
|
|
+ (self.previewSettings || self.defaults.previewSettings), sel;
|
|
|
$.each(config, function (cat, settings) {
|
|
|
sel = '.file-preview-frame .file-preview-' + cat;
|
|
|
self.$preview.find(sel + '.kv-preview-data,' + sel + ' .kv-preview-data').css(settings);
|
|
@@ -4582,20 +4582,23 @@
|
|
|
$h.setHtml($btn, icon);
|
|
|
},
|
|
|
_checkDimensions: function (i, chk, $img, $thumb, fname, type, params) {
|
|
|
- var self = this, msg, dim, tag = chk === 'Small' ? 'min' : 'max', limit = self[tag + 'Image' + type],
|
|
|
- $imgEl, isValid;
|
|
|
+ var self = this, msg, dim, tag = chk === 'Small' ? 'min' : 'max', attr = tag + 'Image' + type,
|
|
|
+ limit = self[attr], $imgEl, isValid;
|
|
|
if ($h.isEmpty(limit) || !$img.length) {
|
|
|
- return;
|
|
|
+ return true;
|
|
|
}
|
|
|
$imgEl = $img[0];
|
|
|
dim = (type === 'Width') ? $imgEl.naturalWidth || $imgEl.width : $imgEl.naturalHeight || $imgEl.height;
|
|
|
isValid = chk === 'Small' ? dim >= limit : dim <= limit;
|
|
|
if (isValid) {
|
|
|
- return;
|
|
|
+ return true;
|
|
|
}
|
|
|
msg = self['msgImage' + type + chk].setTokens({'name': fname, 'size': limit});
|
|
|
self._showFileError(msg, params);
|
|
|
self._setPreviewError($thumb);
|
|
|
+ self.fileManager.remove($thumb);
|
|
|
+ self._clearFileInput();
|
|
|
+ return isValid;
|
|
|
},
|
|
|
_getExifObj: function (data) {
|
|
|
var self = this, exifObj, error = $h.logMessages.exifWarning;
|
|
@@ -4686,32 +4689,41 @@
|
|
|
i = $thumb.attr('data-fileindex'), $img = $thumb.find('img');
|
|
|
fname = fname || 'Untitled';
|
|
|
$img.one('load', function () {
|
|
|
+ if ($img.data('validated')) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ $img.data('validated', true);
|
|
|
w1 = $thumb.width();
|
|
|
w2 = $preview.width();
|
|
|
if (w1 > w2) {
|
|
|
$img.css('width', '100%');
|
|
|
}
|
|
|
params = {ind: i, id: previewId, fileId: fileId};
|
|
|
- self._checkDimensions(i, 'Small', $img, $thumb, fname, 'Width', params);
|
|
|
- self._checkDimensions(i, 'Small', $img, $thumb, fname, 'Height', params);
|
|
|
- if (!self.resizeImage) {
|
|
|
- self._checkDimensions(i, 'Large', $img, $thumb, fname, 'Width', params);
|
|
|
- self._checkDimensions(i, 'Large', $img, $thumb, fname, 'Height', params);
|
|
|
- }
|
|
|
- self._raise('fileimageloaded', [previewId]);
|
|
|
- self.fileManager.addImage(fileId, {
|
|
|
- ind: i,
|
|
|
- img: $img,
|
|
|
- thumb: $thumb,
|
|
|
- pid: previewId,
|
|
|
- typ: ftype,
|
|
|
- siz: fsize,
|
|
|
- validated: false,
|
|
|
- imgData: iData,
|
|
|
- exifObj: exifObj
|
|
|
- });
|
|
|
- $thumb.data('exif', exifObj);
|
|
|
- self._validateAllImages();
|
|
|
+ setTimeout(function () {
|
|
|
+ var isValidWidth, isValidHeight;
|
|
|
+ isValidWidth = self._checkDimensions(i, 'Small', $img, $thumb, fname, 'Width', params);
|
|
|
+ isValidHeight = self._checkDimensions(i, 'Small', $img, $thumb, fname, 'Height', params);
|
|
|
+ if (!self.resizeImage) {
|
|
|
+ isValidWidth = isValidWidth ? self._checkDimensions(i, 'Large', $img, $thumb, fname, 'Width', params) : false;
|
|
|
+ isValidHeight = isValidHeight ? self._checkDimensions(i, 'Large', $img, $thumb, fname, 'Height', params) : false;
|
|
|
+ }
|
|
|
+ self._raise('fileimageloaded', [previewId]);
|
|
|
+ $thumb.data('exif', exifObj);
|
|
|
+ if (isValidWidth && isValidHeight) {
|
|
|
+ self.fileManager.addImage(fileId, {
|
|
|
+ ind: i,
|
|
|
+ img: $img,
|
|
|
+ thumb: $thumb,
|
|
|
+ pid: previewId,
|
|
|
+ typ: ftype,
|
|
|
+ siz: fsize,
|
|
|
+ validated: false,
|
|
|
+ imgData: iData,
|
|
|
+ exifObj: exifObj
|
|
|
+ });
|
|
|
+ self._validateAllImages();
|
|
|
+ }
|
|
|
+ }, self.processDelay);
|
|
|
}).one('error', function () {
|
|
|
self._raise('fileimageloaderror', [previewId]);
|
|
|
});
|
|
@@ -5367,7 +5379,7 @@
|
|
|
fileExt = self.allowedFileExtensions, strExt = $h.isEmpty(fileExt) ? '' : fileExt.join(', '),
|
|
|
throwError = function (msg, file, previewId, index, fileId) {
|
|
|
var $thumb, p1 = $.extend(true, {}, self._getOutData(null, {}, {}, files),
|
|
|
- {id: previewId, index: index, fileId: fileId}),
|
|
|
+ {id: previewId, index: index, fileId: fileId}),
|
|
|
p2 = {id: previewId, index: index, fileId: fileId, file: file, files: files};
|
|
|
self._previewDefault(file, true);
|
|
|
$thumb = self._getFrame(previewId, true);
|