Merge pull request #5353 from owncloud/files-dndtodirbroken

Fixed drag and drop to subfolder and breadcrumb
This commit is contained in:
Morris Jobke 2013-10-16 04:52:35 -07:00
commit db31541fe1
1 changed files with 22 additions and 14 deletions

View File

@ -685,28 +685,32 @@ $(document).ready(function(){
file_upload_start.on('fileuploaddrop', function(e, data) {
OC.Upload.log('filelist handle fileuploaddrop', e, data);
var dropTarget = $(e.originalEvent.target).closest('tr');
if(dropTarget && dropTarget.data('type') === 'dir') { // drag&drop upload to folder
var dropTarget = $(e.originalEvent.target).closest('tr, .crumb');
if(dropTarget && (dropTarget.data('type') === 'dir' || dropTarget.hasClass('crumb'))) { // drag&drop upload to folder
// remember as context
data.context = dropTarget;
var dir = dropTarget.data('file');
// if from file list, need to prepend parent dir
if (dir){
var parentDir = $('#dir').val() || '/';
if (parentDir[parentDir.length - 1] != '/'){
parentDir += '/';
}
dir = parentDir + dir;
}
else{
// read full path from crumb
dir = dropTarget.data('dir') || '/';
}
// update folder in form
data.formData = function(form) {
var formArray = form.serializeArray();
// array index 0 contains the max files size
// array index 1 contains the request token
// array index 2 contains the directory
var parentDir = formArray[2]['value'];
if (parentDir === '/') {
formArray[2]['value'] += dir;
} else {
formArray[2]['value'] += '/' + dir;
}
return formArray;
return [
{name: 'dir', value: dir},
{name: 'requesttoken', value: oc_requesttoken}
];
};
}
@ -784,6 +788,10 @@ $(document).ready(function(){
data.context.find('td.filesize').text(humanFileSize(size));
} else {
// only append new file if dragged onto current dir's crumb (last)
if (data.context && data.context.hasClass('crumb') && !data.context.hasClass('last')){
return;
}
// add as stand-alone row to filelist
var size=t('files', 'Pending');