Skip to content

Commit 57ab613

Browse files
committed
#4813 separate retrieval of files for Deletion
1 parent 82f9825 commit 57ab613

2 files changed

Lines changed: 21 additions & 12 deletions

File tree

src/main/java/edu/harvard/iq/dataverse/EditDatafilesPage.java

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -870,8 +870,23 @@ private String getBundleString(String msgName){
870870
public void deleteFilesCompleted(){
871871

872872
}
873+
874+
public void deleteFiles(){
875+
deleteFiles(this.selectedFiles);
876+
}
877+
878+
public void deleteDuplicateFiles(){
879+
List<FileMetadata> filesForDelete = new ArrayList();
880+
for(DataFile df : newFiles ){
881+
if (df.isMarkedAsDuplicate()){
882+
filesForDelete.add(df.getFileMetadata());
883+
}
884+
}
885+
deleteFiles(filesForDelete);
886+
}
887+
873888

874-
public void deleteFiles() {
889+
private void deleteFiles(List<FileMetadata> filesForDelete) {
875890
logger.fine("entering bulk file delete (EditDataFilesPage)");
876891
if (isFileReplaceOperation()) {
877892
try {
@@ -888,16 +903,9 @@ public void deleteFiles() {
888903
so we are adding the marked as dup files as selected
889904
and moving on accordingly.
890905
*/
891-
if(this.selectedFiles.isEmpty()){
892-
for(DataFile df : newFiles ){
893-
if (df.isMarkedAsDuplicate()){
894-
this.selectedFiles.add(df.getFileMetadata());
895-
}
896-
}
897-
}
898906

899907
String fileNames = null;
900-
for (FileMetadata fmd : this.getSelectedFiles()) {
908+
for (FileMetadata fmd : filesForDelete) {
901909
// collect the names of the files,
902910
// to show in the success message:
903911
if (fileNames == null) {
@@ -907,7 +915,7 @@ public void deleteFiles() {
907915
}
908916
}
909917

910-
for (FileMetadata markedForDelete : this.getSelectedFiles()) {
918+
for (FileMetadata markedForDelete : filesForDelete) {
911919
logger.fine("delete requested on file " + markedForDelete.getLabel());
912920
logger.fine("file metadata id: " + markedForDelete.getId());
913921
logger.fine("datafile id: " + markedForDelete.getDataFile().getId());
@@ -955,7 +963,8 @@ public void deleteFiles() {
955963
// Also remove checksum from the list of newly uploaded checksums (perhaps odd
956964
// to delete and then try uploading the same file again, but it seems like it
957965
// should be allowed/the checksum list is part of the state to clean-up
958-
checksumMapNew.remove(markedForDelete.getDataFile().getChecksumValue());
966+
if(checksumMapNew != null && markedForDelete.getDataFile().getChecksumValue() != null)
967+
checksumMapNew.remove(markedForDelete.getDataFile().getChecksumValue());
959968

960969
}
961970
}

src/main/webapp/editFilesFragment.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@
555555
</p>
556556
<div class="button-block">
557557
<p:commandButton styleClass="btn btn-default" value="#{EditDatafilesPage.labelForDeleteFilesPopup}" onclick="PF('fileAlreadyExistsPopup').hide()" oncomplete="uploadWidgetDropMsg();"
558-
action="#{EditDatafilesPage.deleteFiles()}"
558+
action="#{EditDatafilesPage.deleteDuplicateFiles()}"
559559
update=":#{p:resolveClientId('datasetForm:filesTable', view)},:messagePanel,:#{p:resolveClientId('datasetForm:fileUpload', view)},uploadMessage,@([id$=filesButtons])"/>
560560
<button class="btn btn-default" onclick="PF('fileAlreadyExistsPopup').hide();" type="button">
561561
#{bundle.continue}

0 commit comments

Comments
 (0)