diff options
Diffstat (limited to 'apps/files/js/filelist.js')
-rw-r--r-- | apps/files/js/filelist.js | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index d6cffde05de..2631812c2e2 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -879,7 +879,8 @@ $(document).ready(function() { data.formData = function(form) { return [ {name: 'dir', value: dir}, - {name: 'requesttoken', value: oc_requesttoken} + {name: 'requesttoken', value: oc_requesttoken}, + {name: 'file_directory', value: data.files[0]['relativePath']} ]; }; } @@ -935,7 +936,7 @@ $(document).ready(function() { var file = result[0]; if (data.context && data.context.data('type') === 'dir') { - + // update upload counter ui var uploadtext = data.context.find('.uploadtext'); var currentUploads = parseInt(uploadtext.attr('currentUploads')); @@ -956,10 +957,33 @@ $(document).ready(function() { size += parseInt(file.size); data.context.attr('data-size', size); data.context.find('td.filesize').text(humanFileSize(size)); - - } else { + } + else { + // only append new file if uploaded into the current folder if (file.directory !== FileList.getCurrentDirectory()) { + + file_directory = file.directory.replace('/','').replace(/\/$/, "").split('/'); + + if (file_directory.length == 1) { + file_directory = file_directory[0]; + + // Get the directory + if ($('tr[data-file="'+file_directory+'"]').length == 0) + { + FileList.addDir(file_directory, 0, new Date(), false); + } + } + else { + file_directory = file_directory[0]; + } + + // update folder size + var size = parseInt($('tr[data-file="'+file_directory+'"]').attr('data-size')); + size += parseInt(file.size); + $('tr[data-file="'+file_directory+'"]').attr('data-size', size); + $('tr[data-file="'+file_directory+'"]').find('td.filesize').text(humanFileSize(size)); + return; } |