From 8dffc46bbdc9e8782efcdb82c8c974411ca39385 Mon Sep 17 00:00:00 2001 From: Stephen Kraffmiller Date: Fri, 13 Jul 2018 10:44:30 -0400 Subject: [PATCH] #4610 Dual Mode Fix Renders and add Rsync capability --- .../iq/dataverse/EditDatafilesPage.java | 107 +++++++++++++- .../harvard/iq/dataverse/SettingsWrapper.java | 14 ++ src/main/webapp/dataset.xhtml | 15 +- src/main/webapp/editFilesFragment.xhtml | 133 +++++++++++++----- src/main/webapp/editdatafiles.xhtml | 54 +++---- src/main/webapp/filesFragment.xhtml | 6 +- 6 files changed, 257 insertions(+), 72 deletions(-) diff --git a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java index 39811a95526..9bc2d4b11d6 100644 --- a/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java +++ b/src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java @@ -9,10 +9,13 @@ import edu.harvard.iq.dataverse.datasetutility.FileReplaceException; import edu.harvard.iq.dataverse.datasetutility.FileReplacePageHelper; import edu.harvard.iq.dataverse.dataaccess.ImageThumbConverter; +import edu.harvard.iq.dataverse.datacapturemodule.DataCaptureModuleUtil; +import edu.harvard.iq.dataverse.datacapturemodule.ScriptRequestResponse; import edu.harvard.iq.dataverse.dataset.DatasetThumbnail; import edu.harvard.iq.dataverse.engine.command.Command; import edu.harvard.iq.dataverse.engine.command.exception.CommandException; import edu.harvard.iq.dataverse.engine.command.impl.DeleteDataFileCommand; +import edu.harvard.iq.dataverse.engine.command.impl.RequestRsyncScriptCommand; import edu.harvard.iq.dataverse.engine.command.impl.UpdateDatasetCommand; import edu.harvard.iq.dataverse.engine.command.impl.UpdateDatasetThumbnailCommand; import edu.harvard.iq.dataverse.ingest.IngestRequest; @@ -65,6 +68,8 @@ import java.util.logging.Level; import javax.faces.event.AjaxBehaviorEvent; import javax.faces.event.FacesEvent; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.primefaces.context.RequestContext; @@ -114,7 +119,8 @@ public enum FileEditMode { @Inject PermissionsWrapper permissionsWrapper; @Inject FileDownloadHelper fileDownloadHelper; @Inject ProvPopupFragmentBean provPopupFragmentBean; - + @Inject + SettingsWrapper settingsWrapper; private final DateFormat displayDateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); private Dataset dataset = new Dataset(); @@ -531,7 +537,7 @@ public String init() { logger.fine("The page is called with " + selectedFileIdsList.size() + " file ids."); populateFileMetadatas(); - + setUpRsync(); // and if no filemetadatas can be found for the specified file ids // and version id - same deal, send them to the "not found" page. // (at least for now; ideally, we probably want to show them a page @@ -832,7 +838,10 @@ private String getBundleString(String msgName){ return ResourceBundle.getBundle("Bundle").getString(msgName); } - + public void deleteFilesCompleted(){ + + } + public void deleteFiles() { logger.info("entering bulk file delete (EditDataFilesPage)"); if (isFileReplaceOperation()){ @@ -986,18 +995,23 @@ public void deleteFiles() { if (markedForDelete.getDataFile().getStorageIdentifier().equals(dfn.getStorageIdentifier())) { nfIt.remove(); } - } + } } } if (fileNames != null) { + if(newFiles.isEmpty()){ + fileMetadatas = new ArrayList<>(); + } String successMessage = getBundleString("file.deleted.success"); logger.fine(successMessage); successMessage = successMessage.replace("{0}", fileNames); JsfHelper.addFlashMessage(successMessage); + } + } public String saveWithTermsOfUse() { @@ -1672,12 +1686,95 @@ public void uploadStarted() { // uploadStarted() is triggered by PrimeFaces #{bundle['dataset.editBtn']}