summaryrefslogtreecommitdiffstats
path: root/files/js
diff options
context:
space:
mode:
authorRobin Appelman <icewind1991@gmail.com>2011-07-20 15:50:42 +0200
committerRobin Appelman <icewind1991@gmail.com>2011-07-20 15:51:19 +0200
commit6b034ad2f9ef2d5443cc9b1b02b19ba20a11f37f (patch)
tree391ce4e3714f35ac4e4966fefc74d2b01ac038c2 /files/js
parent5539f671359af44634ed1de8ab5c4b8be20ee477 (diff)
downloadnextcloud-server-6b034ad2f9ef2d5443cc9b1b02b19ba20a11f37f.tar.gz
nextcloud-server-6b034ad2f9ef2d5443cc9b1b02b19ba20a11f37f.zip
Allow users to start a new upload before the current upload has finished
Diffstat (limited to 'files/js')
-rw-r--r--files/js/files.js38
1 files changed, 26 insertions, 12 deletions
diff --git a/files/js/files.js b/files/js/files.js
index af0c344f18d..d4191215972 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -143,21 +143,26 @@ $(document).ready(function() {
return false;
});
- $('#file_upload_start').change(function(){
- var files=$('#file_upload_start')[0].files;
- $('#file_upload_target').load(function(){
- var response=jQuery.parseJSON($('#file_upload_target').contents().find('body').text());
+ $('.file_upload_start').live('change',function(){
+ var form=$(this).parent().parent();
+ var uploadId=form.attr('data-upload-id');
+ var files=this.files;
+ var target=form.children('iframe');
+ target.load(function(){
+ var response=jQuery.parseJSON(target.contents().find('body').text());
//set mimetype and if needed filesize
- for(var i=0;i<response.length;i++){
- var file=response[i];
- $('tr[data-file="'+file.name+'"]').attr('data-mime',file.mime);
- if(size=='Pending'){
- $('tr[data-file='+file.name+'] td.filesize').text(file.size);
+ if(response){
+ for(var i=0;i<response.length;i++){
+ var file=response[i];
+ $('tr[data-file="'+file.name+'"]').attr('data-mime',file.mime);
+ if(size=='Pending'){
+ $('tr[data-file='+file.name+'] td.filesize').text(file.size);
+ }
+ FileList.loadingDone(file.name);
}
- FileList.loadingDone(file.name);
}
});
- $('#file_upload_form').submit();
+ form.submit();
var date=new Date();
var uploadTime=formatDate(date);
for(var i=0;i<files.length;i++){
@@ -168,11 +173,20 @@ $(document).ready(function() {
}
FileList.addFile(files[i].name,size,uploadTime,true);
}
+
+ //clone the upload form and hide the new one to allow users to start a new upload while the old one is still uploading
+ var clone=form.clone();
+ uploadId++;
+ clone.attr('data-upload-id',uploadId);
+ clone.attr('target','file_upload_target_'+uploadId);
+ clone.children('iframe').attr('name','file_upload_target_'+uploadId)
+ clone.insertBefore(form);
+ form.hide();
});
//add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
if(navigator.userAgent.search(/konqueror/i)==-1){
- $('#file_upload_start').attr('multiple','multiple')
+ $('.file_upload_start').attr('multiple','multiple')
}
});