fix various drag&drop operations

This commit is contained in:
Uwe Steinmann 2023-09-06 20:48:46 +02:00
parent f2a2e81e66
commit d61ed7f22e
2 changed files with 39 additions and 15 deletions

View File

@ -840,7 +840,7 @@ function onAddClipboard(ev) { /* {{{ */
}
if(target_type == 'folder' && target_id) {
for (var i = 0; i < items.length; i++) {
var item = items[i].webkitGetAsEntry();
var item = items[i]; //.webkitGetAsEntry();
if (item.isFile) {
item.file(function(file) {
if(file.size <= maxFileSize) {
@ -876,6 +876,11 @@ function onAddClipboard(ev) { /* {{{ */
}
});
} else if(item.isDirectory) {
var dirReader = item.createReader();
dirReader.readEntries(function(entries) {
SeedDMSUpload.handleFileUpload(entries, obj, statusbar);
});
/*
noty({
text: 'Folders currently not supported',
type: 'error',
@ -884,6 +889,7 @@ function onAddClipboard(ev) { /* {{{ */
theme: 'defaultTheme',
timeout: 5000
});
*/
}
}
} else if(target_type == 'document' && target_id) {
@ -967,8 +973,12 @@ $(document).ready(function() { /* {{{ */
var items = e.originalEvent.dataTransfer.items;
//We need to send dropped files to Server
newitems = [];
if(items.length > 0) {
SeedDMSUpload.handleFileUpload(items, $(this), $(this));
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());
}
SeedDMSUpload.handleFileUpload(newitems, $(this), $(this));
}
});
@ -997,10 +1007,16 @@ $(document).ready(function() { /* {{{ */
if(target_type == 'folder') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
/* check for files, because items has an entry if no file was dropped */
if(files.length > 0) {
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
SeedDMSUpload.handleFileUpload(items,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
newitems = [];
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());
}
SeedDMSUpload.handleFileUpload(newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
} else {
/* The data is passed in dataTransfer. The items are meaning less. */
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
source_type = source_info.type;
source_id = source_info.id;
@ -1099,9 +1115,14 @@ $(document).ready(function() { /* {{{ */
} else if(target_type == 'document') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
/* check for files, because items has an entry if no file was dropped */
if(files.length > 0) {
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
SeedDMSUpload.handleFileUpload(items,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
newitems = [];
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());
}
SeedDMSUpload.handleFileUpload(newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
} else {
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
source_type = source_info.type;
@ -1185,8 +1206,12 @@ $(document).ready(function() { /* {{{ */
} else if(target_type == 'attachment') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
SeedDMSUpload.handleFileUpload(items,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
if(files.length > 0) {
newitems = [];
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());
}
SeedDMSUpload.handleFileUpload(newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
}
}
});

View File

@ -1004,15 +1004,11 @@ $(document).ready(function() { /* {{{ */
var items = e.originalEvent.dataTransfer.items;
//We need to send dropped files to Server
console.log(items[0]);
console.log(items[0].webkitGetAsEntry());
newitems = [];
if(items.length > 0) {
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());
}
console.log(newitems);
SeedDMSUpload.handleFileUpload(newitems, $(this), $(this));
}
});
@ -1042,7 +1038,8 @@ $(document).ready(function() { /* {{{ */
if(target_type == 'folder') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
/* check for files, because items has an entry if no file was dropped */
if(files.length > 0) {
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
newitems = [];
for (var i=0; i<items.length; i++) {
@ -1050,6 +1047,7 @@ $(document).ready(function() { /* {{{ */
}
SeedDMSUpload.handleFileUpload(newitems,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
} else {
/* The data is passed in dataTransfer. The items are meaning less. */
var source_info = JSON.parse(e.originalEvent.dataTransfer.getData("text"));
source_type = source_info.type;
source_id = source_info.id;
@ -1160,7 +1158,8 @@ $(document).ready(function() { /* {{{ */
} else if(target_type == 'document') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
/* check for files, because items has an entry if no file was dropped */
if(files.length > 0) {
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
newitems = [];
for (var i=0; i<items.length; i++) {
@ -1257,7 +1256,7 @@ $(document).ready(function() { /* {{{ */
} else if(target_type == 'attachment') {
var files = e.originalEvent.dataTransfer.files;
var items = e.originalEvent.dataTransfer.items;
if(items.length > 0) {
if(files.length > 0) {
newitems = [];
for (var i=0; i<items.length; i++) {
newitems.push(items[i].webkitGetAsEntry());