diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/dragdrop/MultipleDNDUpload.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/dragdrop/MultipleDNDUpload.java index 385ff0d..bb3f35c 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/dragdrop/MultipleDNDUpload.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/dragdrop/MultipleDNDUpload.java @@ -222,6 +222,18 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload field.createJsonKeyForFiles(); } + + /** + * Gets the json key for files. + * + * @param uploadUUID the upload uuid + * @return the json key for files + */ + private String getJsonKeyForFiles(String uploadUUID) { + WorkspaceFieldsUploadManager field = getFieldsUploadManager(uploadUUID); + return field.getJsonKeys(); + } + /** * Generate fake uploaders. * @@ -581,52 +593,46 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload console.log("# of file/s: " + files.length); + var filesSelected = ""; + + for (i = 0; i < files.length; i++) { + filesSelected += files[i].name + fileDelimiter; + } + console.log("filesSelected: " + filesSelected); + + instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(filesSelected,idfolder,uploadUUID); + instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::createJsonKeyForFiles(Ljava/lang/String;)(uploadUUID); + instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::updateJsonKeys(Ljava/lang/String;)(uploadUUID); + instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setCurrentJsonKeValue(Ljava/lang/String;)(uploadUUID); + var jsonKeys = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::currentJsonKey; +// var jsonKeys = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::getJsonKeyForFiles(Ljava/lang/String;) +// var jsonKeysMap = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::jsonKeys; + console.log("jsonKeys: " + jsonKeys); + + var xhr = new XMLHttpRequest(); + xhr.open(opts.type, opts.url, true); + + var formdata = new FormData(); + formdata.append("client_upload_keys", jsonKeys); + formdata.append("uploadType", uploadType); + formdata.append("idFolder", idfolder); + + var overwrite = false; + formdata.append("isOverwrite", overwrite); + var numFolder = 0; for (var i = 0; i < files.length; i++) { var file = files[i]; var fileSelected = files[i].name + fileDelimiter; if (!isFolder(file)) { - console.log("fileSelected: " + fileSelected); console.log("files: " + files); - instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(fileSelected,idfolder,uploadUUID); - instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::createJsonKeyForFiles(Ljava/lang/String;)(uploadUUID); - instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::updateJsonKeys(Ljava/lang/String;)(uploadUUID); +// var jsonKeysMap = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::jsonKeys; +// console.log("jsonKeysMap: " + jsonKeysMap); +// instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setCurrentJsonKeValue(Ljava/lang/String;)(uploadUUID); +// var keyVal = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::currentJsonKey; +// console.log("keyVal: " + keyVal); - var jsonKeysMap = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::jsonKeys; - console.log("jsonKeysMap: " + jsonKeysMap); - instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setCurrentJsonKeValue(Ljava/lang/String;)(uploadUUID); - var keyVal = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::currentJsonKey; - console.log("keyVal: " + keyVal); - var xhr = new XMLHttpRequest(); - // var upload = xhr.upload; - - // upload.fileIndex = i; - // upload.fileObj = file; - // upload.downloadStartTime = new Date().getTime(); - // upload.currentStart = upload.downloadStartTime; - // upload.currentProgress = 0; - // upload.startData = 0; - - // console.log("upload: " + upload.toString()); - // add listeners - - // upload.addEventListener("progress", progress, false); - // upload.addEventListener("load", load, false); - - xhr.open(opts.type, opts.url, true); - // var boundary = "AJAX--------------" + (new Date).getTime(); - // var contentType = "multipart/form-data; boundary=" + boundary; - // xhr.setRequestHeader("Content-Type", contentType); - // Use native function(Chrome 5+ ,Safari 5+ and Firefox 4+), for dealing - // with multipart/form-data and boundray generation - - var formdata = new FormData(); - formdata.append("client_upload_keys", keyVal); - formdata.append("uploadType", uploadType); - formdata.append("idFolder", idfolder); - //OVERWRITE?? - var overwrite = false; if(files.length == 1){ console.log("one drag, overwrite?"); var wsUtil = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::workspaceUtil; @@ -649,18 +655,22 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload } } +// var xhr = new XMLHttpRequest(); +// xhr.open(opts.type, opts.url, true); formdata.append("isOverwrite", overwrite); +// formdata.append("isOverwrite", overwrite); //*********uploadFormElement MUST BE THE LAST!!! formdata.append('uploadFormElement', file); - xhr.send(formdata); - instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::addNewSubmitToMonitor(Ljava/lang/String;)(uploadUUID); - +// xhr.send(formdata); // reader.readAsText(file); }else{ numFolder++; } } + xhr.send(formdata); + instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::addNewSubmitToMonitor(Ljava/lang/String;)(uploadUUID); + if(numFolder>0){ var msg; if(numFolder==files.length){