Removed support for old uploader and fixed URL import

This commit is contained in:
Tobias Reich 2014-05-12 21:40:25 +02:00
parent 21d8b22a3a
commit 47afc5c74b
2 changed files with 94 additions and 95 deletions

View File

@ -197,38 +197,41 @@ build = {
}, },
uploadModal: function(icon, text, html) { uploadModal: function(title, files) {
var modal = ""; var modal = "";
if (html!==null||html!==undefined) { modal += "<div class='upload_overlay fadeIn'>";
modal += "<div class='upload_message center'>";
modal += "<h1>" + title + "</h1>";
modal += "<div class='rows'>";
modal += "<div class='upload_overlay fadeIn'>"; for (var i = 0; i < files.length; i++) {
modal += "<div class='upload_message center'>";
modal += "<h1>" + text + "</h1>";
modal += "<a class='close icon-remove-sign'></a>";
modal += html;
modal += "</div>";
modal += "</div>";
return modal; if (files[i].supported===true) {
} else { modal += "<div class='row'>"
modal += "<a class='name'>" + lychee.escapeHTML(files[i].name) + "</a>"
modal += "<a class='status'></a>"
modal += "</div>";
modal += "<div class='upload_overlay fadeIn'>"; } else {
modal += "<div class='upload_message center'>";
modal += "<a class='icon-" + icon + "'></a>";
if (text!==undefined) modal += "<p>" + text + "</p>"; modal += "<div class='row'>"
else modal += "<div class='progressbar'><div></div></div>"; modal += "<a class='name'>" + lychee.escapeHTML(files[i].name) + "</a>"
modal += "<a class='status error'>Not supported</a>"
modal += "</div>";
modal += "</div>"; }
modal += "</div>";
return modal;
} }
modal += "</div>";
modal += "</div>";
modal += "</div>";
return modal;
}, },
contextMenu: function(items) { contextMenu: function(items) {

View File

@ -7,12 +7,10 @@
upload = { upload = {
show: function(icon, text, html) { show: function(title, files) {
if (icon===undefined) icon = "upload";
upload.close(true); upload.close(true);
$("body").append(build.uploadModal(icon, text, html)); $("body").append(build.uploadModal(title, files));
}, },
@ -56,92 +54,95 @@ upload = {
local: function(files) { local: function(files) {
var albumID = album.getID(), var albumID = album.getID(),
html = ""; process = function(files, file) {
var process = function(files, file) { var formData = new FormData(),
xhr = new XMLHttpRequest(),
pre_progress = 0,
progress;
var formData = new FormData(), formData.append("function", "upload");
xhr = new XMLHttpRequest(), formData.append("albumID", albumID);
pre_progress = 0, formData.append(0, file);
progress;
formData.append("function", "upload"); xhr.open("POST", lychee.api_path);
formData.append("albumID", albumID);
formData.append(0, file);
xhr.open("POST", lychee.api_path); xhr.onload = function() {
xhr.onload = function() { var wait;
var wait; if (xhr.status===200) {
if (xhr.status===200) { $(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status")
.html("Finished")
.addClass("success");
$(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status") file.ready = true;
.html("Finished") wait = false;
.addClass("success");
file.ready = true; for (var i = 0; i < files.length; i++) {
wait = false;
for (var i = 0; i < files.length; i++) { if (files[i].ready===false) {
wait = true;
break;
}
}
if (wait===false) {
window.onbeforeunload = null;
$("#upload_files").val("");
if (album.getID()===false) lychee.goto("0");
else album.load(albumID);
if (files[i].ready===false) {
wait = true;
break;
} }
} }
if (wait===false) { };
$("#upload_files").val(""); xhr.upload.onprogress = function(e) {
if (album.getID()===false) lychee.goto("0"); if (e.lengthComputable) {
else album.load(albumID);
progress = (e.loaded / e.total * 100 | 0);
if (progress>pre_progress) {
$(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status").html(progress + "%");
pre_progress = progress;
}
if (progress>=100) {
/*$(".upload_message .rows").animate({
scrollTop: $(".upload_message .rows .row:nth-child(" + (file.num+1) + ")").offset().top - 200
}, 0);*/
$(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status").html("Processing");
if (file.next!==null) process(files, file.next);
}
} }
} };
}; xhr.send(formData);
xhr.upload.onprogress = function(e) { }
if (e.lengthComputable) {
progress = (e.loaded / e.total * 100 | 0);
if (progress>pre_progress) {
$(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status").html(progress + "%");
pre_progress = progress;
}
if (progress>=100) {
$(".upload_message .rows .row:nth-child(" + (file.num+1) + ") .status").html("Processing");
if (file.next!==null) process(files, file.next);
}
}
};
xhr.send(formData);
}
if (files.length<=0) return false; if (files.length<=0) return false;
if (albumID===false) albumID = 0; if (albumID===false) albumID = 0;
html = "<div class='rows'>";
for (var i = 0; i < files.length; i++) { for (var i = 0; i < files.length; i++) {
files[i].num = i; files[i].num = i;
files[i].ready = false; files[i].ready = false;
files[i].supported = true;
if (i < files.length-1) files[i].next = files[i+1]; if (i < files.length-1) files[i].next = files[i+1];
else files[i].next = null; else files[i].next = null;
@ -149,25 +150,15 @@ upload = {
if (files[i].type!=="image/jpeg"&&files[i].type!=="image/jpg"&&files[i].type!=="image/png"&&files[i].type!=="image/gif") { if (files[i].type!=="image/jpeg"&&files[i].type!=="image/jpg"&&files[i].type!=="image/png"&&files[i].type!=="image/gif") {
files[i].ready = true; files[i].ready = true;
files[i].supported = false;
// Generate html with error
html += "<div class='row'><a class='name'>" + lychee.escapeHTML(files[i].name) + "</a><a class='status error'>Not supported</a></div>";
} else {
// Generate html
html += "<div class='row'><a class='name'>" + lychee.escapeHTML(files[i].name) + "</a><a class='status'></a></div>";
} }
} }
html += "</div>";
window.onbeforeunload = function() { return "Lychee is currently uploading!"; }; window.onbeforeunload = function() { return "Lychee is currently uploading!"; };
window.onbeforeunload = null;
upload.show(null, "Uploading", html); upload.show("Uploading", files);
process(files, files[0]); process(files, files[0]);
@ -179,7 +170,8 @@ upload = {
params, params,
extension, extension,
buttons, buttons,
link; link,
files = [];
if (albumID===false) albumID = 0; if (albumID===false) albumID = 0;
@ -196,8 +188,12 @@ upload = {
return false; return false;
} }
modal.close(); files[0] = {
upload.show("cog", "Importing from URL"); name: link,
supported: true
}
upload.show("Importing URL", files);
params = "importUrl&url=" + escape(encodeURI(link)) + "&albumID=" + albumID; params = "importUrl&url=" + escape(encodeURI(link)) + "&albumID=" + albumID;
lychee.api(params, function(data) { lychee.api(params, function(data) {