mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-11 20:21:16 +00:00
initial support to upload folders by drag and drop
This commit is contained in:
parent
26553cf69d
commit
d868438af9
|
@ -819,7 +819,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
|
||||
SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) {
|
||||
SeedDMSUpload.handleFileUpload = function(items,obj,statusbar) {
|
||||
/* target is set for the quick upload area */
|
||||
var target_id = obj.data('target');
|
||||
var target_type = 'folder';
|
||||
|
@ -839,31 +839,45 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
if(target_type == 'folder' && target_id) {
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
if(files[i].size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', files[i]);
|
||||
fd.append('command', 'uploaddocument');
|
||||
this.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
this.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', files[i].webkitRelativePath);
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i].webkitGetAsEntry();
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'uploaddocument');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', file.webkitRelativePath);
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(files[i].name,files[i].size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
});
|
||||
} else if(item.isDirectory) {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
||||
text: 'Folders currently not supported',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
|
@ -945,9 +959,12 @@ $(document).ready(function() { /* {{{ */
|
|||
$(this).css('border', '0px dotted #0B85A1');
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
|
||||
//We need to send dropped files to Server
|
||||
SeedDMSUpload.handleFileUpload(files, $(this), $(this));
|
||||
if(items.length > 0) {
|
||||
SeedDMSUpload.handleFileUpload(items, $(this), $(this));
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('dragenter', '.droptarget', function (e) {
|
||||
|
@ -974,9 +991,10 @@ $(document).ready(function() { /* {{{ */
|
|||
target_name = $(e.currentTarget).data('name')+''; // Force this to be a string
|
||||
if(target_type == 'folder') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
SeedDMSUpload.handleFileUpload(items,$(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;
|
||||
|
@ -1075,9 +1093,10 @@ $(document).ready(function() { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'document') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
SeedDMSUpload.handleFileUpload(items,$(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;
|
||||
|
@ -1160,8 +1179,9 @@ $(document).ready(function() { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'attachment') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.length > 0) {
|
||||
SeedDMSUpload.handleFileUpload(items,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -763,7 +763,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
timeout: 1500
|
||||
});
|
||||
if(editBtnLabel)
|
||||
status.statusbar.after($('<a href="'+seeddms_webroot+'out/out.EditDocument.php?documentid=' + data.data + '" class="btn btn-mini btn-primary">' + editBtnLabel + '</a>'));
|
||||
status.statusbar.after($('<a href="'+seeddms_webroot+'out/out.EditDocument.php?documentid=' + data.data + '" class="btn btn-mini btn-sm btn-primary">' + editBtnLabel + '</a>'));
|
||||
if(callback) {
|
||||
callback();
|
||||
}
|
||||
|
@ -793,7 +793,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
this.filename = $("<div class='filename'></div>").appendTo(this.statusbar);
|
||||
this.size = $("<div class='filesize'></div>").appendTo(this.statusbar);
|
||||
this.progressBar = $("<div class='progress'><div class='bar bg-success'></div></div>").appendTo(this.statusbar);
|
||||
this.abort = $("<div class='btn btn-mini btn-danger'>" + abortBtnLabel + "</div>").appendTo(this.statusbar);
|
||||
this.abort = $("<div class='btn btn-mini btn-sm btn-danger'>" + abortBtnLabel + "</div>").appendTo(this.statusbar);
|
||||
// $('.statusbar').empty();
|
||||
obj.after(this.statusbar);
|
||||
this.setFileNameSize = function(name,size) {
|
||||
|
@ -850,7 +850,7 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
|
||||
SeedDMSUpload.handleFileUpload = function(files,obj,statusbar) {
|
||||
SeedDMSUpload.handleFileUpload = function(items,obj,statusbar) {
|
||||
/* target is set for the quick upload area */
|
||||
var target_id = obj.data('target');
|
||||
var target_type = 'folder';
|
||||
|
@ -870,37 +870,57 @@ function onAddClipboard(ev) { /* {{{ */
|
|||
}
|
||||
}
|
||||
if(target_type == 'folder' && target_id) {
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
if(files[i].size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', files[i]);
|
||||
fd.append('command', 'uploaddocument');
|
||||
this.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
this.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', files[i].webkitRelativePath);
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i]; //.webkitGetAsEntry();
|
||||
if (item.isFile) {
|
||||
item.file(function(file) {
|
||||
if(file.size <= maxFileSize) {
|
||||
var fd = new FormData();
|
||||
fd.append('targettype', target_type);
|
||||
fd.append('folderid', target_id);
|
||||
fd.append('formtoken', obj.data('uploadformtoken'));
|
||||
if (typeof obj.data('comment') !== 'undefined') {
|
||||
fd.append('comment', obj.data('comment'));
|
||||
}
|
||||
if (typeof obj.data('keywords') !== 'undefined') {
|
||||
fd.append('keywords', obj.data('keywords'));
|
||||
}
|
||||
fd.append('userfile', file);
|
||||
fd.append('command', 'uploaddocument');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('attributes'), 'attributes');
|
||||
SeedDMSUpload.getFormData(fd, obj.data('categories'), 'categories');
|
||||
// fd.append('path', file.webkitRelativePath);
|
||||
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(files[i].name,files[i].size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
statusbar.parent().show();
|
||||
var status = new SeedDMSUpload.createStatusbar(statusbar);
|
||||
status.setFileNameSize(file.name,file.size);
|
||||
SeedDMSUpload.sendFileToServer(fd,status,afteruploadfunc);
|
||||
} else {
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + file.name + ' (' + file.size + ' Bytes)</em>',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
}
|
||||
});
|
||||
} else if(item.isDirectory) {
|
||||
var dirReader = item.createReader();
|
||||
dirReader.readEntries(function(entries) {
|
||||
SeedDMSUpload.handleFileUpload(entries, obj, statusbar);
|
||||
});
|
||||
/*
|
||||
noty({
|
||||
text: maxFileSizeMsg + '<br /><em>' + files[i].name + ' (' + files[i].size + ' Bytes)</em>',
|
||||
text: 'Folders currently not supported',
|
||||
type: 'error',
|
||||
dismissQueue: true,
|
||||
layout: 'topRight',
|
||||
theme: 'defaultTheme',
|
||||
timeout: 5000
|
||||
});
|
||||
*/
|
||||
}
|
||||
}
|
||||
} else if(target_type == 'document' && target_id) {
|
||||
|
@ -976,9 +996,20 @@ $(document).ready(function() { /* {{{ */
|
|||
$(this).css('border', '0px dotted #0B85A1');
|
||||
e.preventDefault();
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
|
||||
//We need to send dropped files to Server
|
||||
SeedDMSUpload.handleFileUpload(files, $(this), $(this));
|
||||
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));
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('dragenter', '.droptarget', function (e) {
|
||||
|
@ -1005,9 +1036,14 @@ $(document).ready(function() { /* {{{ */
|
|||
target_name = $(e.currentTarget).data('name')+''; // Force this to be a string
|
||||
if(target_type == 'folder') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(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;
|
||||
|
@ -1118,9 +1154,14 @@ $(document).ready(function() { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'document') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.length > 0) {
|
||||
// console.log('Drop '+files.length+' files on '+target_type+' '+target_id);
|
||||
SeedDMSUpload.handleFileUpload(files,$(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;
|
||||
|
@ -1210,8 +1251,13 @@ $(document).ready(function() { /* {{{ */
|
|||
}
|
||||
} else if(target_type == 'attachment') {
|
||||
var files = e.originalEvent.dataTransfer.files;
|
||||
if(files.length > 0) {
|
||||
SeedDMSUpload.handleFileUpload(files,$(e.currentTarget),$('div.statusbar-container h1')/*$(e.currentTarget).find("span")*/);
|
||||
var items = e.originalEvent.dataTransfer.items;
|
||||
if(items.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")*/);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user