Commit 415d558c authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

Js: gère et affiche mieux les erreurs.

Showing with 36 additions and 25 deletions
+36 -25
...@@ -47,17 +47,28 @@ ...@@ -47,17 +47,28 @@
options.acceptFileTypes = new RegExp('^' + options.acceptFileTypes + '$'); options.acceptFileTypes = new RegExp('^' + options.acceptFileTypes + '$');
} }
var updateDisplay = function() { var showError = function(entry, message) {
var hasEntry = false; var $this = $(entry);
$entries.find('.fileinput-entry').each(function() { if(message) {
var data = $(this).data('data'), $this.find('.error').text(message);
inError = !!(data && data.files.error); }
$(this).toggleClass('alert alert-danger', inError); $this.addClass('alert alert-danger');
$(this).find('.error').toggle(inError); $this.find('.error').show();
hasEntry = true; $this.find('.icon')
}); .removeClass('fa-circle-o-notch fa-spin fa-file-o')
$button.toggle(options.multiple || !hasEntry); .addClass('fa-exclamation-triangle');
}; },
updateDisplay = function() {
var hasEntry = false;
$entries.find('.fileinput-entry').each(function() {
var data = $(this).data('data');
if(data && data.files.error) {
showError(this, data.files[0].error);
}
hasEntry = true;
});
$button.toggle(options.multiple || !hasEntry);
};
$this.find('.size').each(function() { $this.find('.size').each(function() {
$(this).text(formatFileSize($(this).text(), $(this).data('size-precision'))); $(this).text(formatFileSize($(this).text(), $(this).data('size-precision')));
...@@ -83,7 +94,7 @@ ...@@ -83,7 +94,7 @@
row.find('.name').text(file.name); row.find('.name').text(file.name);
row.find('.size').text(formatFileSize(file.size)); row.find('.size').text(formatFileSize(file.size));
if (file.error) { if (file.error) {
row.find('.error').text(file.error); showError(row, file.error);
} }
rows = rows.add(row); rows = rows.add(row);
}); });
...@@ -96,7 +107,7 @@ ...@@ -96,7 +107,7 @@
row.find('.size').text(formatFileSize(file.size)); row.find('.size').text(formatFileSize(file.size));
if (file.error) { if (file.error) {
row.find('.name').text(file.name); row.find('.name').text(file.name);
row.find('.error').text(file.error); showError(row, file.error);
} else { } else {
row.find('.name a') row.find('.name a')
.text(file.name) .text(file.name)
...@@ -123,19 +134,19 @@ ...@@ -123,19 +134,19 @@
createUrl, createUrl,
{ file: { name: file.name, size: file.size, type: file.type, lastModified: file.lastModified } }, { file: { name: file.name, size: file.size, type: file.type, lastModified: file.lastModified } },
function(response) { function(response) {
if(response.status == 201) { file.icon = response.icon;
file.icon = response.icon; data.url = response.put_url + csrfQuery;
data.url = response.put_url + csrfQuery; data.delete_url = response.delete_url;
data.delete_url = response.delete_url; data.delete_type = response.delete_type;
data.delete_type = response.delete_type; data.jqXHR = $this.fileupload('send', data);
data.jqXHR = $this.fileupload('send', data);
} else {
file.error = response.message || ('Error #' + response.status);
data.files.error = true;
data.context.find('.error').text(file.error);
}
} }
); )
.fail(function(jqXHR, textStatus, errorThrown) {
file.error = textStatus === "error" ? errorThrown : ('Error #' + jqXHR.status);
data.files.error = true;
showError(data.context, file.error);
})
.always(updateDisplay);
return false; return false;
}, },
progress: function (e, data) { progress: function (e, data) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment