Skip to content

Commit 6625b13

Browse files
committed
Standardize error formats and add new error msg properties fix #1393 fix #1394
1 parent 47e42c0 commit 6625b13

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+176
-82
lines changed

CHANGE.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@ Change Log: `bootstrap-fileinput`
55

66
**Date:** 18-Apr-2019
77

8+
- (enh #1394): New error message properties (updates to locales).
9+
- `msgProgressError`
10+
- `msgDeleteError`
11+
- `msgUploadError` (modification)
12+
- (enh #1393): Standardize error alert formats for ajax deletes.
813
- (enh #1136): Allow proper retry of error uploads based on `retryErrorUploads` setting.
914
- Better management of console log messages.
1015
- (bug #1391): Correct resumable upload progress update behavior when `showPreview` is `false`.
@@ -603,7 +608,7 @@ Change Log: `bootstrap-fileinput`
603608
- (enh #481): Universal Module Definition for use with CommonJS, AMD or browser globals.
604609
- (enh #474): Upload via button within each preview thumbnail skips last file for async uploads.
605610
- (enh #477): Fix IE10 specific styling bug for file input block button.
606-
- (enh #465): Add Català translations.
611+
- (enh #465): Add CatalĂ  translations.
607612
- (enh #462): Responsive buttons and new property `buttonLabelClass`.
608613
- (enh #460): Update CSS selectors prefix to start with `file`.
609614
- (enh #454): Update Turkish Translations.

js/fileinput.js

+43-36
Original file line numberDiff line numberDiff line change
@@ -1098,8 +1098,8 @@
10981098
} else {
10991099
$btnUpload.removeAttr('disabled');
11001100
}
1101-
self._setProgress(101, $prog, self.msgUploadError);
1102-
self._setProgress(101, self.$progress, self.msgUploadError);
1101+
self._setProgress(101, $prog, self.msgProgressError);
1102+
self._setProgress(101, self.$progress, self.msgProgressError);
11031103
self.cancelling = true;
11041104
}
11051105
if (!self.$errorContainer.find('li[data-file-id="' + params.fileId + '"]').length) {
@@ -1108,7 +1108,7 @@
11081108
max: self.resumableUploadOptions.maxRetries,
11091109
error: rm.error
11101110
});
1111-
self._showUploadError(msg, params);
1111+
self._showFileError(msg, params);
11121112
}
11131113
}
11141114
if (fm.isProcessed()) {
@@ -2043,7 +2043,7 @@
20432043
$error.fadeIn(800);
20442044
self._raise('filefoldererror', [folders, msg]);
20452045
},
2046-
_showUploadError: function (msg, params, event) {
2046+
_showFileError: function (msg, params, event) {
20472047
var self = this, $error = self.$errorContainer, ev = event || 'fileuploaderror',
20482048
fId = params && params.fileId || '', e = params && params.id ?
20492049
'<li data-thumb-id="' + params.id + '" data-file-id="' + fId + '">' + msg + '</li>' : '<li>' + msg + '</li>';
@@ -3157,8 +3157,8 @@
31573157
var self = this, fm = self.fileManager, count = fm.count(), formdata = new FormData(), outData,
31583158
previewId = self.previewInitId + '-' + i, $thumb, chkComplete, $btnUpload, $btnDelete,
31593159
hasPostData = count > 0 || !$.isEmptyObject(self.uploadExtraData), uploadFailed,
3160-
$prog, fnBefore, fnSuccess, fnComplete, fnError, updateUploadLog,
3161-
fileObj = fm.getFile(id), rm = self.resumableManager,
3160+
$prog, fnBefore, fnSuccess, fnComplete, fnError, updateUploadLog, op = self.ajaxOperations.uploadThumb,
3161+
errMsg, fileObj = fm.getFile(id), rm = self.resumableManager,
31623162
params = {id: previewId, index: i, fileId: id}, fileName = self.fileManager.getFileName(id, true);
31633163
if (self.enableResumableUpload) {
31643164
self.paused = false;
@@ -3269,7 +3269,8 @@
32693269
}
32703270
} else {
32713271
uploadFailed = true;
3272-
self._showUploadError(data.error, params);
3272+
errMsg = self._parseError(op, jqXHR, self.msgUploadError, self.fileManager.getFileName(id));
3273+
self._showFileError(errMsg, params);
32733274
self._setPreviewError($thumb, true);
32743275
if (!self.retryErrorUploads) {
32753276
$btnUpload.hide();
@@ -3298,8 +3299,7 @@
32983299
}, self.processDelay);
32993300
};
33003301
fnError = function (jqXHR, textStatus, errorThrown) {
3301-
var op = self.ajaxOperations.uploadThumb,
3302-
errMsg = self._parseError(op, jqXHR, errorThrown, self.fileManager.getFileName(id));
3302+
errMsg = self._parseError(op, jqXHR, errorThrown, self.fileManager.getFileName(id));
33033303
uploadFailed = true;
33043304
setTimeout(function () {
33053305
if (isBatch) {
@@ -3313,7 +3313,7 @@
33133313
$.extend(true, params, self._getOutData(formdata, jqXHR));
33143314
self._setProgress(101, $prog, self.msgAjaxProgressError.replace('{operation}', op));
33153315
self._setProgress(101, $thumb.find('.file-thumb-progress'), self.msgUploadError);
3316-
self._showUploadError(errMsg, params);
3316+
self._showFileError(errMsg, params);
33173317
}, self.processDelay);
33183318
};
33193319
formdata.append(self.uploadFileAttr, fileObj.file, fileName);
@@ -3322,8 +3322,8 @@
33223322
},
33233323
_uploadBatch: function () {
33243324
var self = this, fm = self.fileManager, total = fm.total(), params = {}, fnBefore, fnSuccess, fnError,
3325-
fnComplete, hasPostData = total > 0 || !$.isEmptyObject(self.uploadExtraData),
3326-
setAllUploaded, formdata = new FormData();
3325+
fnComplete, hasPostData = total > 0 || !$.isEmptyObject(self.uploadExtraData), errMsg,
3326+
setAllUploaded, formdata = new FormData(), op = self.ajaxOperations.uploadBatch;
33273327
if (total === 0 || !hasPostData || self._abort(params)) {
33283328
return;
33293329
}
@@ -3409,7 +3409,8 @@
34093409
});
34103410
self._initUploadSuccess(data);
34113411
}
3412-
self._showUploadError(data.error, outData, 'filebatchuploaderror');
3412+
errMsg = self._parseError(op, jqXHR, self.msgUploadError);
3413+
self._showFileError(errMsg, outData, 'filebatchuploaderror');
34133414
self._setProgress(101, self.$progress, self.msgUploadError);
34143415
}
34153416
};
@@ -3420,9 +3421,9 @@
34203421
self._raise('filebatchuploadcomplete', [self.fileManager.stack, self._getExtraData()]);
34213422
};
34223423
fnError = function (jqXHR, textStatus, errorThrown) {
3423-
var outData = self._getOutData(formdata, jqXHR), op = self.ajaxOperations.uploadBatch,
3424-
errMsg = self._parseError(op, jqXHR, errorThrown);
3425-
self._showUploadError(errMsg, outData, 'filebatchuploaderror');
3424+
var outData = self._getOutData(formdata, jqXHR);
3425+
errMsg = self._parseError(op, jqXHR, errorThrown);
3426+
self._showFileError(errMsg, outData, 'filebatchuploaderror');
34263427
self.uploadFileCount = total - 1;
34273428
if (!self.showPreview) {
34283429
return;
@@ -3449,7 +3450,8 @@
34493450
self._ajaxSubmit(fnBefore, fnSuccess, fnComplete, fnError, formdata);
34503451
},
34513452
_uploadExtraOnly: function () {
3452-
var self = this, params = {}, fnBefore, fnSuccess, fnComplete, fnError, formdata = new FormData();
3453+
var self = this, params = {}, fnBefore, fnSuccess, fnComplete, fnError, formdata = new FormData(), errMsg,
3454+
op = self.ajaxOperations.uploadExtra;
34533455
if (self._abort(params)) {
34543456
return;
34553457
}
@@ -3473,7 +3475,8 @@
34733475
self._initUploadSuccess(data);
34743476
self._setProgress(101);
34753477
} else {
3476-
self._showUploadError(data.error, outData, 'filebatchuploaderror');
3478+
errMsg = self._parseError(op, jqXHR, self.msgUploadError);
3479+
self._showFileError(errMsg, outData, 'filebatchuploaderror');
34773480
}
34783481
};
34793482
fnComplete = function () {
@@ -3482,10 +3485,10 @@
34823485
self._raise('filebatchuploadcomplete', [self.fileManager.stack, self._getExtraData()]);
34833486
};
34843487
fnError = function (jqXHR, textStatus, errorThrown) {
3485-
var outData = self._getOutData(formdata, jqXHR), op = self.ajaxOperations.uploadExtra,
3486-
errMsg = self._parseError(op, jqXHR, errorThrown);
3488+
var outData = self._getOutData(formdata, jqXHR);
3489+
errMsg = self._parseError(op, jqXHR, errorThrown);
34873490
params.data = outData;
3488-
self._showUploadError(errMsg, outData, 'filebatchuploaderror');
3491+
self._showFileError(errMsg, outData, 'filebatchuploaderror');
34893492
self._setProgress(101, self.$progress, self.msgAjaxProgressError.replace('{operation}', op));
34903493
};
34913494
self._ajaxSubmit(fnBefore, fnSuccess, fnComplete, fnError, formdata);
@@ -3587,19 +3590,20 @@
35873590
};
35883591
self._initZoomButton();
35893592
$preview.find(btnRemove).each(function () {
3590-
var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key'),
3591-
fnBefore, fnSuccess, fnError;
3593+
var $el = $(this), vUrl = $el.data('url') || self.deleteUrl, vKey = $el.data('key'), errMsg, fnBefore,
3594+
fnSuccess, fnError, op = self.ajaxOperations.deleteThumb;
35923595
if ($h.isEmpty(vUrl) || vKey === undefined) {
35933596
return;
35943597
}
35953598
if (typeof vUrl === 'function') {
35963599
vUrl = vUrl();
35973600
}
3598-
var $frame = $el.closest($h.FRAMES), cache = self.previewCache.data,
3599-
settings, params, index = $frame.attr('data-fileindex'), config, extraData;
3601+
var $frame = $el.closest($h.FRAMES), cache = self.previewCache.data, settings, params, config,
3602+
fileName, extraData, index = $frame.attr('data-fileindex');
36003603
index = parseInt(index.replace('init_', ''));
36013604
config = $h.isEmpty(cache.config) && $h.isEmpty(cache.config[index]) ? null : cache.config[index];
36023605
extraData = $h.isEmpty(config) || $h.isEmpty(config.extra) ? deleteExtraData : config.extra;
3606+
fileName = config.filename || config.caption || '';
36033607
if (typeof extraData === 'function') {
36043608
extraData = extraData();
36053609
}
@@ -3620,7 +3624,8 @@
36203624
if (!$h.isEmpty(data) && !$h.isEmpty(data.error)) {
36213625
params.jqXHR = jqXHR;
36223626
params.response = data;
3623-
self._showError(data.error, params, 'filedeleteerror');
3627+
errMsg = self._parseError(op, jqXHR, self.msgDeleteError, fileName);
3628+
self._showFileError(errMsg, params, 'filedeleteerror');
36243629
$frame.removeClass('file-uploading');
36253630
$el.removeClass('disabled ' + origClass).addClass(errClass);
36263631
resetProgress();
@@ -3642,10 +3647,10 @@
36423647
});
36433648
};
36443649
fnError = function (jqXHR, textStatus, errorThrown) {
3645-
var op = self.ajaxOperations.deleteThumb, errMsg = self._parseError(op, jqXHR, errorThrown);
3650+
var errMsg = self._parseError(op, jqXHR, errorThrown, fileName);
36463651
params.jqXHR = jqXHR;
36473652
params.response = {};
3648-
self._showError(errMsg, params, 'filedeleteerror');
3653+
self._showFileError(errMsg, params, 'filedeleteerror');
36493654
$frame.removeClass('file-uploading');
36503655
$el.removeClass('disabled ' + origClass).addClass(errClass);
36513656
resetProgress();
@@ -4110,7 +4115,7 @@
41104115
return;
41114116
}
41124117
msg = self['msgImage' + type + chk].setTokens({'name': fname, 'size': limit});
4113-
self._showUploadError(msg, params);
4118+
self._showFileError(msg, params);
41144119
self._setPreviewError($thumb);
41154120
},
41164121
_getExifObj: function (data) {
@@ -4213,7 +4218,7 @@
42134218
$thumb = config.thumb, throwError, msg, exifObj = config.exifObj, exifStr, file, params, evParams;
42144219
throwError = function (msg, params, ev) {
42154220
if (self.isAjaxUpload) {
4216-
self._showUploadError(msg, params, ev);
4221+
self._showFileError(msg, params, ev);
42174222
} else {
42184223
self._showError(msg, params, ev);
42194224
}
@@ -4578,7 +4583,7 @@
45784583
throwError = function (mesg, file, previewId, index) {
45794584
var p1 = $.extend(true, {}, self._getOutData(null, {}, {}, files), {id: previewId, index: index}),
45804585
p2 = {id: previewId, index: index, file: file, files: files};
4581-
return isAjaxUpload ? self._showUploadError(mesg, p1) : self._showError(mesg, p2);
4586+
return isAjaxUpload ? self._showFileError(mesg, p1) : self._showError(mesg, p2);
45824587
},
45834588
maxCountCheck = function (n, m) {
45844589
var msg = self.msgFilesTooMany.replace('{m}', m).replace('{n}', n);
@@ -4640,7 +4645,7 @@
46404645
data.abortData = self.ajaxAborted.data || {};
46414646
data.abortMessage = self.ajaxAborted.message;
46424647
self._setProgress(101, self.$progress, self.msgCancelled);
4643-
self._showUploadError(self.ajaxAborted.message, data, 'filecustomerror');
4648+
self._showFileError(self.ajaxAborted.message, data, 'filecustomerror');
46444649
self.cancel();
46454650
return true;
46464651
}
@@ -4670,7 +4675,7 @@
46704675
cnt = cnt || 0;
46714676
if (self.required && !self.getFilesCount()) {
46724677
self.$errorContainer.html('');
4673-
self._showUploadError(self.msgFileRequired);
4678+
self._showFileError(self.msgFileRequired);
46744679
return false;
46754680
}
46764681
if (self.minFileCount > 0 && self._getFileCount(cnt) < self.minFileCount) {
@@ -4730,7 +4735,7 @@
47304735
}
47314736
self._initFileActions();
47324737
$thumb.remove();
4733-
self.isError = self.isAjaxUpload ? self._showUploadError(msg, p1) : self._showError(msg, p2);
4738+
self.isError = self.isAjaxUpload ? self._showFileError(msg, p1) : self._showError(msg, p2);
47344739
self._updateFileDetails(numFiles);
47354740
};
47364741
self.fileManager.clearImages();
@@ -5136,7 +5141,7 @@
51365141
self.lastProgress = 0;
51375142
self._resetUpload();
51385143
if (totLen === 0 && !hasExtraData) {
5139-
self._showUploadError(self.msgUploadEmpty);
5144+
self._showFileError(self.msgUploadEmpty);
51405145
return;
51415146
}
51425147
self.cancelling = false;
@@ -5527,7 +5532,9 @@
55275532
msgUploadEnd: 'Done',
55285533
msgUploadResume: 'Resuming upload...',
55295534
msgUploadEmpty: 'No valid data available for upload.',
5530-
msgUploadError: 'Error',
5535+
msgUploadError: 'Upload Error',
5536+
msgDeleteError: 'Delete Error',
5537+
msgProgressError: 'Error',
55315538
msgValidationError: 'Validation Error',
55325539
msgLoading: 'Loading file {index} of {files} &hellip;',
55335540
msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.',

js/fileinput.min.js

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/locales/LANG.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
msgUploadEnd: 'Done',
5959
msgUploadResume: 'Resuming upload...',
6060
msgUploadEmpty: 'No valid data available for upload.',
61-
msgUploadError: 'Error',
61+
msgUploadError: 'Upload Error',
62+
msgDeleteError: 'Delete Error',
63+
msgProgressError: 'Error',
6264
msgValidationError: 'Validation Error',
6365
msgLoading: 'Loading file {index} of {files} &hellip;',
6466
msgProgress: 'Loading file {index} of {files} - {name} - {percent}% completed.',

js/locales/ar.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@
5959
msgUploadEnd: 'Done',
6060
msgUploadResume: 'Resuming upload...',
6161
msgUploadEmpty: 'No valid data available for upload.',
62-
msgUploadError: 'Error',
62+
msgUploadError: 'Upload Error',
63+
msgDeleteError: 'Delete Error',
64+
msgProgressError: 'Error',
6365
msgValidationError: 'خطأ التحقق من صحة',
6466
msgLoading: 'تحميل ملف {index} من {files} &hellip;',
6567
msgProgress: 'تحميل ملف {index} من {files} - {name} - {percent}% منتهي.',

js/locales/az.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@
5959
msgUploadEnd: 'Fayl(lar) yükləndi',
6060
msgUploadResume: 'Resuming upload...',
6161
msgUploadEmpty: 'Yükləmə üçün verilmiş məlumatlar yanlışdır',
62-
msgUploadError: 'Error',
62+
msgUploadError: 'Upload Error',
63+
msgDeleteError: 'Delete Error',
64+
msgProgressError: 'Error',
6365
msgValidationError: 'Yoxlama nəticəsi səhvir',
6466
msgLoading: '{files} fayldan {index} yüklənir &hellip;',
6567
msgProgress: '{files} fayldan {index} - {name} - {percent}% yükləndi.',

js/locales/bg.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
msgUploadEnd: 'Done',
5959
msgUploadResume: 'Resuming upload...',
6060
msgUploadEmpty: 'No valid data available for upload.',
61-
msgUploadError: 'Error',
61+
msgUploadError: 'Upload Error',
62+
msgDeleteError: 'Delete Error',
63+
msgProgressError: 'Error',
6264
msgValidationError: 'утвърждаване грешка',
6365
msgLoading: 'Зареждане на файл {index} от общо {files} &hellip;',
6466
msgProgress: 'Зареждане на файл {index} от общо {files} - {name} - {percent}% завършени.',

js/locales/ca.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
msgUploadEnd: 'Done',
5959
msgUploadResume: 'Resuming upload...',
6060
msgUploadEmpty: 'No valid data available for upload.',
61-
msgUploadError: 'Error',
61+
msgUploadError: 'Upload Error',
62+
msgDeleteError: 'Delete Error',
63+
msgProgressError: 'Error',
6264
msgValidationError: 'Error de validació',
6365
msgLoading: 'Pujant fitxer {index} de {files} &hellip;',
6466
msgProgress: 'Pujant fitxer {index} de {files} - {name} - {percent}% completat.',

js/locales/cr.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@
5959
msgUploadEnd: 'Done',
6060
msgUploadResume: 'Resuming upload...',
6161
msgUploadEmpty: 'No valid data available for upload.',
62-
msgUploadError: 'Error',
62+
msgUploadError: 'Upload Error',
63+
msgDeleteError: 'Delete Error',
64+
msgProgressError: 'Error',
6365
msgValidationError: 'Provjera pogrešaka',
6466
msgLoading: 'Učitavanje datoteke {index} od {files} &hellip;',
6567
msgProgress: 'Učitavanje datoteke {index} od {files} - {name} - {percent}% završeno.',

js/locales/cs.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
msgUploadEnd: 'Hotovo',
5959
msgUploadResume: 'Resuming upload...',
6060
msgUploadEmpty: 'Pro nahrávání nejsou k dispozici žádné platné údaje.',
61-
msgUploadError: 'Chyba',
61+
msgUploadError: 'Upload Error',
62+
msgDeleteError: 'Delete Error',
63+
msgProgressError: 'Chyba',
6264
msgValidationError: 'Chyba ověření',
6365
msgLoading: 'Nahrávání souboru {index} z {files} &hellip;',
6466
msgProgress: 'Nahrávání souboru {index} z {files} - {name} - {percent}% dokončeno.',

js/locales/da.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@
5858
msgUploadEnd: 'Udf&oslash;rt',
5959
msgUploadResume: 'Resuming upload...',
6060
msgUploadEmpty: 'Ingen gyldig data tilg&aelig;ngelig til upload.',
61-
msgUploadError: 'Fejl',
61+
msgUploadError: 'Upload Error',
62+
msgDeleteError: 'Delete Error',
63+
msgProgressError: 'Fejl',
6264
msgValidationError: 'Valideringsfejl',
6365
msgLoading: 'Henter fil {index} af {files} &hellip;',
6466
msgProgress: 'Henter fil {index} af {files} - {name} - {percent}% f&aelig;rdiggjort.',

0 commit comments

Comments
 (0)