|
@@ -28,26 +28,30 @@ var Uploader = {
|
|
|
})
|
|
|
},
|
|
|
|
|
|
- uploadFile: function(name, data){
|
|
|
+ uploadFile: function(name, data, progress, success){
|
|
|
var formData = new FormData();
|
|
|
formData.append("file", data, name);
|
|
|
$.ajax({
|
|
|
url: '/room/'+this.roomId,
|
|
|
- data: formData,
|
|
|
+ data: formData,
|
|
|
+ success: success,
|
|
|
cache: false,
|
|
|
processData: false,
|
|
|
contentType: false,
|
|
|
xhr: function () {
|
|
|
var xhr = new XMLHttpRequest()
|
|
|
- //xhr.upload.addEventListener('progress', progress, false)
|
|
|
+ xhr.upload.addEventListener('progress', progress, false)
|
|
|
return xhr
|
|
|
},
|
|
|
type: 'POST'
|
|
|
});
|
|
|
},
|
|
|
|
|
|
- deleteFile: function() {
|
|
|
- console.log('NOPE');
|
|
|
+ deleteFile: function(id) {
|
|
|
+ $.ajax({
|
|
|
+ type: 'DELETE',
|
|
|
+ url: '/room/'+this.roomId+'/'+id
|
|
|
+ })
|
|
|
},
|
|
|
}
|
|
|
|
|
@@ -70,10 +74,13 @@ var CryptoUploader = {
|
|
|
var self = this;
|
|
|
fileReader.onload = function(e) {
|
|
|
this.data = fileReader.result;
|
|
|
+ $("#progress-bar").show();
|
|
|
CryptoUtils.encrypt(this.data)
|
|
|
- .then(function(encrypted){
|
|
|
- Uploader.uploadFile(file.name, encrypted);
|
|
|
- self.showRoomContent();
|
|
|
+ .then(function(encrypted){
|
|
|
+ Uploader.uploadFile(file.name, encrypted, self.progress, function(e){
|
|
|
+ self.showRoomContent();;
|
|
|
+ $("#progress-bar").hide();
|
|
|
+ });
|
|
|
}).catch(function(err){
|
|
|
console.error(err);
|
|
|
});
|
|
@@ -81,6 +88,14 @@ var CryptoUploader = {
|
|
|
fileReader.readAsArrayBuffer(file);
|
|
|
},
|
|
|
|
|
|
+ progress: function(e) {
|
|
|
+ if(e.lengthComputable) {
|
|
|
+ $("#progress-bar")
|
|
|
+ .prop("value", e.loaded)
|
|
|
+ .prop("max", e.total);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
downloadFile: function(fileName) {
|
|
|
Uploader.getFile(fileName, function(e){
|
|
|
if(this.status == 200) {
|
|
@@ -106,12 +121,20 @@ var CryptoUploader = {
|
|
|
$("#file-list > ul").empty();
|
|
|
Uploader.getRoom(function(data){
|
|
|
for(let f of data.entries()) {
|
|
|
- $("<li><a>"+f[1]+"</a></li>")
|
|
|
- .appendTo("#file-list > ul")
|
|
|
- .on('click', function(e){CryptoUploader.downloadFile(e.target.text)});
|
|
|
+ var e = $("<li></li>").appendTo("#file-list > ul");
|
|
|
+ $("<a>"+f[1]+"</a>")
|
|
|
+ .on('click', function(e){CryptoUploader.downloadFile(e.target.text)})
|
|
|
+ .appendTo(e);
|
|
|
+ $("<span>X</span>")
|
|
|
+ .on('click', function(e){
|
|
|
+ Uploader.deleteFile(e.target.parentNode.querySelector("a").text);
|
|
|
+ CryptoUploader.showRoomContent();
|
|
|
+ })
|
|
|
+ .appendTo(e);
|
|
|
+
|
|
|
}
|
|
|
})
|
|
|
- }
|
|
|
+ },
|
|
|
}
|
|
|
|
|
|
$(function(){
|
|
@@ -122,6 +145,7 @@ $(function(){
|
|
|
var file = params.shift();
|
|
|
$("#create-room").hide();
|
|
|
$("#room").show();
|
|
|
+ $("#progress-bar").hide();
|
|
|
Uploader.roomId = roomId;
|
|
|
CryptoUtils.initialize(key).then(function(){
|
|
|
$("#woot").on('click', function(){
|