diff --git a/views/bootstrap/styles/application.js b/views/bootstrap/styles/application.js index cb261a983..4ffab8463 100644 --- a/views/bootstrap/styles/application.js +++ b/views/bootstrap/styles/application.js @@ -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 + '
' + file.name + ' (' + file.size + ' Bytes)', + type: 'error', + dismissQueue: true, + layout: 'topRight', + theme: 'defaultTheme', + timeout: 5000 + }); + } + }); + } else if(item.isDirectory) { noty({ - text: maxFileSizeMsg + '
' + files[i].name + ' (' + files[i].size + ' Bytes)', + 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")*/); } } }); diff --git a/views/bootstrap4/styles/application.js b/views/bootstrap4/styles/application.js index f72da452d..a675b01a5 100644 --- a/views/bootstrap4/styles/application.js +++ b/views/bootstrap4/styles/application.js @@ -763,7 +763,7 @@ function onAddClipboard(ev) { /* {{{ */ timeout: 1500 }); if(editBtnLabel) - status.statusbar.after($('' + editBtnLabel + '')); + status.statusbar.after($('' + editBtnLabel + '')); if(callback) { callback(); } @@ -793,7 +793,7 @@ function onAddClipboard(ev) { /* {{{ */ this.filename = $("
").appendTo(this.statusbar); this.size = $("
").appendTo(this.statusbar); this.progressBar = $("
").appendTo(this.statusbar); - this.abort = $("
" + abortBtnLabel + "
").appendTo(this.statusbar); + this.abort = $("
" + abortBtnLabel + "
").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 + '
' + file.name + ' (' + file.size + ' Bytes)', + 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 + '
' + files[i].name + ' (' + files[i].size + ' Bytes)', + 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 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 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 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