diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2014-04-07 22:20:44 +0200 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2014-04-07 22:28:16 +0200 |
commit | 3587c88fe946196af009d02db7c7d5e2c8934fe9 (patch) | |
tree | a18ce4f6cb6acd08f082cb365f42f25a4b691c21 /apps/files | |
parent | be9bc2c727e59ced01f86bc1781ac586f92bc29f (diff) | |
parent | 089052b13af7a5e27d225ab345616511f4eaf2a9 (diff) | |
download | nextcloud-server-3587c88fe946196af009d02db7c7d5e2c8934fe9.tar.gz nextcloud-server-3587c88fe946196af009d02db7c7d5e2c8934fe9.zip |
Merge branch 'master' of https://github.com/lukepolo/core-1 into lukepolo-master
Conflicts:
apps/files/js/file-upload.js
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/ajax/upload.php | 26 | ||||
-rw-r--r-- | apps/files/js/file-upload.js | 4 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 33 |
3 files changed, 50 insertions, 13 deletions
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index b21a9dfba2e..38175fa5001 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -111,22 +111,32 @@ if ($maxUploadFileSize >= 0 and $totalSize > $maxUploadFileSize) { } $result = array(); +$directory = ''; if (strpos($dir, '..') === false) { $fileCount = count($files['name']); for ($i = 0; $i < $fileCount; $i++) { + + // Get the files directory + if(isset($_POST['file_directory']) === true) { + $directory = '/'.$_POST['file_directory']; + } + // $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') { // append a number in brackets like 'filename (2).ext' - $target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]); + $target = OCP\Files::buildNotExistingFileName(stripslashes($dir.$directory), $files['name'][$i]); } else { - $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]); + $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir.$directory).'/'.$files['name'][$i]); } - - $directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir)); - if (isset($public_directory)) { - // If we are uploading from the public app, - // we want to send the relative path in the ajax request. - $directory = $public_directory; + + if(empty($directory) === true) + { + $directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir)); + if (isset($public_directory)) { + // If we are uploading from the public app, + // we want to send the relative path in the ajax request. + $directory = $public_directory; + } } if ( ! \OC\Files\Filesystem::file_exists($target) diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index e5d1eacbd14..46a53208406 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -329,7 +329,8 @@ OC.Upload = { // noone set update parameters, we set the minimum data.formData = { requesttoken: oc_requesttoken, - dir: $('#dir').val() + dir: $('#dir').val(), + file_directory: data.files[0]['relativePath'] }; } }, @@ -683,3 +684,4 @@ $(document).ready(function() { OC.Upload.init(); }); + diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 509929d0e55..69c97e8b32a 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1020,7 +1020,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']} ]; }; } else { @@ -1102,10 +1103,34 @@ $(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()) { + if (file.directory != '/' && 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]; + } + + file_directory = FileList.findFileEl(file_directory); + + // update folder size + var size = parseInt(file_directory.attr('data-size')); + size += parseInt(file.size); + file_directory.attr('data-size', size); + file_directory.find('td.filesize').text(humanFileSize(size)); + return; } |