diff --git a/distro/changelog.xml b/distro/changelog.xml index b0a2917..7aef3df 100644 --- a/distro/changelog.xml +++ b/distro/changelog.xml @@ -1,4 +1,10 @@ + + [Task #7820] DaD and Browse: create new version of existing + items added + Removed currUserId parameter from client-side + Removed currUserId parameter from client-side diff --git a/pom.xml b/pom.xml index a2a6f19..ca0583f 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.portlets.widgets workspace-uploader jar - 1.7.0-SNAPSHOT + 1.8.0-SNAPSHOT Workspace Uploader Widget Workspace Uploader Widget allows your application to upload file/s in the gCube Workspace diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/DialogUpload.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/DialogUpload.java index 9a37ce2..6138737 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/DialogUpload.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/DialogUpload.java @@ -47,7 +47,7 @@ import com.google.gwt.user.client.ui.VerticalPanel; */ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNotificationListener{ - private Hidden hiddenOverwrite = new Hidden(ConstantsWorkspaceUploader.IS_OVERWRITE,"false"); + private Hidden hiddenOverwrite = new Hidden(ConstantsWorkspaceUploader.IS_OVERWRITE, "true"); protected final FormPanel formPanel = new FormPanel(); protected FileUpload fileUpload; protected Hidden jsonClientKeys; 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 0f24dbb..2c2aa11 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 @@ -653,7 +653,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload formdata.append("currGroupId", scopeGroupId); //formdata.append("currUserId", currUserId); - var overwrite = false; + var overwrite = true; //default D&D overwrite the item formdata.append("isOverwrite", overwrite); var numFolder = 0; @@ -688,6 +688,7 @@ public class MultipleDNDUpload extends LayoutPanel implements HasWorskpaceUpload overwrite = true; console.log("overwrite confirmed!"); }else{ + overwrite = false; instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::reset()(); return; } diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java index 5d20525..49bde36 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java @@ -193,7 +193,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet String destinationId = null; String uploadType = null; - boolean isOverwrite = false; + boolean isOverwrite = true; //CREATE A NEW VERSION OF FILE IS BEHAVIOUR BY DEFAULT // String clientUploadKey = null; FileItemStream uploadItem = null; ArrayList listClientUploadKeys = null; @@ -225,8 +225,13 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet } if (item.isFormField() && IS_OVERWRITE.equals(item.getFieldName())){ - isOverwrite = Boolean.parseBoolean(Streams.asString(item.openStream())); - logger.debug("IS_OVERWRITE OK "+ isOverwrite); + try{ + isOverwrite = Boolean.parseBoolean(Streams.asString(item.openStream())); + logger.debug("IS_OVERWRITE OK "+ isOverwrite); + }catch(Exception e){ + //Silent exception; + } + } if(item.isFormField() && CLIENT_UPLOAD_KEYS.equals(item.getFieldName())){ @@ -445,10 +450,25 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet String itemName = ""; logger.debug("getItemName from HL"); - if(!isOverwrite) + if(!isOverwrite){ itemName = WorkspaceUtil.getUniqueName(fileName, destinationFolder); - else - itemName = fileName; + } + else{ + logger.debug("Validating overwrite checking if file with name: "+fileName+" exists into folder ID: "+destinationFolder.getId()); + boolean isReallyExisting = wa.exists(fileName, destinationFolder.getId()); + logger.debug("Existing it? "+isReallyExisting); + if(isReallyExisting){ + logger.info("forcing overwrite at 'true' in order to create new version of file: "+fileName); + isOverwrite = true; + itemName = fileName; + }else{ + itemName = WorkspaceUtil.getUniqueName(fileName, destinationFolder); + logger.debug("File with name: "+fileName+" does not exist creating new one: "+fileName); + logger.info("forcing overwrite at 'false' in order to create the new file: "+fileName); + isOverwrite = false; + itemName = fileName; + } + } Long size = getContentLength(request); logger.debug("size: " + size + " bytes"); diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/upload/WorkspaceUploaderMng.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/upload/WorkspaceUploaderMng.java index 259acb3..567d9e9 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/upload/WorkspaceUploaderMng.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/upload/WorkspaceUploaderMng.java @@ -68,7 +68,7 @@ public class WorkspaceUploaderMng { * @throws IOException Signals that an I/O exception has occurred. */ private static WorkspaceUploaderItem createWorkspaceUploaderFile(final GCubeUser currUser, final String scopeGroupId, final HttpServletRequest request, final WorkspaceUploaderItem workspaceUploader, final HttpSession httpSession, final boolean isOvewrite, final Workspace wa, final InputStream uploadFile, final String itemName, final WorkspaceFolder destinationFolder, final String contentType, final long totalBytes) throws InternalErrorException, IOException{ - logger.debug("Creating WorkspaceUploaderFile..."); + logger.debug("Creating WorkspaceUploaderFile... isOvewrite: " +isOvewrite); workspaceUploader.setUploadStatus(UPLOAD_STATUS.IN_PROGRESS); workspaceUploader.setStatusDescription("Uploading "+itemName);