refs #461 - drag'n'drop upload to a sub folder is working now
This commit is contained in:
parent
d1c0f2a739
commit
7af4cf48c9
|
@ -51,6 +51,12 @@ if(strpos($dir, '..') === false) {
|
|||
if(is_uploaded_file($files['tmp_name'][$i]) and OC_Filesystem::fromTmpFile($files['tmp_name'][$i], $target)) {
|
||||
$meta = OC_FileCache::get($target);
|
||||
$id = OC_FileCache::getId($target);
|
||||
// in case the upload goes to a sub directory getID() returns -1 and $target needs to be normalized
|
||||
// calling normalizePath() inside getId() causes endless scan.
|
||||
if ($id == -1) {
|
||||
$path = OC_Filesystem::normalizePath($target);
|
||||
$id = OC_FileCache::getId($path);
|
||||
}
|
||||
$result[]=array( "status" => "success", 'mime'=>$meta['mimetype'], 'size'=>$meta['size'], 'id'=>$id, 'name'=>basename($target));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -141,7 +141,7 @@ var FileList={
|
|||
tr=$('tr').filterAttr('data-file',name);
|
||||
tr.data('renaming',true);
|
||||
td=tr.children('td.filename');
|
||||
input=$('<input class="filename"></input>').val(name);
|
||||
input=$('<input class="filename"/>').val(name);
|
||||
form=$('<form></form>');
|
||||
form.append(input);
|
||||
td.children('a.name').hide();
|
||||
|
|
|
@ -228,7 +228,12 @@ $(document).ready(function() {
|
|||
}
|
||||
});
|
||||
}else{
|
||||
var date=new Date();
|
||||
var dropTarget = $(e.originalEvent.target).closest('tr');
|
||||
if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
|
||||
var dirName = dropTarget.attr('data-file')
|
||||
}
|
||||
|
||||
var date=new Date();
|
||||
if(files){
|
||||
for(var i=0;i<files.length;i++){
|
||||
if(files[i].size>0){
|
||||
|
@ -281,7 +286,7 @@ $(document).ready(function() {
|
|||
var jqXHR = $('.file_upload_start').fileupload('send', {files: files[i],
|
||||
formData: function(form) {
|
||||
var formArray = form.serializeArray();
|
||||
formArray[1]['value'] = dirName;
|
||||
formArray[2]['value'] = dirName;
|
||||
return formArray;
|
||||
}}).success(function(result, textStatus, jqXHR) {
|
||||
var response;
|
||||
|
@ -291,7 +296,13 @@ $(document).ready(function() {
|
|||
$('#notification').fadeIn();
|
||||
}
|
||||
var file=response[0];
|
||||
// TODO: this doesn't work if the file name has been changed server side
|
||||
delete uploadingFiles[dirName][file.name];
|
||||
if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
|
||||
delete uploadingFiles[dirName];
|
||||
}
|
||||
|
||||
var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext')
|
||||
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
|
||||
currentUploads -= 1;
|
||||
uploadtext.attr('currentUploads', currentUploads);
|
||||
|
@ -821,7 +832,7 @@ function getSelectedFiles(property){
|
|||
name:$(element).attr('data-file'),
|
||||
mime:$(element).data('mime'),
|
||||
type:$(element).data('type'),
|
||||
size:$(element).data('size'),
|
||||
size:$(element).data('size')
|
||||
};
|
||||
if(property){
|
||||
files.push(file[property]);
|
||||
|
|
|
@ -43,6 +43,8 @@ class OC_FileCache{
|
|||
* - versioned
|
||||
*/
|
||||
public static function get($path, $root=false) {
|
||||
// $path needs to be normalized - this failed within drag'n'drop upload to a subfolder
|
||||
$path = OC_Filesystem::normalizePath($path);
|
||||
if(OC_FileCache_Update::hasUpdated($path, $root)) {
|
||||
if($root===false) {//filesystem hooks are only valid for the default root
|
||||
OC_Hook::emit('OC_Filesystem', 'post_write', array('path'=>$path));
|
||||
|
|
Loading…
Reference in New Issue