Initial
This commit is contained in:
112
transfersh-web/scripts/main.js
Normal file
112
transfersh-web/scripts/main.js
Normal file
@@ -0,0 +1,112 @@
|
||||
$(document).ready(function () {
|
||||
|
||||
// Terminal typing animation
|
||||
$("#from-terminal p").typed({
|
||||
strings: ["curl --upload-file ./hello.txt https://transfer.sh/hello.txt\n######################################################\nhttps://transfer.sh/66nb8/hello.txt \n "],
|
||||
typeSpeed: 0, // typing speed
|
||||
backSpeed: 0, // backspacing speed
|
||||
startDelay: 0, // time before typing starts
|
||||
backDelay: 500, // pause before backspacing
|
||||
loop: false, // loop on or off (true or false)
|
||||
loopCount: false, // number of loops, false = infinite
|
||||
showCursor: true,
|
||||
attr: null, // attribute to type, null = text for everything except inputs, which default to placeholder
|
||||
callback: function(){ } // call function after typing is done
|
||||
});
|
||||
|
||||
// Smooth scrolling
|
||||
$('a[href*=#]:not([href=#])').click(function () {
|
||||
if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
|
||||
var target = $(this.hash);
|
||||
target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
|
||||
if (target.length) {
|
||||
$('html,body').animate({
|
||||
scrollTop: target.offset().top
|
||||
}, 1000);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
(function () {
|
||||
var files = Array()
|
||||
|
||||
function upload(file) {
|
||||
var li = $('<li style="clear:both;"/>');
|
||||
li.append($('<div><div class="progress active upload-progress" style="margin-bottom: 0;"><div class="progress-bar" style="width: 0%;"></div></div><p>Uploading... ' + file.name + '</p></div>'));
|
||||
$(li).appendTo($('.queue'));
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
|
||||
xhr.upload.addEventListener("progress", function (e) {
|
||||
var pc = parseInt((e.loaded / e.total * 100));
|
||||
$('.upload-progress', $(li)).show();
|
||||
$('.upload-progress .bar', $(li)).css('width', pc + "%");
|
||||
}, false);
|
||||
|
||||
xhr.onreadystatechange = function (e) {
|
||||
if (xhr.readyState == 4) {
|
||||
$('.upload-progress', $(li)).hide();
|
||||
|
||||
// progress.className = (xhr.status == 200 ? "success" : "failure");
|
||||
if (xhr.status == 200) {
|
||||
$(li).html('<i class="icon-file fileupload-exists"></i><a target="_blank" href="' + xhr.responseText + '">' + xhr.responseText + '</a>');
|
||||
} else {
|
||||
$(li).html('Error (' + xhr.status + ') during upload of file ' + file.name + '.');
|
||||
}
|
||||
|
||||
files.push(xhr.responseText.replace("https://transfer.sh/", ""));
|
||||
|
||||
files.push(URI(xhr.responseText).absoluteTo(location.href).toString());
|
||||
|
||||
$(".download-zip").attr("href", URI("(" + files.join(",") + ").zip").absoluteTo(location.href).toString());
|
||||
$(".download-tar").attr("href", URI("(" + files.join(",") + ").tar.gz").absoluteTo(location.href).toString());
|
||||
|
||||
$(".all-files").css("opacity", "1");
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// should queue all uploads.
|
||||
|
||||
// start upload
|
||||
xhr.open("PUT", '/' + file.name, true);
|
||||
xhr.setRequestHeader("X_FILENAME", file.name);
|
||||
xhr.send(file);
|
||||
};
|
||||
|
||||
$(document).bind("dragenter", function (event) {
|
||||
event.preventDefault();
|
||||
}).bind("dragover", function (event) {
|
||||
event.preventDefault();
|
||||
// show drop indicator
|
||||
}).bind("dragleave", function (event) {}).bind("drop dragdrop", function (event) {
|
||||
var files = event.originalEvent.target.files || event.originalEvent.dataTransfer.files;
|
||||
|
||||
$.each(files, function (index, file) {
|
||||
console.debug(file);
|
||||
upload(file);
|
||||
});
|
||||
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
$('a.browse').on('click', function (event) {
|
||||
$("input[type=file]").click();
|
||||
return (false);
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('input[type=file]').on('change', function (event) {
|
||||
$.each(this.files, function (index, file) {
|
||||
if (file instanceof Blob) {
|
||||
upload(file);
|
||||
}
|
||||
});
|
||||
});
|
||||
})();
|
Reference in New Issue
Block a user