Skip to content

Commit

Permalink
Redirect to Dataset Page after delete file
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Sep 14, 2015
1 parent bb695f3 commit 899beb0
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 7 deletions.
36 changes: 31 additions & 5 deletions src/main/java/edu/harvard/iq/dataverse/FilePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ public String init() {
// If this DatasetVersion is unpublished and permission is doesn't have permissions:
// > Go to the Login page
//

if ( !permissionService.on(file).has(Permission.DownloadFile)) {
if(!session.getUser().isAuthenticated()){
return "/loginpage.xhtml" + DataverseHeaderFragment.getRedirectPage();
Expand Down Expand Up @@ -161,12 +162,13 @@ public String restrictFile(boolean restricted){
successMessage = successMessage.replace("{0}", fileNames);
JsfHelper.addFlashMessage(successMessage);
}
return save();
save();
return returnToDraftVersion();
}

private List<FileMetadata> filesToBeDeleted = new ArrayList();

public void deleteFile() {
public String deleteFile() {

String fileNames = this.getFileMetadata().getLabel();

Expand All @@ -175,20 +177,30 @@ public void deleteFile() {
FileMetadata markedForDelete = null;

for (FileMetadata fmd : editDataset.getEditVersion().getFileMetadatas() ){
if (fmd.getDataFile().equals(this.getFile())){

if (fmd.getDataFile().getId().equals(this.getFile().getId())){
markedForDelete = fmd;
}
}

if (markedForDelete.getId() != null) {
// the file already exists as part of this dataset
// so all we remove is the file from the fileMetadatas (for display)
// and let the delete be handled in the command (by adding it to the filesToBeDeleted list
editDataset.getEditVersion().getFileMetadatas().remove(markedForDelete);
filesToBeDeleted.add(markedForDelete);

} else {
List<FileMetadata> filesToKeep = new ArrayList();
for (FileMetadata fmo: editDataset.getEditVersion().getFileMetadatas()){
if (!fmo.getDataFile().getId().equals(this.getFile().getId())){
filesToKeep.add(fmo);
}
}
editDataset.getEditVersion().setFileMetadatas(filesToKeep);
}




if (fileNames != null) {
Expand All @@ -197,6 +209,9 @@ public void deleteFile() {
JsfHelper.addFlashMessage(successMessage);
}

save();
return returnToDatasetOnly();

}

public String save() {
Expand All @@ -212,6 +227,7 @@ public String save() {

Command<Dataset> cmd;
try {
System.out.print(filesToBeDeleted.size());
cmd = new UpdateDatasetCommand(editDataset, dvRequestService.getDataverseRequest(), filesToBeDeleted);
commandEngine.submit(cmd);

Expand Down Expand Up @@ -241,4 +257,14 @@ public String save() {
return "";
}

private String returnToDatasetOnly(){

return "/dataset.xhtml?persistentId=" + editDataset.getGlobalId() + "&version=DRAFT" + "&faces-redirect=true";
}

private String returnToDraftVersion(){

return "/file.xhtml?fileId=" + fileId + "&datasetVersionId=" + editDataset.getEditVersion().getId() + "&faces-redirect=true";
}

}
3 changes: 1 addition & 2 deletions src/main/webapp/file.xhtml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,7 @@
</ui:fragment>
<ui:fragment rendered="#{FilePage.fileMetadata.restricted}">
<li >
<p:commandLink update="@form" actionListener="#{FilePage.restrictFile(false)}"
>
<p:commandLink update="@form" actionListener="#{FilePage.restrictFile(false)}" >
<h:outputText value="#{bundle['file.unrestrict']}"/>
</p:commandLink>
</li>
Expand Down

0 comments on commit 899beb0

Please sign in to comment.