JS-uploader can't download, don't try

This commit is contained in:
onli 2015-01-18 21:00:11 +01:00
parent dcb044fb28
commit 4b83f8dcce

View File

@ -1392,100 +1392,102 @@ $(function() {
successIcon = document.createElement('span'); successIcon = document.createElement('span');
successIcon.className = 'uploadIcon icon-ok-circled'; successIcon.className = 'uploadIcon icon-ok-circled';
$('#uploadform').submit(function(event) { $('#uploadform').submit(function(event) {
event.preventDefault(); if (! $('#imageurl').val()) {
$('.uploadform_userfile').each(function() { event.preventDefault();
var files = this.files; $('.uploadform_userfile').each(function() {
for (var i = 0; i < files.length; i++) { var files = this.files;
var reader = new FileReader(); for (var i = 0; i < files.length; i++) {
reader.file = files[i]; var reader = new FileReader();
reader.onload = function(readerEvent) { reader.file = files[i];
var image = new Image(); reader.onload = function(readerEvent) {
var file = this.file; var image = new Image();
image.onload = function (imageEvent) { var file = this.file;
var canvas = document.createElement('canvas'), image.onload = function (imageEvent) {
max_width = {if {serendipity_getConfigVar key='maxImgWidth'}}{serendipity_getConfigVar key='maxImgWidth'}{else}0{/if}, var canvas = document.createElement('canvas'),
max_height = {if {serendipity_getConfigVar key='maxImgHeight'}}{serendipity_getConfigVar key='maxImgHeight'}{else}0{/if}, max_width = {if {serendipity_getConfigVar key='maxImgWidth'}}{serendipity_getConfigVar key='maxImgWidth'}{else}0{/if},
width = image.width, max_height = {if {serendipity_getConfigVar key='maxImgHeight'}}{serendipity_getConfigVar key='maxImgHeight'}{else}0{/if},
height = image.height; width = image.width,
height = image.height;
if (max_width > 0 && width > max_width) { if (max_width > 0 && width > max_width) {
height *= max_width / width; height *= max_width / width;
width = max_width; width = max_width;
} }
if (max_height > 0 && height > max_height) { if (max_height > 0 && height > max_height) {
width *= max_height / height; width *= max_height / height;
height = max_height; height = max_height;
} }
canvas.width = width; canvas.width = width;
canvas.height = height; canvas.height = height;
canvas.getContext('2d').drawImage(image, 0, 0, width, height); canvas.getContext('2d').drawImage(image, 0, 0, width, height);
var data = new FormData(); var data = new FormData();
data.append('serendipity[action]', 'admin'); data.append('serendipity[action]', 'admin');
data.append('serendipity[adminModule]', 'media'); data.append('serendipity[adminModule]', 'media');
data.append('serendipity[adminAction]', 'add'); data.append('serendipity[adminAction]', 'add');
data.append('serendipity[token]', $('input[name*="serendipity[token]"]').val()); data.append('serendipity[token]', $('input[name*="serendipity[token]"]').val());
data.append('serendipity[target_filename][1]', $('input[name*="serendipity[target_filename][1]"]').val()); data.append('serendipity[target_filename][1]', $('input[name*="serendipity[target_filename][1]"]').val());
data.append('serendipity[all_authors]', true); data.append('serendipity[all_authors]', true);
var type = file.type; var type = file.type;
if (type == "image/bmp") { if (type == "image/bmp") {
{* bmp is not supported *} {* bmp is not supported *}
type = "image/png"; type = "image/png";
data.append('serendipity[target_filename][1]', file.name.replace('.bmp', '.png')); data.append('serendipity[target_filename][1]', file.name.replace('.bmp', '.png'));
} }
canvas.toBlob(function(blob) { canvas.toBlob(function(blob) {
data.append('serendipity[userfile][1]', blob, file.name); data.append('serendipity[userfile][1]', blob, file.name);
var progress = document.createElement('progress'); var progress = document.createElement('progress');
var progressContainer = document.createElement('span'); var progressContainer = document.createElement('span');
progressContainer.className = 'msg_notice'; progressContainer.className = 'msg_notice';
progress.max = 100; progress.max = 100;
progress.value = 0; progress.value = 0;
$(progressContainer).append(progressIcon); $(progressContainer).append(progressIcon);
progressContainer.innerHTML += file.name + ": " progressContainer.innerHTML += file.name + ": "
$(progressContainer).append(progress); $(progressContainer).append(progress);
$('.form_buttons').append(progressContainer); $('.form_buttons').append(progressContainer);
$.ajax({ $.ajax({
type: 'post', type: 'post',
url: $('#uploadform').attr('action'), url: $('#uploadform').attr('action'),
data: data, data: data,
cache: false, cache: false,
processData: false, processData: false,
contentType: false, contentType: false,
xhrFields: { xhrFields: {
onprogress: function (e) { onprogress: function (e) {
if (e.lengthComputable) { if (e.lengthComputable) {
progress.value = e.loaded / e.total * 100; progress.value = e.loaded / e.total * 100;
}
} }
} }
} }).done(function(data) {
}).done(function(data) { progress.value = 100;
progress.value = 100; progressContainer.className = "msg_success";
progressContainer.className = "msg_success"; $(progressContainer).find('.uploadIcon').replaceWith(successIcon.cloneNode(true));
$(progressContainer).find('.uploadIcon').replaceWith(successIcon.cloneNode(true)); }).fail(function(data) {
}).fail(function(data) { progressContainer.className = "msg_error";
progressContainer.className = "msg_error"; progress.disabled = true;
progress.disabled = true; progressContainer.innerHTML += "{$CONST.ERROR_UNKNOWN_NOUPLOAD}";
progressContainer.innerHTML += "{$CONST.ERROR_UNKNOWN_NOUPLOAD}"; $(progressContainer).find('.uploadIcon').replaceWith(errorIcon.cloneNode(true));
$(progressContainer).find('.uploadIcon').replaceWith(errorIcon.cloneNode(true)); }).always(function() {
}).always(function() { if ($('#ml_link').length == 0) {
if ($('#ml_link').length == 0) { var mlLink = document.createElement('a');
var mlLink = document.createElement('a'); mlLink.id = "ml_link";
mlLink.id = "ml_link"; mlLink.className = "button_link";
mlLink.className = "button_link"; mlLink.href = $('#uploadform').attr('action');
mlLink.href = $('#uploadform').attr('action'); mlLink.innerHTML = "{$CONST.MEDIA_LIBRARY}";
mlLink.innerHTML = "{$CONST.MEDIA_LIBRARY}"; $(mlLink).hide();
$(mlLink).hide(); $('.form_buttons').prepend(mlLink);
$('.form_buttons').prepend(mlLink); $(mlLink).fadeIn();
$(mlLink).fadeIn(); }
} });
}); }, type);
}, type); }
image.src = readerEvent.target.result;
} }
image.src = readerEvent.target.result; reader.readAsDataURL(reader.file);
} }
reader.readAsDataURL(reader.file); });
} }
});
}); });
} }
{/if} {/if}